This year we saw Groupon, Spotify, and DirecTV decide to only support Google Chrome. For the web standards crowd, that should enough of a rallying cry for the cause. But how did we get here? Does anyone give a shit anymore?
Last year, Jeffery Zeldman wrote:
Many web developers have “moved on” from a progressive-enhancement-focused practice that designs web content and web experiences in such a way as to ensure that they are available to all people, regardless of personal ability or the browser or device they use.
And this is the foundation for what has happened. Many web developers have moved on from Progressive Enhancement. Supporting multiple browsers is much easier with Progressive Enhancement. You rely on the error recovery that HTML and CSS provides. You build on that. Layout your page for your Lowest Common Denominator. Mobile. Then, if CSS Grid is available, enhance the layout. Provide a zip-code-based location lookup tool. Then, if the Geolocation API is available, add a button to use your location.
This was one of many big pushes of the Web Standards movement. Before the Web Standards movement, “Best viewed in Internet Explorer” was a common badge. Developers would choose to only support and test for one browser and, often, block anyone coming from different browsers. As I wrote in June, I remember when I first got my Mac in 2004, many sites blocked me altogether. IE 6 didn’t exist for Mac and many sites required it.
So what? “What’s so bad about only supporting Chrome?”, you may ask. It represents over 75% of web traffic, right? So did Internet Explorer back in the day. That would be the same argument many used at that time. Back in that day, there were major feature differences between IE and Firefox/Netscape. Because standards didn’t exist, Internet Explorer and its competitors invented new features. Lots of new features. The features that were the same were often implemented differently. So supporting multiple browsers required lots of effort depending on what you needed. IT departments would prevent employees from installing other browsers and then build internal applications to run on IE only. But IE wasn’t available everywhere. My Mac couldn’t access my bank’s website in 2004 unless I set it to spoof the IE user agent. So the features that the bank needed were supported in Safari, but they had a block for browsers other than IE. If I didn’t know how to change my user agent, I’d have been blocked by something as important as accessing my bank.
Today, Edge, Firefox, Chrome, and Safari are relatively the same. Build something for Safari and it will mostly just work in Firefox. I built a project this Fall that took two months worth of work to build and only a couple hours to fix a few minor things in Firefox and IE/Edge. No big deal. But if I want to access the desktop site for Spotify on my 13” iPad Pro, they block it. I cannot install Chrome. Or Firefox. On iOS, my only option is Safari.
Support any user, no matter what browser they have. That is the job of a web developer. A user running IE 6 should be able to still view your website built in 2017. It may not have all the bells and whistles, but it should work. Because the web browser has great error recovery. A user that has JavaScript turned off and a screen reader reading the content of your site to them should be able to access your site. Unless you can make an argument that a feature is an absolute must, you should be progressively adding it.
So we are coming full circle. Overuse of JavaScript. Using JavaScript to build static, undynamic, barely-interactive websites. Supporting only certain browsers for no technical reason. Best viewed in Chrome.
We— those that believe in Web Standards, those that fought in the first battles and pushed our fellow developers to learn more and produce more inclusive, accessible, cross-platform websites— we need to stand once again for Web Standards. We need to make it clear what the best practices are and fight against the bad practices where we work. There are no excuses in 2017. Web development has gotten easier. Forking code for multiple browsers is significantly less necessary today. Changes are, usually at best, a few hours of work for big projects. No excuses.