Technical reason why Safari 9 doesn’t support modern sites

safari

I am still using Mac OS X 10.9.5 (Mavericks) on one of my machines so as to be able to run older versions of Adobe software etc. I prefer to use Safari as a web browser because it is designed for the Mac, but the final version of Safari for Mavericks (v. 9.1.3) no longer supports certain sites.

These are often ones where an incomplete circular device keeps going round and round without loading whatever it is trying to load. This doesn’t look like a Mac ‘busy’ cursor and it is not browser-specific. An example (trying to load a series of references in response to my query) is shown below (from www.flybase.org) within a red outline I added:

enter image description here

The problem seems to be with some JavaScript files because the error page in the Develop menu shows the following:

enter image description here

I can work round this using Firefox, but, as an amateur web designer, I am curious to know what the — presumably more recent — web technology is that Safari 9 does not support.

Best Answer

Safari 9.1 was released in 2016, over 3 years ago, and doesn’t support a lot of popular web technologies that have since been developed.

Polyfills exist for some technologies, with Safari 9 barely making the list for some polyfills, but many developers don’t expect to support a browser lacking ES20151 support (you can’t even declare a variable with let in Safari 9).

caniuse.com provides a detailed feature-based comparison of web browsers, including Safari 9 vs Safari 12.1. Given the added screenshot with your error message, the JavaScript being executed cannot find ‘fetch’ which is likely a reference to the Fetch API, a crucial API for obtaining resources from elsewhere. The Fetch API is first supported in Safari 10.1.

If the web developer hasn’t included a polyfill for Safari 9, it may be possible to inject the polyfill yourself for individual web technology features, but this situation will only get worse. I understand the potential need to run older software, but such use should be limited to a virtual machine, ensuring the host OS is secure as well as running a secure web browser capable of understanding the technologies present on your favourite sites.

1 ES2015 (or ECMAScript 2015) is a scripting-language specification created to standardise JavaScript for use by multiple browsers, applications, and devices. This standard is updated each year in June and we're now up to the ECMAScript 2019 standard. For more information, refer to JavaScript Versions. This page provides a summary of ECMAScript editions and scrolling down you can see a breakdown of browser support.