Problem/Motivation
#2390621: [policy, no patch] Update Drupal's browser support policy defines a rolling browser support policy, where we commit to supporting current (or current + previous etc.) versions of specific browsers.
What the policy does not do is provide a clear way to add or remove browsers from the supported list.
Examples would be:
1. A new mobile browser that's increasing in popularity
2. An old desktop browser that has gone past EOL.
On #2390621: [policy, no patch] Update Drupal's browser support policy we agreed that 1% is a good threshold to add or remove a browser from support, however there is more work to do:
Proposed resolution
The new page is at https://www.drupal.org/about/core/policies/core-change-policies/supporte...
Add a new policy page in the 'Core change policies' guide.
Introduction
Browser support determines which bug reports are accepted. It also determines which third party libraries are adopted and influences when those libraries are removed. Trend data is used because the decision about third party libraries is made months or years in advance of a major release.
Dropping a browser
Support for a browser is dropped when the following conditions are met.
- The browser is on course to drop below 1% global usage before the next major release.
- The browser has insignificant screen reader usage or a solid downward usage trend as shown by the latest webaim screen reader survey.
- If the browser is disproportionally included in the lastest webaim screen reader survey (e.g. more than 10-15% stable usage when global usage on statcounter is under 1%), then it should not be providing a specific technical reason that makes it better for accessibility.
- If the browser has high usage in a specific region and its usage is on course to be below 5-10% in the countries of that region before the next major release.
Support is removed in advance of the next major release. This allows dependencies and core code to operate on the browsers that will be supported for the duration of that release.
Adding a browser
A browser is added when either of the following conditions are met.
- It is on course to increase above 1% global usage, has significant (>30%?) market share in particular geographic areas.
- It is disproportionately and steadily or increasingly used by screenreaders,
- If the browser is disproportionally included in the lastest webaim screen reader survey, then it should be providing a specific technical reason that makes it better for accessibility.
References
The following are used to evaluation browser adoption.
- caniuse
- statcounter including the regional filters
- lastest webaim screenreader survey
In general, desktop browsers are supported for their two most recent major releases, and mobile browsers are supported only for their most recent release. See https://www.drupal.org/docs/getting-started/system-requirements/browser-... for details of current support.
Comments
Comment #4
catchComment #5
catchSo caniuse has IE11 usage at 1.4%
https://caniuse.com/usage-table
https://gs.statcounter.com/
Looking at the graph on statcounter which has historical data, it had 2.46% usage in May 2019, 1.57% usage in December 2019, 1.4% usage in May 2020.
If usage continues to drop at the December 2019-May 2020 rate (i.e. ~0.2% every six months), then it will hit 1% in May 2021. Even if the rate slows, we're aiming to release Drupal 10 in mid-2022 which gives an additional year's lee-way to drop below 1%.
Decisions to make:
1. Can we agree on relying on usage from statcounter?
2. Are will still agreed on a 1% threshold?
3. Can we make the decision to drop IE11 from Drupal 10 now, based on its clear trajectory to drop below 1% usage by the time the release is in production? Or more generally - should we aim at least tentatively to set support for the next major release based on the current trajectory rather than the actual numbers (both upwards and downwards)?
Comment #6
catchGiven this blocks #2966864: Add optional support for CKEditor 5 in D9 so we can remove CKE 4 from Drupal 10, bumping to critical. I think it would be better to come up with a general rule, which we then validate by applying it to IE, than making a decision purely about IE.
Comment #7
larowlanI think we should follow what https://github.com/browserslist/browserslist does with its
defaultspresetComment #8
andrewmacpherson commentedUm, does anyone know what the numbers on https://caniuse.com/usage-table actually mean? It's a bewildering diagram with no explanation or guidance for how to read it. I'm lost.
The browser usage share among assistive technology users is markedly different to the whole population. I'd like to add these sources to the list:
forced-colorsmedia feature.The WebAIM surveys are a much smaller sample size than the large-scale analytics you might get from StatCounter, Google Analytics, et. al.. The flip side of that is that the large-scale analytics don't offer any insight at all about how many users have a disability and/or employ assistive technology, let alone why they use that browser. So the WebAIM surveys are our best source of knowledge about that. (Indeed, there are very strong privacy reasons why that information should not be available to automated analytics, or developers in general.)
I hope we won't base our browser support policy on the whole-population usage figures.
Comment #9
nod_Comment #10
droplet commentedI think to discuss the same topic repeatedly or re-defined the rules every few months or per year is not fun. It's the same as no policy! Maybe you need a new way to deal with the problems.
You could maintain a DrupalCare version with a slower release schedule. DrupalCare able to provide extra tools for screen readers and people with lower performance devices.
If Drupal sets a good policy, you will get a better DrupalCore also. IMO, this is not maintained 2 cores but 0.9 ~ 1.1 core. Uses the right resources on the right channels, improve the development flow.
One bad thing in DrupalCore, I found most contributors write code for DrupalCore only. We never thought about how to build an excellent decoupled component for (heavy) customized sites. Now you have 2 cores to care, it enforcing you to think, or at least provide a good reason for another developer to ban bad coding.
(this is why Drupal sites look like Drupal sites. Drupal has no beautiful sites. Code limited your imagine)
:)
EDITED: `bad coding` here meant sometimes we written optimal code for single DruaplCore only. Usually, code designed for multiple usages is slightly worse in many cases. So, sometimes trying to write/bring a less optimal code into CORE is less possible in my experiences.
Comment #11
catch@droplet This isn't redefining the rules, it's trying to add a generalised policy where there has literally never been one before. I do agree it's very frustrating that we don't have that and end up discussing it every time a new browser issue comes up though instead of having resolved it properly beforehand. #2390621: [policy, no patch] Update Drupal's browser support policy took several years to resolve and this part of the decision was deferred here, with no activity for nearly a year. However if we can get this issue finalised, then unless there is brand new information we should finally have a stable browser support policy, or at least one we only need to make minor tweaks to. Due to third party libraries, we can't extend our LTS versions longer than they already are (let alone an extra version), unless we take on security support for third party libraries too. A big reason this issue came up in the first place is ckeditor 4 approaching end of life.
@andrewmacpherson thanks for the link to https://webaim.org/projects/screenreadersurvey8/#browsers
I went back through their previous couple of screen reader user surveys, which it looks like they conduct every two years. https://webaim.org/projects/screenreadersurvey7/#browsers and https://webaim.org/projects/screenreadersurvey6/#browsers
2019: 10.9%
2017: 23.3%
2015: 34.9% (IE10+IE11 combined)
So that shows IE11 usage more than halving between 2017 and 2019. The 2015 combined figures make it slightly more complicated to do a comparison, but it's showing a consistent drop rate more or less.
We can likely extrapolate from this that the 2021 results would show IE11 coming in at somewhere between 0-5.5% of respondents. Either the replacement rate staying the same (a similar absolute number of respondents switching), or the replacement rate (and hence usage) halving rather than dropping completely (i.e. people who haven't changed already might keep going until their computer packs in).
Given that Drupal 10 won't come out until mid-2022, while the absolute percentages are higher, the usage is still going down rapidly and looks like it will be negligible by the time we get to release.
Comment #12
droplet commentedMany people using old browsers are disadvantaged in the community. They all need helps. We need not look at single group reports exclusively. During the epidemic, a piece of news in my country reported a girl using her 5 years old low-end android phone for her remote school life and even can't download basic things.
Screen readers are asking for different things. For example, the layout is less important. Using CSS4 for themes is not an issue for screen reader but that's a problem for the above girl.
Some tools like CKEditor, I think it's not suitable for screenreader.
Screenreader on IE 10 has fewer issues than other IE10 users.
Note: JavaScript has builder now. And most Modern JavaScript things have polyfill.
Comment #13
andrewmacpherson commentedRe. #10:
Are you suggesting 2 versions of Drupal core, or some sort of extended support release? That would be twice the maintenance work.
More to the point, which site owners are going to install it? If we relegate screen reader support to separate (or older) versions of core, I'd expect site owners to say "We don't need to worry about that, because disabled people aren't our target market". (We hear this a lot in the accessibility community. What it really means is they don't know their customers, and it's blatant discrimination.) I can't condone this approach for Drupal core.
Re. #11:
Making choices based on past data is one thing, but making them based on what browser usage might be in the future is a risky supposition. What if the next screen reader survey shows IE usage levelling off, not dropping further? We know that IE usage is much higher among screen reader users; what we don't know is why. Users are only going to switch when another browser will suit their needs. Whatever has been keeping a larger proportion of screen reader users on IE, we can't assume that reason won't still apply in 2022.
Re. #12:
That's nonsense, I'm afraid. Firstly, layout is important for screen reader users. Sighted people use screen readers, and the screen reader user surveys (in #8) suggest this might be as high as a quarter of screen reader users. Some people use a screen reader in combination with a magnifier, and/or have enough vision to appreciate layout. Other people have no visual impairment, but use a screen reader to assist with dyslexia. If there's a mis-match between visible layout and the order a screen reader announces content, that can be very confusing. Secondly, CSS does have an effect upon screen readers. For example some buggy implementations of
display: contentshave removed the semantics which are passed to assistive technology. Careless use of flexboxordercan result in a very confusing tabbing order.There's some truth here. Many rich text editors have been a poor experience with a screen reader. CKEditor isn't perfect, but it's one of the best for screen readers. The CKEditor project takes accessibility seriously, and have carried out their own testing. When we chose CKEditor, it was the editor with the best screen reader support, and that's still the case AFAIK.
I don't know what you're referring to here.
Comment #14
catchYes, but they've also dropped support for IE11 in ckeditor 5, and ckeditor 4 is likely to be supported only until the end of 2023. That is when Drupal 9 support runs out too, so we're OK from that point of view (I think they may even have set that date due to us), but Drupal 10 will need to be supported until at least 2025 (potentially longer if we're able to release on Symfony 6). Releasing Drupal 10 with ckeditor4 and no modern alternative means we go out of security support (and bugfixes for newer browsers, we've hit a recent issue with jQuery and chrome just a couple of weeks ago) for two years.
https://support.ckeditor.com/hc/en-us/articles/115005281629-How-long-wil...
Given ckeditor's support cycle, we can't not make a decision here - we'd either need to move to an alternative WYSIWYG that is guaranteeing to support IE11 until 2025, or attempt to provide our own security support for ckeditor 4, or we need to be prepared to drop IE11 based on current usage and downward trends and then decide to go with ckeditor5 (or another editor if there's a good reason to). Any of these decisions require preparation and development time ideally starting months ago and definitely asap.
Even if the usage drop-off rate halves in the 2021 survey, that would still have IE11 at 5.5% of users surveyed by webaim, a year before Drupal 10's release. It's not impossible that the rate is even slower than that but we won't know until mid-2021 which is really too late to start working on integrating a new editor with core.
Comment #15
droplet commentedYou're talking about the common case. I'm talking about the Drupal upgrade (with my prediction). Your example does not fully fit into this issue.
Acutally, your answer extending my word further, most of them asked for different things (in the common case). You skipped mentioning that they can use screenreader on a wired layout while non-screenreader failed to use the same website with a mouse. (for example, overlayed.)
When IE 11 is dropped. The damage for the above girl I mentioned (all 1%) is more than screenreader you mentioned. (This is my main point)
Comment #16
catchComment #17
andrewmacpherson commentedGood points about CKEditor 5 in #14. I haven't looked at v5 much yet, but it sounds like that will likely force our hand. So it goes.
I don't understand #15. I don't think the girl is more important than a screen reader user. I'm not interested in favouring one user above another.
Comment #18
effulgentsia commentedWhat's the use-case for still supporting IE11 in Drupal 10? Edge is now available for Windows 8. You can configure Edge's IE mode to use IE11 rendering for just the sites that need it, which no Drupal 10 site (or for that matter, even Drupal 9 site) should need.
For people who can't use Edge on Windows 8, why not? And if there are such people, then Windows 8 itself goes EOL in January 2023 and Drupal 9 will be supported until Nov. 2023, so sites wanting to cater to them can delay their D10 upgrade until after Windows 8's EOL.
So after January 2023, that only leaves people on Windows 10, where Edge is the default browser, but people explicitly choose to use IE11 instead, instead of using Edge's IE mode. Are there any legitimate reasons to make such a choice?
Comment #19
effulgentsia commentedI agree with this. I think we need more heuristics than just whole-population usage. Here's a draft proposal for possible heuristics...
If we're already supporting a browser (e.g., IE11), then we shouldn't remove support so long as any one of these conditions remain:
However, with Drupal 9 supported until November 2023, if we can reasonably expect whole population usage of IE11 to drop below 1% before then, and we already know that by then it will no longer be the default browser of any supported OS or device, and if it's already the case (or we can reasonably expect it to soon be the case) that it doesn't offer any accessibility advantages (or other advantages for any protected group) over other available browsers, then I think us making the decision to drop it from Drupal 10 makes a lot of sense, and everyone would be best served by us deciding that and communicating that with plenty of lead time.
Comment #20
droplet commented#17
no problems.
But if you realise the facts, you can figure out the important part and focus your limited resources on that when the dropping is happening. And slowing down the Drupal to drop some parts. Upgrading browsers never meant you have to use all new features.
#18
Many scripts does not designed for IE Mode. The complicated layout has very low performance in IE Mode. And many sites will crash (hanging) in IE mode but work well on the native IE. And more important: General users don't know what is IE Mode. (I'm a IE bugs killer since IE6)
And many sites/libs are supporting IE11 but dropping Edge, LOL
For anyone who doesn't know, running IE on low-end PC is smoother than all other browsers!
End users are not developers. When they visit a broken site, they think: Oh! Your site is broken.
Developer: Oh. I switch to Chrome. Oh, Chrome crash, I will try Firefox.
They will not switch until a new PC upgrade, no more IE11. Or someone warning them: Your bank account will be stolen... (Then, they only not to use IE on bank sites)
And for the screenreader, they don't know and don't care about the layout error as I told in the above comments. In most cases, only scripts error affected them. They have lower momentum than others to make the change.
If script error on "SHOW MORE", non-screenreader is switching their browser but screenreader won't.
https://giphy.com/gifs/dzCLO2QXjToeSoOc0z
Comment #21
andrewmacpherson commentedRe. #18:
Edge's IE mode may not be the same as actual IE11 as far as assistive tech is concerned. It may be the old Trident rendering engine, but it's wrapped by a different application. On Windows, there are 2 ways that assistive tech gets information from a web browser. In practice, they use a mixture of information from both methods:
For the in-process approach, assistive tech needs to have separate code for every browser it wants to integrate with. I don't know a much about how this works in practice, but I wouldn't assume that hooking into actual IE11 will be the same as hooking into Chromium Edge. Even if Edge is in IE mode, it doesn't mean that the assistive tech will be able to extract information the same way they do from actual IE11. I don't know the current status of whether assistive tech is even allowed to hook into Chromium Edge; I recall that Microsoft wanted to clamp down on this with the non-chromium Edge.
Re. #19:
Those 3 conditions sound like a good start.
I'll try to find out more about the reasons why IE11 has a bigger usage share among assistive tech users. I suspect workplace disability assessors will have more insight about this than developers do. Some assistive tech is scriptable, so one possibility is that there are a lot of JAWS scripts out there which would need re-written for other browsers.
Maybe so, given that various assistive tech has a lot of IE-specific stuff from hooking directly into the browser process. It's kind-of like a quirks mode for assistive tech.
Comment #22
droplet commentedhttps://labs.levelaccess.com/index.php/Assistive_Technology_Browser_Comb...
Comment #23
catchComment #24
catchComment #25
chi commentedI think the browser support policy should not be based purely on usage statistics. Another important factor to consider is how much effort required to support a particular browser.
Comment #27
zrpnr@andrewmacpherson were you able to find any examples of assistive tech that had a hard dependency on IE11 ? Or any reasons why IE11 might have a larger usage share?
Comment #28
effulgentsia commentedAccording to https://webaim.org/projects/screenreadersurvey8/#browsercombos, IE does not have a large usage share with NVDA, only with JAWS. Even on JAWS, even though a lot of users are using IE, more are using Chrome. Also, this survey was prior to Chromium Edge getting rolled out to Windows as the default browser. Meanwhile, https://www.freedomscientific.com/SurfsUp/MicrosoftEdge/Overview.htm now says:
There's a webinar audio with more details, but I haven't listened to it yet.
Maybe, per #21, there are still some advantages to IE over Chrome or Chromium Edge, but I can't find any that are highlighted on https://www.freedomscientific.com/.
Comment #29
catchWhile there are not new stats, there are responses from various accessibility orgs from #3155358-33: [policy, no patch] Drop IE11 support from Drupal 10.0.x downwards.
Comment #32
stephencamilo commentedComment #33
gregglesRevert vandalism https://www.drupal.org/project/site_moderators/issues/3276540
Comment #36
catchComment #37
catchThis only really becomes critical when we want to add or drop support for a browser, in between, we forget about it hence lack of activity here. Next time adding or dropping a browser comes up I think we should postpone that on this issue, but for now moving to major.
Comment #38
catchComment #40
catchthere have been two webaim surveys since this was last updated, so linking the new one. https://webaim.org/projects/screenreadersurvey10/
We didn't make any changes to the supported browsers for Drupal 11 because there were no pressing trends (and we already dropped IE), but it would be nice to get this closed out so if something does get notably more or less popular in the next couple of years, we've got some guidelines on how to approach it.
Comment #41
quietone commentedI gather this will be a new policy page in the 'Core change policies' guide.
My first pass at that text is
Comment #42
chi commentedThere are two points that need to be taken into considerations.
1. We live in epoch of "always green" browsers. Vendors continuously push new browser releases. It would be hard to manually evaluate available browsers each major release of Drupal.
2. There is a variety of Chromium based browsers. We probably need to establish the support policy based on on the version of Chromium engine.
That was already mentioned in #7. I think the evaluation of browser adoption can be done through through browser list.
Comment #43
catchWould be good to make more progress here, I think #41 is good, we could go with that and tweak it later if necessary?
Just opened #3510387: Replace "Opera Mini" with "Opera Mobile" in supported browsers.
Comment #44
quietone commentedComment #45
larowlan#41 looks good to me, but two of the links (caniuse and statcounter) have had their href's swapped.
Comment #46
quietone commentedComment #47
quietone commentedI updated the links in #41. There are no objections here so RTBC.
Comment #48
lauriiiDo we have a list somewhere on what browser would be supported under the proposed heuristics?
Comment #49
quietone commented@lauriii, not that I know of. Although, #3510387: Replace "Opera Mini" with "Opera Mobile" in supported browsers fits with these heuristics.
Comment #50
catchYes #3510387: Replace "Opera Mini" with "Opera Mobile" in supported browsers is the only known change to the current browserl ist.
Opera mini is below 1% (0.04%) on https://caniuse.com/usage-table and it's still in the supported browsers list.
Opera Mobile is above 1%, but it's not in it. More on #3510387: Replace "Opera Mini" with "Opera Mobile" in supported browsers.
Comment #51
catch@effulgentsia asked stats questions on #3510387-9: Replace "Opera Mini" with "Opera Mobile" in supported browsers which I have tried to answer in the two comments after that one.
The short version is that with Opera Mini, it shows as 0.05% usage globally, but in Kenya, which has the highest sample size of countries that also have highest Opera Mini usage, it's hovering around 5%. Or in Nigeria down from 5% to 2.5% in the past couple of years.
I think we could add something like this:
"If a browser has disproportionately high usage in a specific region, then it can be removed if the usage on course to be below 5-10% in countries in that region by the time of the next major core release. One source of this data is regional statcounter reports."
This would then match the regional 30% language in 'adding a new browser'. I think it's probably good to have a gap between the threshold for adding a browser and the threshold for removing one, they shouldn't be too close otherwise it could lead to unnecessary churn.
Back to needs review for that bit. Should we move the suggested text into the issue summary too?
Comment #52
quietone commentedSure, I'll put it in the issue summary.
I replaced the proposed resolution with the suggested text from #41 and the new paragraph from #51. The latter was modified for plain English and to fit the style of an item list.
Comment #53
quietone commentedAdd 'countries' into the proposed text, which I missed.
Comment #54
nod_All good for me, critera makes sense.
With what's going on with chrome/google in the US and the AI turn everything is taking we might not need this for a while but it's good to have it laid out.
Comment #55
lauriiiI think this looks great. Few comments that would be great to address to make sure that it's clear how this guidance should be applied:
Comment #56
catch#1. I've updated the statcounter link to go directly to https://gs.statcounter.com/browser-market-share, which includes regional filters by continent and country along with a short mention. I think it's good to link to the resources we know about, but don't think we want to be comprehensive/prescriptive here in case something better shows up.
#2. I had a look at the most recent webaim survey to see if there was an example.
https://webaim.org/projects/screenreadersurvey10/#browsers
This shows Firefox at 16% and Edge at 19%, whereas if we look at the last month's global data on statcounter:
https://gs.statcounter.com/browser-market-share/desktop-mobile/worldwide...
Firefox is at 2.5% and Edge is at 5%
So I've added "(e.g. more than 10-15% stable usage when global usage is under 1%)".
The 'stable' in there is so that the 'downward trend' above can take precedence, this was part of the considerations for dropping IE11 support iirc because it was clearly on its way out in successive webaim surveys, if still disproportionately used.
Stable 10-15% usage isn't a hard number (and we could change it to a different number), it just means we would need to put some effort into understanding why a browser is disproportionately and consistently used over the years before dropping support for it.
#3. I started writing a comment saying I think versions is already covered in https://www.drupal.org/docs/getting-started/system-requirements/browser-..., but then I realised that doesn't cover how we decide which browsers get two major vs. only latest major version covered. So yes, we probably do need something.
I've added:
I think we'd need a good reason to deviate from that for a specific browser, firefox ESR and safari mobile are the only two deviations we have, not sure we can get around discussing special cases like that.
I think that hopefully addresses the feedback, going to be bold and self-RTBC the changes since they are pretty minimal in the scheme of things.
Comment #57
quietone commentedThanks for the udpates catch.
Although @lauriii hasn't responded this seems close enough to agreement that I went ahead and created the policy page with the current text from the issue summary. It is not yet in the menu of the guide it is in. https://www.drupal.org/about/core/policies/core-change-policies/supporte...
Comment #58
quietone commentedI checked with @lauriii in committer slack and they confirmed that they agree with this change.
Assigning to myself to come back after the releases are made.
Edit: s/@larowlan/@lauriiii/
Comment #59
quietone commentedI updated credit.
This needs confirmation that the new doc page agrees with the proposed resolution.
Comment #60
catchThe new documentation looks great to me.
The only active issue we have related to this at the moment is #3510387: Replace "Opera Mini" with "Opera Mobile" in supported browsers so we can see how this holds up against the discussion there - but a lot of the latest changes here are due to that issue already.
Comment #61
catchActually I have one question on https://www.drupal.org/about/core/policies/core-change-policies/supporte... - I think it's doing a good job of defining the criteria, but do we need to say somewhere that adding or removing a browser is done by an issue that should show those trends using the relevant sources etc? That step is obvious to me but it might not be to someone who's not familiar with core processes, especially since browser version dropping is automatic now.
Comment #62
quietone commentedI added a sentence about needing a core issue that should cover #61. See https://www.drupal.org/node/3525067/revisions.
Since catch confirmed the new doc is OK I changed the status on it to 'no known problems'.
Comment #63
catchThanks that's great! I think we can mark this fixed now.