Page MenuHomePhabricator

Remove IE 11, Edge legacy 15-18, Firefox 39-48, Chrome 31-48 CSS hacks and workarounds in core, extensions and skins
Open, Needs TriagePublic

Description

Goal

With official removal of Remove IE 11, Edge legacy 15-18, Firefox 39-48, Chrome 31-48 from Basic browser support (“Grade C”) in T288287, it's time to get rid of all obsolete (CSS) hacks and fallbacks.

Dev notes

Don't take away the 1 occurrence in Popups, as it seems like a invitation for more cross-browser quirks to actually remove it again.

Criteria for Done

Note

  • Ignore all MW core external libs, specifically jquery* ones

Details

Related Changes in Gerrit:
SubjectRepoBranchLines +/-
mediawiki/extensions/RelatedArticlesmaster+10 -12
wikimedia/portalsmaster+1 -11
mediawiki/extensions/WikidataPageBannermaster+1 -9
mediawiki/extensions/NearbyPagesmaster+0 -7
mediawiki/extensions/ContentTranslationmaster+4 K -4 K
mediawiki/extensions/ContentTranslationmaster+0 -5
mediawiki/skins/Miragemaster+0 -8
oojs/uimaster+1 -5
mediawiki/skins/Vectormaster+2 -6
mediawiki/skins/MinervaNeuemaster+0 -5
mediawiki/coremaster+113 -121
mediawiki/skins/Timelessmaster+5 -148
mediawiki/skins/Timelessmaster+0 -6
mediawiki/extensions/DonationInterfacemaster+0 -11
mediawiki/extensions/ContentTranslationmaster+1 -32
mediawiki/coremaster+0 -12
mediawiki/extensions/Formsmaster+0 -6
mediawiki/coremaster+167 -81
mediawiki/extensions/MobileFrontendmaster+0 -5
mediawiki/coremaster+0 -5
design/codexmain+0 -6
mediawiki/coremaster+238 -131
mediawiki/extensions/Kartographermaster+0 -2
oojs/uimaster+0 -2
mediawiki/coremaster+0 -14
mediawiki/extensions/CollaborationKitmaster+0 -2
mediawiki/coremaster+511 -545
mediawiki/extensions/Kartographermaster+0 -4
mediawiki/coremaster+16 -36
mediawiki/coremaster+12 -16
oojs/uimaster+2 -40
oojs/uimaster+0 -3
oojs/uimaster+0 -8
Show related patches Customize query in gerrit

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

Change #1037742 merged by jenkins-bot:

[mediawiki/core@master] styles: Settle on .user-select() mixin

https://gerrit.wikimedia.org/r/1037742

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

[mediawiki/core@master] styles: Remove IE11 workarounds and comment hints

https://gerrit.wikimedia.org/r/1037873

Change #1037873 merged by jenkins-bot:

[mediawiki/core@master] styles: Remove IE11 workarounds and comment hints

https://gerrit.wikimedia.org/r/1037873

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

[mediawiki/extensions/Forms@master] styles: Remove outdated browsers like MS IE10 Flexbox workarounds

https://gerrit.wikimedia.org/r/1038825

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

[mediawiki/extensions/Kartographer@master] styles: Remove outdated Firefox proprietary CSS extensions

https://gerrit.wikimedia.org/r/1041167

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

[mediawiki/extensions/CollaborationKit@master] styles: Remove outdated Firefox proprietary CSS extensions

https://gerrit.wikimedia.org/r/1041171

Change #1041167 merged by jenkins-bot:

[mediawiki/extensions/Kartographer@master] styles: Remove outdated Firefox proprietary CSS extensions

https://gerrit.wikimedia.org/r/1041167

Change #1041782 had a related patch set uploaded (by Catrope; author: Catrope):

[mediawiki/core@master] Update OOUI to v0.50.0

https://gerrit.wikimedia.org/r/1041782

Change #1041782 merged by jenkins-bot:

[mediawiki/core@master] Update OOUI to v0.50.0

https://gerrit.wikimedia.org/r/1041782

