Last week I attended RubyFuza (a conference about the Ruby programming language and related goodness). A couple of the speakers mentioned browser support for particular front-end features with a sigh and a shake of the head, and a chuckle from the audience. It’s funny because it’s a shared pain, but for me this attitude feels like it’s based on an incorrect assumption: that a website (or web app or web thang) has to be experienced the same in every browser. I don’t believe that they do.
The discussion would go something like:
“Here is this rad thing. Here is the browser support for the rad thing. If you have to support older browsers, you’re gonna have a bad time.”
I think that this is only true if we are expecting people to have identical experiences on different browsers.
If we accept that different browsers have different capabilities, that it’s up to the user how they view and use our stuff, and let go of the illusion of control, then we realise that it’s okay if (for example) some users have to manually select their province rather than have it looked up for them.
What about mobile?
Support is also often talked about just in terms of desktop browsers, and mostly what version of Internet Explorer a given feature is available for. I think this is partly because that’s where our biggest problems tend to be for desktop browsers (And even when Microsoft stop supporting an old version of IE, it doesn’t mean people stop using it). To some degree, it depends who your audience are, but generally speaking mobile is eating the world and your users are either already big mobile users, or will be soon.
The excellent caniuse.com does a pretty good job of highlighting this: search for a feature and it shows the popular desktop browsers, then iOS Safari, Opera Mini, Android Browser, and Chrome for Android. Woot!
Yes, this again
Different people will experience our sites differently whether we like it or not. We need to embrace this difference in our sites, apps, and things. (And, unsurprisingly, I think Progressive Enhancement is the best way to handle this. :) )