Skip to main content

The GDS Way and its content is intended for internal use by the GDS Digital Products community.

Supporting different browsers

Deciding which browsers to support

The services we build are generally intended to be used on a wide range of devices and browsers. The exact set of browsers you build for will vary by project, but as a minimum, you should regularly test your service in the browsers listed in the Service Manual. You should use analytics data and user research to determine whether you should regularly test in any other browsers.

You may receive reported issues on browsers outside of your normal policy. You should still investigate these issues, assess their impact, and consider how to address them. You might still decide that an issue is not worth fixing if:

  • the browser in question cannot be supported without introducing serious security risks (for example, if the browser does not support recent TLS versions)
  • fixing the issue would require disproportionate engineering effort
  • a feature of your service inherently relies on an unsupported feature

Progressive Enhancement

Use a progressive enhancement approach to deliver different features to different browsers.

CSS feature queries

Modern browsers support using CSS feature queries, which allow you to set conditional styles if a browser supports a given CSS feature.

Vendor prefixing

Some features may require vendor prefixes to work in older browsers. Consider using autoprefixer and configuring a browserslist to automate adding vendor prefixes without manually adding them to your stylesheets.

Javascript feature detection

When writing Javascript, use feature detection to test for any features you rely on that are not widely supported.

Browser hacks

You can use various browser hacks to select and target different browsers. These tend to be less readable than the feature detection methods above, so should only be used in rare cases where those methods can’t be used in your target browsers.

Testing

You can use BrowserStack to test browsers that run on Windows, mobile phones and tablets. Contact the Engineering Enablement team to request an account.

Virtual testing is useful, but you should also test with physical devices whenever possible. This can help discover issues that are hard to test in remote environments, such as distinctions between mouse and tap events, and to get a more realistic understanding of how users of these device and browser combinations would actually experience your service.

You should also test your service with assistive technologies.

This page was last reviewed on 13 July 2026. It needs to be reviewed again on 13 July 2027 by the page owner #frontend .