Change #1041171 merged by jenkins-bot:

[mediawiki/extensions/CollaborationKit@master] styles: Remove outdated Firefox proprietary CSS extensions

https://gerrit.wikimedia.org/r/1041171

Regarding column-count and column-width mixins that currently include Firefox-specific properties (which were mentioned on a different task as a 'whoops, we could have nixed that too'), I think you can consider removing those anyway even without grade C being above the right version number. I've done previous review of this and removed all of the browser-specific properties on English Wikipedia's version of the mixin (i.e. template) 3.5 years ago. (See also discussion in T311381 if you really want to chase the rabbit hole.)

The short rationale is the following these days:

  1. Uses gracefully fail to one column of content, for browsers that do not recognize the property.
  2. We are serving negligible traffic that still requires them as of May (0.06% Chrome mobile, total). (Mind you, that was before T342267, but I will be surprised if that task shifts the goalposts meaningfully.)
  3. The traffic in #2 basically doesn't need multiple columns anyway.
  4. The traffic in #2 isn't Firefox.

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

[mediawiki/extensions/Kartographer@master] styles: Remove obsolete Edge 15-18 support for `-ms-grid`

https://gerrit.wikimedia.org/r/1101618

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

[oojs/ui@master] styles: Remove obsolete IE & Edge 12-18 proprietary CSS

https://gerrit.wikimedia.org/r/1101740

Change #1101740 merged by jenkins-bot:

[oojs/ui@master] styles: Remove obsolete IE & Edge 12-18 proprietary CSS

https://gerrit.wikimedia.org/r/1101740

Change #1101618 merged by jenkins-bot:

[mediawiki/extensions/Kartographer@master] styles: Remove obsolete Edge 15-18 support for `-ms-grid`

https://gerrit.wikimedia.org/r/1101618

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

[mediawiki/core@master] Update OOUI to v0.51.5

https://gerrit.wikimedia.org/r/1114418

Change #1114418 merged by jenkins-bot:

[mediawiki/core@master] Update OOUI to v0.51.5

https://gerrit.wikimedia.org/r/1114418

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

[design/codex@main] styles, TextInput: Remove obsolete `-ms-clear` disabling vendor rule

https://gerrit.wikimedia.org/r/1115141

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

[mediawiki/extensions/MobileFrontend@master] styles: Remove obsolete `-ms-clear` hiding vendor rule

https://gerrit.wikimedia.org/r/1115153

Change #1115141 merged by jenkins-bot:

[design/codex@main] styles, TextInput: Remove obsolete `-ms-clear` disabling vendor rule

https://gerrit.wikimedia.org/r/1115141

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

[mediawiki/core@master] styles, TextInput: Remove obsolete `-ms-clear` disabling vendor rule

https://gerrit.wikimedia.org/r/1115501

Change #1115501 merged by jenkins-bot:

[mediawiki/core@master] mediawiki.ui.input: Remove obsolete `-ms-clear` disabling vendor rule

https://gerrit.wikimedia.org/r/1115501

Change #1115153 merged by jenkins-bot:

[mediawiki/extensions/MobileFrontend@master] styles: Remove obsolete `-ms-clear` hiding vendor rule

https://gerrit.wikimedia.org/r/1115153

Change #1117223 had a related patch set uploaded (by Anne Tomasevich; author: Anne Tomasevich):

[mediawiki/core@master] Update Codex from v1.20.0 to v1.20.1

https://gerrit.wikimedia.org/r/1117223

Test wiki created on Patch demo by ATomasevich (WMF) using patch(es) linked to this task:
http://patchdemo.wmcloud.org/wikis/9c22725d87/w/

Change #1117223 merged by jenkins-bot:

[mediawiki/core@master] Update Codex from v1.20.0 to v1.20.1

https://gerrit.wikimedia.org/r/1117223

Test wiki on Patch demo by ATomasevich (WMF) using patch(es) linked to this task was deleted:

http://patchdemo.wmcloud.org/wikis/9c22725d87/w/

