Browser Support¶
We seek to provide usable experiences of our most important web content to all user agents. But newer browsers are far more capable than older browsers, and the capabilities they provide are valuable to developers and site visitors. We will take advantage of modern browser capabilities. Older browsers will have a different experience of the website than newer browsers. We will strike this balance by generally adhering to the core principles of Progressive Enhancement:
Basic content should be accessible to all web browsers
Basic functionality should be accessible to all web browsers
Sparse, semantic markup contains all content
Enhanced layout is provided by externally linked CSS
Enhanced behavior is provided by unobtrusive, externally linked JavaScript
End-user web browser preferences are respected
Some website experiences may require us to deviate from these principles – imagine a marketing campaign page built under timeline pressure to deliver novel functionality to a particular locale for a short while – but those will be exceptions and rare.
Browser Support Matrix¶
Last updated: Updated July 19, 2023
Firefox¶
It is important for website visitors to be able to download Firefox on a very broad range of desktop operating systems. As such, we aim to deliver enhanced support to user agents in our browser support matrix below.
Enhanced support:
- Windows 11 and above
All evergreen browsers
Firefox
Firefox ESR
Chrome
Edge
Brave
Opera
- Windows 10
All evergreen browsers
- macOS 10.15 and above
All evergreen browsers
Safari
- Linux
All evergreen browsers
Degraded support:
Website visitors on slightly older browsers fall under degraded support, which means that the website should be fully readable and accessible, but they may not get enhanced CSS layout or JS features.
- Windows 10
Internet Explorer 11
- Windows 8.1 and below
Firefox 115
Chrome 109
Internet Explorer 10
- macOS 10.14 and below
Firefox 115
Chrome 114
Safari 12.1
Note
As of Firefox 116 (released August 1st 2023), support for Firefox has been ended on Windows 8.1 and below, as well as on macOS 10.14 and below. Website visitors on these outdated operating systems now fall under degraded support, and we offer them to download Firefox ESR instead.
Basic support:
Website visitors on very old versions of Internet Explorer will get only a very basic universal CSS style sheet, and a basic no-JS experience.
- Windows 7
Internet Explorer 9
Internet Explorer 8
Unsupported:
Even older versions of Internet Explorer are now unsupported.
- Windows XP / Vista
Internet Explorer 7
Internet Explorer 6
Note
Firefox ended support for Windows XP and Vista in 2017 with Firefox 53. Since then, we have continued to serve those users Firefox ESR 52 instead. However, since then support for downloading has been discontinued. The SSL certificates on download.mozilla.org no longer support TLS 1.0.
Privacy & security products¶
Browser support for our privacy and security products (such as VPN, Relay, Monitor etc) is thankfully a simpler story. Since all these product use a Firefox account for authentication, we can simply follow the Firefox Ecosystem Platform browser support documentation.
The most notable thing here for bedrock is that Internet Explorer 11 does not need to be supported.
Delivering basic support¶
On IE browsers that support conditional comments (IE9 and below), basic support consists of no page-specific CSS or JS. Instead, we deliver well formed semantic HTML, and a universal CSS stylesheet that gets applied to all pages. We do not serve these older browsers any JS, with the exception of the following scripts:
Google Analytics / GTM snippet.
HTML5shiv for parsing modern HTML semantic elements.
Stub Attribution script (IE8 / IE9).
Conditional comments should instead be used to handle content specific to IE. To hide
non-relevant content from IE users who see the universal stylesheet, a hide-from-legacy-ie
class name can also be applied directly to HTML:
<p class="hide-from-legacy-ie">See what Firefox has blocked for you</p>
Delivering degraded support¶
On other legacy browsers where conditional comments are not supported, developers should instead rely on feature detection to deliver a degraded experience where appropriate.
Note
The following feature detection helpers will return true for all browsers that get enhanced support, but will also return true for IE11 currently, even though that has now moved to degraded support. The reason for this is that whilst many of our newer products don’t support IE at all (e.g. Mozilla VPN, Mozilla Monitor, Firefox Relay), we do still need to provide support so that IE users can easily download Firefox. We can decide to update the feature detect in the future, at a time when we think makes sense.
Feature detection using CSS¶
For CSS, enhanced experiences can be delivered using feature queries, whilst allowing older browsers to degrade gracefully using simpler layouts when needed.
Additionally, there is also a universal CSS class hook available that gets delivered via a site-wide JS feature detection snippet:
.is-modern-browser {
/* Styles will only be applied to browsers that get enhanced support. */
}
Feature detection using JavaScript¶
For JS, enhanced support can be delivered using a helper that leverages the same feature detection snippet:
(function() {
'use strict';
function onLoad() {
// Code that will only be run on browsers that get enhanced support.
}
window.Mozilla.run(onLoad);
})();
The site.isModernBrowser
global property can also be used within conditionals like so:
if (window.site.isModernBrowser) {
// Code that will only be run on browsers that get enhanced support.
}
Exceptions (Updated 2019-06-11)¶
Some pages of the website provide critical functionality to older browsers. In particular, the Firefox desktop download funnel enables users on older browsers to get a modern browser. To the extent possible, we try to deliver enhanced experiences to all user agents on these pages.
The following pages get enhanced experiences for a longer list of user agents:
/firefox/
/firefox/new/
/firefox/download/thanks/
Note
An enhanced experience can be defined as a step above basic support. This can be achieved by delivering extra page-specific CSS to legacy browsers, or allowing them to degrade gracefully. It does not mean everything needs to look the same in every browser.