This article was written in 2013. It might or it might not be outdated. And it could be that the layout breaks. If that’s the case please let me know.

Aggressive browser spitting

I’ve been thinking about browser support all day. It was triggered by this tweet by Maaike which translates to something like Silly nerds! Of course people who still use Android 2.3 won’t install Opera, all of a sudden. They don’t even know what it is :-)

And she’s right. Of course she is. People should not have to care about browsers or browser versions. That’s why most browsers update automatically nowadays. In the future we won’t have these issues with dinosaur browsers that refuse to die. But right now we do. The reason we still have to support these old crappy browsers is because we support them, because we spend hours and hours and hours creating the same experience for everybody. Of course your mum won’t know the difference between IE8 and Chrome or Firefox if we make sure that everything looks and behaves exactly the same on all those browsers. It is our fault we still have to support IE.

Fuck it.

I am an enormous proponent of progressive enhancement and I’m convinced it is the right way to set up a front-end architecture. But the reason I think it is the right way is not primarily to support crappy old browsers, it’s because it means our stuff is ready for the future.

I’m also an enormous proponent of browser spitting. Writing code according to the standards, to the spec, and assuming it just works. Bugs should be fixed by browser vendors, not by developers. Fixing bugs for old crazy browsers is a waste of our time. And it results in crappy code.

At A Responsive Day Out I heard the term aggressive enhancement for the first time. If a browser doesn’t support some clever new HTML5 stuff, it gets the most simple version of the site. I think we could take this one step further. Maybe we should combine aggressive enhancement with browser spitting. The simple version of the site will probably work on most browsers, but it could very well break at points. We wouldn’t know, because we wrote our code in a way that it should work perfectly fine. I believe this is a good thing when dealing with these browser that are still powered by slave labor. If people don’t have a reason to upgrade, maybe we should just start giving them that reason.

One of the principles behind HTML5 is that in case of a conflict between authors and users, the users should win. But not if they use a bad browser.