Change #1038825 abandoned by VolkerE:

[mediawiki/extensions/Forms@master] styles: Remove outdated browsers like MS IE10 Flexbox workarounds

Reason:

In the meantime removed in I07c4de962711

https://gerrit.wikimedia.org/r/1038825

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

[mediawiki/skins/MinervaNeue@master] styles: Remove IE 9-11 workaround

https://gerrit.wikimedia.org/r/1119787

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

[mediawiki/extensions/ContentTranslation@master] styles: Remove outdated basic browser workarounds

https://gerrit.wikimedia.org/r/1119788

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

[mediawiki/extensions/DonationInterface@master] styles: Remove outdated browser workarounds

https://gerrit.wikimedia.org/r/1119789

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

[mediawiki/core@master] mediawiki.skinning: Remove IE specific CSS

https://gerrit.wikimedia.org/r/1119790

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

[mediawiki/skins/Vector@master] styles: Remove outdated IE-specific code

https://gerrit.wikimedia.org/r/1119791

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

[mediawiki/skins/Timeless@master] Remove IE support code

https://gerrit.wikimedia.org/r/1119792

Change #1119790 merged by jenkins-bot:

[mediawiki/core@master] mediawiki.skinning: Remove IE specific CSS

https://gerrit.wikimedia.org/r/1119790

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

[oojs/ui@master] styles, FieldsetLayout: Remove IE `<legend>` workaround CSS code

https://gerrit.wikimedia.org/r/1119863

Change #1119792 merged by jenkins-bot:

[mediawiki/skins/Timeless@master] Remove IE support code

https://gerrit.wikimedia.org/r/1119792

Change #1119788 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] styles: Remove outdated basic browser workarounds

https://gerrit.wikimedia.org/r/1119788

Change #1119789 merged by jenkins-bot:

[mediawiki/extensions/DonationInterface@master] styles: Remove outdated browser workarounds

https://gerrit.wikimedia.org/r/1119789

Change #1119863 merged by jenkins-bot:

[oojs/ui@master] styles, FieldsetLayout: Remove IE `<legend>` workaround CSS code

https://gerrit.wikimedia.org/r/1119863

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

[mediawiki/skins/Timeless@master] styles: Remove IE-specific `wbr` element code

https://gerrit.wikimedia.org/r/1121426

Change #1121426 merged by jenkins-bot:

[mediawiki/skins/Timeless@master] styles: Remove IE-specific `wbr` element code

https://gerrit.wikimedia.org/r/1121426

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

[mediawiki/core@master] Update OOUI to v0.51.6

https://gerrit.wikimedia.org/r/1121681

Change #1121681 merged by jenkins-bot:

[mediawiki/core@master] Update OOUI to v0.51.6

https://gerrit.wikimedia.org/r/1121681

Change #1119787 merged by jenkins-bot:

[mediawiki/skins/MinervaNeue@master] styles: Remove IE 9-11 workaround

https://gerrit.wikimedia.org/r/1119787

Change #1119791 merged by jenkins-bot:

[mediawiki/skins/Vector@master] styles: Remove outdated IE-specific code

https://gerrit.wikimedia.org/r/1119791

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

[mediawiki/extensions/ContentTranslation@master] styles: Remove outdated IE11/Edge legacy code

https://gerrit.wikimedia.org/r/1166287

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

[mediawiki/skins/Mirage@master] styles: Remove outdated IE11/Edge legacy code

https://gerrit.wikimedia.org/r/1166292

Change #1166292 merged by jenkins-bot:

[mediawiki/skins/Mirage@master] styles: Remove outdated IE11/Edge legacy code

https://gerrit.wikimedia.org/r/1166292

Change #1166287 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] styles: Remove outdated IE11/Edge legacy code

https://gerrit.wikimedia.org/r/1166287

Change #1166887 had a related patch set uploaded (by Sbisson; author: Sbisson):

[mediawiki/extensions/ContentTranslation@master] CX3 Build 1.0.0+20250707

https://gerrit.wikimedia.org/r/1166887

