On 26 Jul 2014, at 22:32, Steven Walling steven.walling@gmail.com wrote:
This seems really reasonable.
Are we still agreed that Grade A means anything over 1% of readership? If so, we should reconfirm what our browser share is really like, because last time I checked, IE6 was less than 1% of total and thus eligible for dropping from Grade A now and forever (he says with great antici.........pation.)
1% was never "the figure" as far as I know (certainly not for Grade A).
For the longest time most documents and practices used the 0.01% mark (that is, before MediaWiki 1.17; predating ResourceLoader, jQuery and most front-end features). During these years it basically meant we didn't support browsers with less than 0.01% share (e.g. may be broken, insecure, or otherwise less usable). Support for the rest was cheap considering the relatively primitive nature of our front-end at the time.
After MediaWiki 1.17 we started to distinguish between "support" (site is usable and readable) and "feature rich". It was OK to implement features that would only be available for newer browsers. We disabled resource delivery for IE 4 and 5 as their engines are not adequate and made it technically infeasible to implement essentials. As they still had enough traffic we didn't want them getting a broken page, so came to be a non-javascript mode.
Around this same time the figure seemed to have been changed from 0.01% to 0.1%. From time onwards we also had two levels of support within javascript mode (Grade A and B) 0.1% applied to Grade B, *not Grade A*. Meaning our aim was to dedicate resources to support any browser with 0.1% or more traffic. Thus guaranteeing that 99.9% of our users would have an experience that we support (whether it be non-javascript, some features, or all features). Back then non-javascript mode was actually for browsers with less than even 0.1% traffic and were neither Grade A or B. This provided them a a better fallback (though no official support), so that e.g. IE4, IE5 and ancient Netscape users wouldn't be bothered with loads of scripts that won't work. Instead they get a relatively lightweight page to try their best on.
Here minimal support meant 1) Grade B feature support or blacklist in startup module to trigger non-javascript mode, 2) ensure our basic stylesheets work in this browser, 3) ensure our backend infrastructure is compatible with those browsers (url schemas, critical HTTP features, security, image formats etc.)
Note how then[1], IE6-8 were considered Grade B, not A.
And remember that both 0.01% and 0.1% are both pretty big at our scale. Our efforts aren't driven by how profitable that 0.1% is but by our mission statement. For a browser to be truly unsupported takes a lot of moral consideration (e.g. if the server may use a protocol the browser doesn't support they might get nothing at all).
After 2010 we kind of started to forgot about all this. Few updates to the charts and little enforcement of it.
Regardless of what the page said, we never actually distinguished between Grade A and B. Both were given the same treatment and care. We never had any features that only work in Grade A. We did optimise for Grade A, but no exclusive user facing features (except for VisualEditor and other features that adopted a different browser support matrix).
While I've personally tried to keep minimal browser support somewhat in check, the document was simply no longer accurate and focussed too much on individual browser versions and not on the actual policy. Thus we archived it last year. Yesterday I've published a more refined version of this policy at https://www.mediawiki.org/wiki/Compatibility#Browsers documenting mostly current practices, factual state of the software (we have a startup module, we do blacklist browsers, our basic layout was made to work in IE6/FF2 etc.) and status quo (to my knowledge all front-end code in core supports IE6 and I'm quite certain code not working in IE6 would not be approved by anyone having mediawiki-core merge authority).
Since Grade B never ended up being recognised in any way by the software, I've kept that out. And the previously undocumented Grade C represents browsers we are interested in supporting due to their traffic but only via the non-javascript mode.
https://www.mediawiki.org/wiki/Compatibility#Browsers
[1] https://www.mediawiki.org/w/index.php?title=Compatibility/Software_for_using...