[policy, no patch] Define usage heuristics for browser support

Created on 9 September 2019, over 5 years ago
Updated 11 April 2023, about 2 years ago

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

Use statcounter and caniuse as the canonical source for browser statistics.

https://caniuse.com/usage-table
https://gs.statcounter.com/

Also refer to the two-yearly screenreader survey conducted by webaim. https://webaim.org/projects/screenreadersurvey8/#browsers - a survey specifically of screenreader users.

TODO: find a good source for geographical browser usage, in case a specific browser is very highly used in particular countries (previously this has included Opera mobile in Africa, and older versions of IE in China).

If a supported browser is on course to drop below 1% global usage by the time of a major release and the webaim survey shows either non-significant usage or a solid downward trend, then drop support for the browser in advance of the major release date so that dependencies and core code can operate based on the browsers we will actually support for the duration of the release.

If an unsupported browser is on course to increase above 1% global usage, has significant (>30%?) market share in particular geographic areas, or is disproportionately and steadily or increasingly used by screenreaders, open an issue to add it to the list of supported browsers.

2. Define what threshold we use to drop a browser. On the previous issue we agreed 1% was a good rule of thumb. We may also want to take into account the webaim survey in case a browser is disproportionately used by screenreader users. If a browser is disproprtionately included in the webaim survey, we should evalute:

a. is this because of a specific technical reason that makes it better for accessibility?
b. Is usage on an obvious downwards or upwards trajectory?

3. Browser support determines which bug reports we accept for our own code, but it is also determines (and is to some extent determined by when they drop support) which third party libraries we adopt. Given that we have to make decisions about third party libraries months or years in advance of major releases, can we agree to look at trend data for browser support as well as the raw libraries?

Remaining tasks

User interface changes

API changes

Data model changes

Release notes snippet

🌱 Plan
Status

Active

Version

10.1

Component
Other 

Last updated about 12 hours ago

Created by

🇬🇧United Kingdom catch

Live updates comments and jobs are added and updated live.
  • Needs frontend framework manager review

    Used to alert the fron-tend framework manager core committer(s) that a front-end focused issue significantly impacts (or has the potential to impact) multiple subsystems or represents a significant change or addition in architecture or public APIs, and their signoff is needed (see the governance policy for more information). If an issue significantly impacts only one subsystem, use Needs subsystem maintainer review instead, and make sure the issue component is set to the correct subsystem.

  • Needs product manager review

    It is used to alert the product manager core committer(s) that an issue represents a significant new feature, UI change, or change to the "user experience" of Drupal, and their signoff is needed. If an issue significantly affects the usability of Drupal, use Needs usability review instead (see the governance policy draft for more information).

  • JavaScript

    Affects the content, performance, or handling of Javascript.

Sign in to follow issues

Comments & Activities

Not all content is available!

It's likely this issue predates Contrib.social: some issue and comment data are missing.

  • 🇬🇧United Kingdom catch

    This 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.

  • Status changed to Needs review about 2 years ago
  • 🇬🇧United Kingdom catch

    there 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.

  • 🇳🇿New Zealand quietone

    I gather this will be a new policy page in the ' Core change policies' guide.

    My first pass at that text is

    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.

    1. The browser is on course to drop below 1% global usage by the time of a major release.
    2. The browser has insignificant screen reader usage or a solid downward usage trend as shown by the latest webaim screen reader survey.
    3. If the browser is disproportionally included in the lastest webaim screen reader survey, then it should not be providing a specific technical reason that makes it better for accessibility.

    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.

    • statcounter
    • caniuse
    • lastest webaim screenreader survey
    • Hopefully, add a good source for geographical browser usage, in case a specific browser is very highly used in particular countries.
  • 🇷🇺Russia Chi

    There 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 chrome 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.

  • 🇬🇧United Kingdom catch

    Would 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 🌱 Re-evaluate opera mini support Active .

  • 🇦🇺Australia larowlan 🇦🇺🏝.au GMT+10

    #41 looks good to me, but two of the links (caniuse and statcounter) have had their href's swapped.

  • 🇳🇿New Zealand quietone

    I updated the links in #41. There are no objections here so RTBC.

  • 🇫🇮Finland lauriii Finland

    Do we have a list somewhere on what browser would be supported under the proposed heuristics?

  • 🇳🇿New Zealand quietone

    @lauriii, not that I know of. Although, 🌱 Re-evaluate opera mini support Active fits with these heuristics.

  • 🇬🇧United Kingdom catch

    Yes 🌱 Re-evaluate opera mini support Active 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 🌱 Re-evaluate opera mini support Active .

  • 🇬🇧United Kingdom 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?

  • 🇳🇿New Zealand quietone

    Sure, 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.

  • 🇳🇿New Zealand quietone

    Add 'countries' into the proposed text, which I missed.

  • 🇫🇷France nod_ Lille

    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.

Production build 0.71.5 2024