Page MenuHomePhabricator

Remove IE9 & IE10 from basic support
Closed, ResolvedPublic

Assigned To
Authored By
Oct 13 2021, 7:40 PM
Referenced Files
"Love" token, awarded by Mainframe98."Like" token, awarded by Sgs."Like" token, awarded by cjming."Like" token, awarded by bwang."Like" token, awarded by SCherukuwada."Like" token, awarded by matmarex."Like" token, awarded by Jdforrester-WMF."Like" token, awarded by nray."Like" token, awarded by Jdlrobson.


Affected components: MediaWiki core, skins and extensions. Wikimedia Foundation libraries like Codex and OOUI.


  • Improve the user experience by making pages load slightly faster and use less bandwidth, because we're going to send less CSS code (workarounds/specific vendor prefixes f.e. on Flexbox) down the wire.
  • Take away maintenance-burden of writing fallback CSS for newer CSS features not supported in IE9 (f.e. Animations, Hyphenation, text-shadows) and IE10 (Flexbox with old 2012 syntax). The effort spent in writing workarounds and addressing specific browser code is a waste of our limited resources.
  • Unlock use of newer CSS features that do not have a fallback in IE9 (f.e. Flexbox, Grid layout, multi-column layout) or are a bug-prone maintenance burden in IE10 (f.e. Flexbox with old 2012 syntax). and thus cannot be safely used today. This point is not solely dependent on removal of IE9 & IE10 from basic support, but also a few other very old browsers (ex: Firefox 27) and platforms (Android 4.4) still to be tackled in similar tasks.


Turnilo (restricted) pageviews statistics from last 30 days for IE9 & IE10:
2021-10-13: 10.8 million out of 21.3 billion so less than 0.05%
2021-11-30: 13.5 million out of 21 billion so less than 0.065%
These numbers are pageviews, not user numbers!

See also – showing no visible significance anymore.


I'm proposing to remove IE9, released 2011, and IE10, released 2012, from “Basic” category in the browser support matrix and automatically move them to unknown support.

This would be effective in MediaWiki 1.38, to be released in Spring 2022, in extensions and libraries possibly effective with decision here.

Event Timeline

Just writing in support of this change. Flexbox in particular is an essential feature that we should be able to rely on even in fallback, non-JS interfaces.

The motivation seems a bit scattershot. If I pick the listed features to run through caniuse to see how other browser versions function:

  • Flex is buggy in IE11, even with standardized names. (IE11 is still on grade A support, at least right now.) There's also Firefox 27, grade C, which doesn't support several (of the more common) properties. (Firefox 28+ are fine.)
  • Grid isn't supported by most of the current grade C browser versions supported, nor by a large number of browser versions between grade C and A, as well as most of the current grade C browser versions.
  • Multicolumn had evergreen browsers not supporting standardized naming until much later than IE9/10 e.g. Firefox 52 and Chrome 50. This has a graceful fallback in all concerned browsers anyway (including IE9 and 10) and has since 10 years ago when we started using it onwiki with prefixed versions. (There are problems with implementations besides across the board mostly due to features added to the specification after initial development, but 'make columns' isn't something broken in the general.)
  • Animation is prefixed on several versions of between-grades-C-and-A supported Chrome (would be nice to give a name to the browser versions between C and A in such a way as to distinguish all the browser versions older than grade C, since I understand both sets to be in the category of grade X today).
  • Hyphens weren't supported in Chromium for Windows until this year and not on Android 4.3 or 4.4, and prefixes on others in mid-C-A browser versions.
  • Text Shadow is the only one which actually does enjoy wide support among grade C browsers.

It's possible I'm confusing "fallback" for "does not degrade gracefully without (hackish) CSS", but listing e.g. multicol/hyphenation/animation leaves me confused because those do gracefully degrade so far as I know (animation doesn't animate, multicol goes to one col, words simply wrap rather than trying to hyphenate).

Generally, it seems like the motivations section was tacked on separate to supporting the desire to drop the two browser versions, when 'nobody uses the two browsers' might have been sufficient as a rationale, or the motivations are really 'effects' rather than 'rationale/causes' (which means they are not motivations). If the motivations are actually interesting (or there are other motivations!), these other browser versions should be considered.

Mind you, I support the death of IE support. :^)

@Izno Several fair points. Acknowledge that the task description hasn't been outlined bullet-proof at point of writing due to time scarcity. Please note that IE9 and IE10 are though the biggest blockers from the to be updated list of basic support browsers. They have a 10+million pageviews base per day (equals ~0.05%), while for example all Android 4 comes down to 3.8 million including statistics outliers and earlier versions lower than 4.4.
To cite from T248061#5985512:

Since 2011, the main percentage we have used for browser support is 0.1% as maximum before considering removal of basic support.

They also got historically provided the largest amount of browser specific workarounds and code in MediaWiki core and beyond, with the biggest maintenance relief and performance impact in comparison to mentioned Android 4.4 or Firefox 27 to be removed from basic support (in a different task).

This change looks good to me as well. The percentage of pageviews from these browsers is small enough to be safe to remove.

@Volker_E thank you, let's move forward with this change.

Change 784345 had a related patch set uploaded (by VolkerE; author: VolkerE):

[mediawiki/core@master] RELEASE-NOTES-1.39: Add note about bumped basic browser requirements

Change 784345 merged by jenkins-bot:

[mediawiki/core@master] RELEASE-NOTES-1.39: Add note about bumped basic browser requirements

Change 784721 had a related patch set uploaded (by DannyS712; author: DannyS712):

[mediawiki/core@master] resourceloader: update documentation of supported browsers

Esanders claimed this task.

Change 904531 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/core@master] ResourceLoader: Correct comment about Grade C / Basic support for MSIE

Change 904531 merged by jenkins-bot:

[mediawiki/core@master] ResourceLoader: Correct comment about Basic support / Grade C for MSIE