Change #1166887 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] CX3 Build 1.0.0+20250707

https://gerrit.wikimedia.org/r/1166887

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

[mediawiki/extensions/NearbyPages@master] styles: Remove never-used IE11 workaround

https://gerrit.wikimedia.org/r/1172125

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

[mediawiki/extensions/WikidataPageBanner@master] styles: Remove obsolete IE11 workaround

https://gerrit.wikimedia.org/r/1172127

Change #1172125 merged by jenkins-bot:

[mediawiki/extensions/NearbyPages@master] styles: Remove never-used IE11 workaround

https://gerrit.wikimedia.org/r/1172125

Change #1172127 merged by jenkins-bot:

[mediawiki/extensions/WikidataPageBanner@master] styles: Remove obsolete IE11 workaround

https://gerrit.wikimedia.org/r/1172127

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

[wikimedia/portals@master] styles: Remove leftover from IE/early Edge and outdated Firefox

https://gerrit.wikimedia.org/r/1175630

Change #1175630 merged by jenkins-bot:

[wikimedia/portals@master] styles: Remove leftover from IE/early Edge and outdated Firefox

https://gerrit.wikimedia.org/r/1175630

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

[mediawiki/extensions/RelatedArticles@master] styles: Remove workaround for grid support detection

https://gerrit.wikimedia.org/r/1195100

I'm happy to +2 the patch over at https://gerrit.wikimedia.org/r/c/mediawiki/extensions/RelatedArticles/+/1195100 (which removes the @supports query before CSS grid features are used). But before I do so I want to point out that MediaWiki's current compatibility table still says that FF and Chrome v49 (from 2016) are supported at Grade C level. A feature like grid-template-columns is not supported in either browser at that point (FF added support in v52 and Chrome did so in v57).

Should we update our Grade C definition if we are going to start using CSS Grid styles everywhere? I think that would be a reasonable move (these are 10 year old browsers we are talking about here).

That patch probably merits being associated with one of T380576: Restate Basic (Grade C) browser support to last 7 years' versions and T383943: Remove Grade C support for Firefox 49-52 instead and could potentially be blocked on resolution in those contexts. Probably the latter since the patch relies on functionality that requires just a couple browser versions worth of update.

I will note that grade C is not "displays precisely as intended" but instead "content is presented in a readable manner, and all page and account actions are discoverable and work". If RelatedArticles goes from displaying in a horizontal line on the screen to 3 vertical blocks in the context of ancient browsers (probably just Safari on desktop which I suspect is a tiny minority of traffic for relevant versions), that seems fine for the grade C question mark. So from that perspective it may not be worth blocking at all. (NB this is why I made a comment above about potentially being able to drop the CSS column mixin.)

Last FF on Windows XP is FF v52, so grids are supported even on Windows XP. https://support.mozilla.org/en-US/kb/end-support-windows-xp-and-vista

Microsoft itself ended support for Windows XP in 2014 and support for Windows Vista in 2017.

So I think the task should be "Remove ... Firefox 39–51, ..." (instead of the 39–48 range). Note that Firefox was updated much longer on XP than Chrome, at least officially. Though with unofficial updates like One-Core-API, you can use some newer versions. I also learned that there’s a Chrome fork that allows you to use Chromium 138 on Windows XP (it’s extremely slow compared to FF on XP, but pages eventually load and render with Chrome 138 features like if() in CSS).

Here is the main page on Windows XP. As you can see, icons already don’t work in FF 52 (you can click on them, but you just have to guess what they mean).

obraz.png (1×1 px, 633 KB)

So I think the task should be "Remove ... Firefox 39–51, ..." (instead of the 39–48 range).

This task is for implementing the already-made decision from the original description, not for making a new decision (or tbh nibbling around the edges of the old one - just one moar version pls bro :-).

I'm inclined to think this task should be closed. It had a brief life in 2024 and a resurrection in mid-2025, but it shouldn't be open just for arbitrary and all removals into the future for browsers from this age range, especially if it's now being associated with work that definitely falls outside its purported scope.