Which Browsers Should Your Website Support?
The question: “which browsers should my website/app support?” is often raised by clients and developers. The simple answer is a list of the top N mainstream applications. But has that policy become irrelevant?
The top ten desktop browsers according to StatCounter for May 2017 are:
- Chrome — 59.37% market share
- Firefox — 12.76%
- Safari — 10.55%
- IE — 8.32%
- Edge — 3.42%
- Opera — 1.99%
- Android (tablet) — 1.24%
- Yandex Browser — 0.48%
- UC Browser — 0.41%
- Coc Coc — 0.33%
Mobile now accounts for 54.25% of all web use so we also need to examine the top ten phone browsers:
- Chrome — 49.23%
- Safari — 17.73%
- UC Browser — 15.89%
- Samsung Internet — 6.58%
- Opera — 5.03%
- Android — 3.75%
- IEMobile — 0.68%
- BlackBerry — 0.26%
- Edge — 0.15%
- Nokia — 0.12%
The worldwide statistics don’t tell the whole story:
- Patterns vary significantly across regions. For example, Yandex is the second most-used Russian browser (12.7% share). Sogou is the third most-used browser in China (6.5%). Opera Mobile/Mini has a 28% share in Africa.
- New browser releases appear regularly. Chrome, Firefox and Opera receive updates every six weeks — it would be impractical to check versions going back more than a few months.
- The same browsers can work differently across devices and operating systems. Chrome is available for various editions of Windows, Mac OS, Linux, Android, iOS and ChromeOS but it’s not the same application everywhere.
- There is an exceedingly long tail of old and new, weird and wonderful browsers on a range of devices including games consoles, ebook readers and smart TVs.
- Your site’s analytics will never match global statistics.
Despite the organic variety of applications, all browsers have the same goal: to render web pages. They achieve this with a rendering engine and there is some cross-pollination:
- Webkit is used in Safari on Mac OS and iOS.
- Blink is a fork of Webkit now used in Chrome, Opera, Vivaldi and Brave.
- Gecko is used in Firefox.
- Trident is used in Internet Explorer.
- EdgeHTML is an update of Trident used in Edge.
The majority of browsers use one of these engines. They’re different projects with diverse teams but the companies (mostly) collaborate via the W3C to ensure new technologies are adopted by everyone in the same way. Browsers are closer than they’ve ever been and modern smartphone applications are a match for their desktop counterparts.
However, no two browsers render in quite the same way. The majority of differences are subtle but they become more pronounced as you move toward cutting-edge technologies. A particular feature may be fully implemented in one browser, partially implemented in another, and non-existent elsewhere.
PE works well for content sites and apps with basic form-based functionality. It becomes less practical as you move toward applications with rich custom interfaces. Your new collaborative video editing app is unlikely to work in the decade-old IE7. It may not work on a small screen device over a 3G network.
Perhaps it’s possible to provide an alternative interface but the result could be a separate, clunky application few would want to use. The cost would be prohibitive given the size of the legacy browser user base.
The question “which browsers should you support?” has become too restrictive. Presume your answer was just “Chrome”:
- which devices and OS is it running on?
- what range of screen sizes will be supported?
- which version are you referring to? The latest? Chrome 10 and above?
- what happens when a new version of Chrome is released?
- what will happen in other browsers when Chrome effectively becomes your application’s runtime?
Providing a browser support list has become impractical for client-facing projects. Perhaps the best answer is: “we’ll develop your project according to presumed demographics then test as in many devices, OSes, browsers, and versions as possible according to budget and time constraints”. Even then, you’ll miss that aging Blackberry the CEO insists on using.
Develop for the web — not browsers.