ja muut uroteot

TUTKIMUS, MATKAT

The Web Browser Versions Worth Supporting

Table of contents

Briefly

The article introduces a method to determine the old browser versions worth supporting.

Article history

  • 2019-10-22 Text is published.

Introduction

In June 2019 Verkkokauppa.com (reference) – the largest Finnish online retailer – was visited or tried to be visited by 34 different browser vendors, by 1518 browser versions, by 20 operating systems and by 4271 different screen dimensions. That's a lot to support especially when considering the number of possible combinations.

A fundamental problem in web development since the early days has been drawing the line which browsers and devices to support and which not. Ultimately the question is how to keep the website serving as many users as possible while making use of all the helpful features of the modern browsers which the vast majority of users use anyway.

When tackling the problem two questions are asked: if non-standard code (aka browser hacks) are justified, and how small ROI (Return of Investment) is justified in order to support a broader set of browsers. In other words, how much time is worth investing to support more browsers.

Perhaps we should also take a closer look how the browsers are used. Maybe some browsers generate more revenue and some browsers are used just for fun?

Let's look at one approach how to determinate which browsers are worth supporting.

Tools

First we want to gather all data available to make as good decisions as possible. Our tools and sources are:

  • Google Analytics: to know how the users behave.
  • Browserslist: to see what browsers the potential customers use.
  • Can I use: to see what technologies different browsers support.
  • CrossBrowserTesting: to test how the website behaves in different browsers.
  • BrowserHacks: to find technical solutions to specific browser errors.

Results

While the actual data is classified a few interesting highlights can be shared from June 2019. Revenue weighted data can't be shared.

Operating systems by visits

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

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

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

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

According to this data 9.15 % of Verkkokauppa.com users use mobile in-app browsers (Samsung Internet, Android Webview and Safari in-app).

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

On average Verkkokauppa.com users seem to use more modern browsers than Finnish internet users in general.

Discussion

Looks like the in-app browsers are gaining popularity. They should be investigated in a more detailed manner.

But the question of this study, what browsers to support? Should we focus on browsers that are used most today or browsers that could be used if the support was broader and better?

The easy answer is that let's support all browsers. The better browser support, the more revenue, right? But we can't waste resources to support browsers that do not generate revenue.

First we must know the reason why a browser isn't generating revenue. Either users just don't want to use that particular browser or the website isn't working on that browser. If the latter is the case, it should be fixed – or not.

To make the decision we can't look at the current usage data because it doesn't reveal the browsers which don't work with the website. Luckily we have market data from BrowsersList to tell the browser shares of Finnish internet users.

To use BrowsersList data we must decide first how many different browsers we have the resources to test often enough to be able to keep the promise of supporting it. Let's say a realistic set could include 10-20 browsers but how to select those browsers to have as broad coverage as possible?

After making a few iterations it looks like that by supporting 11 browser versions we can attain over 93 % coverage if we assume that when a website works in a specific version (like Chrome 49) it works in all newer versions too (Chrome 57, 59 etc).

Here are the commands and data to find out the numbers:

$ ./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
$ ./node_modules/browserslist/cli.js --coverage=FI "> 0.1%"
These browsers account for 93.66% of all users in the FI

Then we combine the versions to the lowest one to minimize the number of tests required:

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

After combining the versions we have a set of 11 browser versions (above) to cover 93.66 % of Finnish internet users (2019-07-02). The coverage is actually a bit higher because there are also some newer but less popular versions of some browsers which were left out of data because of the 0.1 % threshold.

Conclusion

One takeaway of this study is that surprisingly many users use mobile in-app browsers.

The approach to select browsers worth supporting in this article is based on hard data. In real life the result should be adjusted by the knowledge of 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 compared to its share.

To sum up: use data but use it wisely.

Afterword

If the browsers could be tested automatically, the set could be much broader and the coverage could get closer to 100 %. CrossBrowserTesting has an API but it lacks some browsers.

Another takeaway here is that the Google Analytics data could be monitored to see if the 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 on that website anymore. Depending on the amount of the revenue loss, the bug is fixed.

Finally I want to underline that it's a good idea to tell the user when the browser he uses is not supported. Without any notification it's like a closed door of a physical store not telling when it will be open again.