Page MenuHomePhabricator

Clarify “Modern (grade A) Current and previous version”
Open, Needs TriagePublic

Description

With work on T282779 a imprecise definition caught my eye. In the browser support matrix we're talking about “Current and previous version”.

Browserslist is sloppy and makes no difference between "last 2 versions" and "last 2 major versions" for the major browsers/platforms with only exception "Safari".
npx browserslist "last 2 versions"
and_chr 90
and_ff 87
and_qq 10.4
and_uc 12.12
android 90
baidu 7.12
bb 10
bb 7
chrome 90
chrome 89
edge 90
edge 89
firefox 88
firefox 87
ie 11
ie 10
ie_mob 11
ie_mob 10
ios_saf 14.5
ios_saf 14.0-14.4
kaios 2.5
op_mini all
op_mob 62
op_mob 12.1
opera 75
opera 74
safari 14.1
safari 14
samsung 14.0
samsung 13.0

npx browserslist "last 2 major versions"
and_chr 90
and_ff 87
and_qq 10.4
and_uc 12.12
android 90
baidu 7.12
bb 10
bb 7
chrome 90
chrome 89
edge 90
edge 89
firefox 88
firefox 87
ie 11
ie 10
ie_mob 11
ie_mob 10
ios_saf 14.5
ios_saf 14.0-14.4
ios_saf 13.4-13.7
ios_saf 13.3
ios_saf 13.2
ios_saf 13.0-13.1
kaios 2.5
op_mini all
op_mob 62
op_mob 12.1
op_mob 12
opera 75
opera 74
safari 14.1
safari 14
safari 13.1
safari 13
samsung 14.0
samsung 13.0

Proposal

Apart from this, I think we should orient on semver and add “major” to the definition.

Event Timeline

The only browsers that have "last two versions" policies are desktop Edge, Firefox, Chrome, and Opera. I am not sure why your list is so large as it is.

Secondly, I am pretty sure nobody has considered last two versions to mean anything other than last two major versions for these (the evergreen) browsers and you could probably be bold and update the wiki page directly.

Yes, what @Izno said.

The browserlist meaning of "last 2 versions" is, I think, not a good reason to change it. I would wager that anyone using that the wild has at least a 50% chance of not doing so intentionally.

Another aspect is localisation. Both directly, for non-native/non-technical readers interpreting the English policy, as well as indirectly through translated versions of the page. Thinking just of people in my family and the languages I speak (Dutch/Frysian/German), I am genuinly unsure what I'd translate "major" as. I'm sure there's someone somewhere who thinks they have power that has declared a proper translation, but I don't know it, and self-centeredly, I'd guess that therefore whatever word it is probably isn't known with that meaning to many others either.

Having said that, browserlist technicalities aside, if we do think that adding the word "major" (or something else) on this page helps avoid confusion among human readers (either casual readers who install and use the software, or developers acting on the policy day-to-day), then I'm all for changing it. +1 from me.

For contrast, the current phrasing is an improvement over what it was inspired from (https://jquery.com/browser-support/) which I don't recall ever having had confusion or questions about it through the jQuery community. (Though I admit that its oddly mathematical way of communicating the policy is, I suppose, less ambiguous).

@Izno Should have added that example list was general browserslist

$ npx browserslist "last 2 versions"

and

$ npx browserslist "last 2 major versions"

@Krinkle A note below might be acceptable. But precision in such documentation is IMO preferable over ambiguity. And I'd argue against the localisation issue from the opposite side, just because other languages are not providing the precision, we reduce it in the original language?! We, similar to many popular software products, among those browser vendors, orient on semantic versioning. That's the main inspiration, not Browserslist terminology.
To German, besides Semver is reusing “major version” in German as “Major Version”, an equitable term would be “Hauptversion”.