Choosing Web Browser Versions to Support
| Table of contents |
|---|
Foreword
This article introduces a method to determine which browser versions should be supported by a modern day web page.
- 2025-10-29 Text is checked.
- 2019-10-22 Text is published.
Introduction
During June 2019 Verkkokauppa.com – the largest Finnish online retailer (reference) – is visited or tried to be visited by 34 different browser vendors (Chrome, Firefox, Safari etc.), by 1518 browser versions (Chrome v69.1, v69.2 etc.), by 20 operating systems (Windows, macOS, iOS etc.) and by 4271 different screen dimensions (1024x768, 640x480 etc.) It's impossible to support all possible combinations users can have.
A fundamental question in web development has probably always been to tell, where to draw a line which browsers and devices to support and which not. In others words, how to keep a website serving as many users as possible while making it as attracting as possible for the vast majority who use modern browser versions anyway.
Let's look at one approach how to answer that question.
Tools
First gather all data available to make as good decisions as possible. Tools and sources:
- Google Analytics: to see how the current customers behave (viite).
- Browserslist: to see what the potential customers use (viite).
- Can I use: to see what technologies different browser versions support (viite).
- CrossBrowserTesting: to test how the website behaves in different browsers (viite).
- BrowserHacks: to find technical solutions to specific browser version errors (viite).
Data
Operating systems by visits (Verkkokauppa.com)
OS Share -------------------------- Android 38.79 % Windows 29.56 % iOS 24.70 % Macintosh 5.66 % Linux 0.98 % Chrome OS 0.20 % Windows Phone 0.06 % Playstation 4 0.01 % Tizen 0.01 % Xbox 0.00 % Source: Google Analytics
Other operating systems include: Xbox, Blackberry, OS/2, FreeBSD, Nintendo WiiU, NetBSD, OpenBSD, Nintendo 3DS, Playstation Vita and SunOS.
Screen dimensions by visits (Verkkokauppa.com)
Dimensions Share -------------------------- 360 x 640 13.01 % 1920 x 1080 11.09 % 375 x 667 9.36 % 768 x 1024 4.74 % 1366 x 768 3.84 % 1536 x 864 3.48 % 375 x 812 3.17 % 360 x 740 3.06 % 360 x 720 2.64 % 320 x 568 2.63 % Source: Google Analytics
Browser vendors by visits (Verkkokauppa.com)
Browser Share ------------------------------ Chrome 53.02 % Safari 24.62 % Firefox 7.47 % Samsung Internet 3.93 % Android Webview 3.60 % Edge 2.38 % Internet Explorer 2.21 % Safari (in-app) 1.62 % Opera 1.00 % YaBrowser 0.09 % Source: Google Analytics
Browser versions by visits (Verkkokauppa.com)
Browser Version Share ------------------------------------------ Chrome 74 27.93 % Chrome 75 20.86 % Safari 12 20.05 % Firefox 67 5.39 % Samsung Internet 9 2.94 % Chrome 73 2.18 % Internet Explorer 11 1.99 % Android Webview 74 1.82 % Safari (in-app) (n/a) 1.46 % Edge 17 1.21 % Safari 11 1.21 % Chrome 72 1.16 % Android Webview 75 1.04 % Source: Google Analytics
Browser versions used by at least 1 % of Finnish internet users
Browser Version Share ------------------------------------------ Chrome 74 36.3 % Chrome 73 16.5 % Safari 12 16.7 % Firefox 66 4.9 % Chrome 71 2.4 % Internet Explorer 11 1.8 % Chrome 72 1.6 % Samsung Internet 8 1.5 % Chrome 57 1.4 % Edge 17 1.4 % Safari 11 1.2 % Chrome 70 1.0 % Samsung Internet 9 1.0 % Source: BrowsersList (Finland) [1]
Analysis
According to the data 9.15 % of Verkkokauppa.com users use mobile in-app browsers (Samsung Internet, Android Webview and Safari in-app).
If we assume that if a website works in a specific version (like Chrome 49) it works in all newer versions too (Chrome 57, 59 etc), we can combine some of the browser versions and make a broader coverage with less testing. For example testing the next 11 browser versions can attain over 93 % coverage (2019-07-02) [2][3].
Browser Version --------------------------- Android Chrome 74 Android Firefox 66 Android WebView 4.2 Chrome 49 Edge 17 Firefox 52 Internet Explorer 11 iOS Safari 8 Opera 58 Safari 10.1 Samsung Internet 4
Discussion
The easy answer to the main question of this article, what browser versions should be supported, is that let's support all. The more browsers supported, the more revenue, right? The only problem is that in a real world you can't use all the time to support everything. The line must be drawn somewhere.
Another answer is that let's support the browser versions which generate the most revenue. The problem in this approach is that it doesn't reveal the browsers that could generate revenue. Maybe the website is not working on some popular browser because of a technical reason and therefore not generating revenue.
It's more reasonable to look at the usage data of the potential users, such as all Finnish users, than the current users, and check if all the popular browsers generate revenue in a same magnitude to their popularity level. For example if some browser doesn't generate revenue at all but 5 % of Finnish users have the browser, it's possible the website simply doesn't work on that browser and it needs to be checked, and probably fixed.
One takeaway of this study is that surprisingly many users have mobile in-app browsers.
The approach to choose browser versions worth supporting in this article is based on hard data but in real life the decision can be adjusted by the knowledge of the experienced developers who may have a good grasp what are the estimated efforts of supporting different browsers. For example, supporting Samsung Internet 4 might require too much effort eventhough it's still quite popular.
To sum up, use data but use it wisely.
Afterword
If the browsers were tested automatically, the set could be much broader and the coverage could get closer to 100 %. CrossBrowserTesting has an API but it lacks browser versions.
Another takeaway here is that the Google Analytics data could be monitored to see if a generated revenue by some browser version suddenly drops to zero. The reason could be a regression bug that has affected the specific browser to make it not work with the website anymore. Depending on the amount of the revenue loss, the bug is fixed.
Finally it's a good idea to tell the users when the browser he uses is not supported. Without any notification it's like a closed door in a physical store not telling when it will be open again.
Appendix
[1]:
$ ./node_modules/browserslist/cli.js "> 1% in FI" (...)
[2]:
$ ./node_modules/browserslist/cli.js "> 0.1% in FI" and_chr 74 and_ff 66 android 4.4.3-4.4.4 android 4.2-4.3 chrome 73 chrome 72 chrome 71 chrome 70 chrome 64 chrome 63 chrome 59 chrome 57 chrome 49 edge 18 edge 17 firefox 66 firefox 65 firefox 60 firefox 52 ie 11 ios_saf 12.2 ios_saf 12.0-12.1 ios_saf 11.3-11.4 ios_saf 11.0-11.2 ios_saf 10.3 ios_saf 10.0-10.2 ios_saf 9.3 ios_saf 8 op_mini all opera 58 safari 12.1 safari 12 safari 11.1 safari 10.1 samsung 9.2 samsung 8.2 samsung 7.2-7.4 samsung 4
[3]:
$ ./node_modules/browserslist/cli.js --coverage=FI "> 0.1%" These browsers account for 93.66% of all users in the FI