Browser Support

Features, not browsers

We don’t base our browser support on specific browser names and numbers. Instead, our support policy is based on the capabilities of those browsers.

The Baseline initiative is a joint effort by Google, Microsoft, Apple, and Mozilla to categorise browser support for web standards. Baseline provides clear information about which web standards features are ready to use in websites. It designates new features into two categories:

  1. Newly available – a feature is supported by the latest versions of all core browsers
  2. Widely available – a feature has been supported across browsers for at least 30 months

We use the Baseline project to determine which browser features to use in production. If a feature is widely available according to Baseline, we can use it.

Progressive enhancement

If a feature is newly available, we might still use it, but we’ll ask a follow-up question:

Can this feature be used as a progressive enhancement?

In other words, will using this feature harm browsers that don’t support it? If a newly-available feature can be used as a progressive enhancement, we could use it. If not, we’ll wait until the feature becomes widely available and choose a different approach in the meantime.

This approach restricts usage of new features to nice-to-have additions rather than mission-critical requirements. But it means we don’t necessarily have to wait for every browser to support a feature before using it.

Support vs. optimisation

We support every browser. We optimise for none.

Support

When we say we support every browser, we mean that the core content and functionality of a website should be available to any browser. That doesn’t mean the content will look exactly the same in every browser.

It also doesn’t mean that every interaction will be identical or available to every browser. Some interactions may be implemented as progressive enhancements only available to newer browsers, provided the interaction isn’t part of the core functionality of the website.

Optimisation

If a browser doesn’t yet support a specific feature, it almost certainly will in the future – Interop provides a list of features which browser makers have collectively agreed to prioritise. Therefore rather than optimising for specific browsers, we’ll spend time ensuring that features are deployed as progressive enhancements so that lack of support isn’t a blocker.

We try to avoid using polyfills, hacks and workarounds that would need to be removed at a later stage.

Access for all

Underlying our browser support policy are two foundational principles:

  1. Website content and core functionality should be accessible to everyone.
  2. It’s okay for websites to look different in different browsers.

If content is unreadable in some browsers, that’s a bug that we will fix.

If content is displayed slightly differently in some browsers, we consider that to be a facet of the web, not a bug. This means that there will sometimes be subtle visual and functional differences from browser to browser. We deem this acceptable provided content and core functionality are unaffected.