Thoughts on browser version targeting

So the battle for hearts and minds continues as A List Apart publishes its third and fourth articles on Microsoft’s proposed version targeting for IE8 and beyond. That’s four articles on the same subject, so it must be important right?

It is important, but the issue is also pretty simple. There seems to be little doubt that browser version targeting is a good thing. What’s more, Microsoft’s proposal of using a meta tag or an HTTP header is valid, pretty inoffensive, and easily extended to other browser manufacturers.

So the fight is all down to the default behaviour. Should the web page tell the browser that it’s the latest and greatest in order to receive the most up-to-date rendering; or should the browser automatically assume the web page is the latest and greatest and only render otherwise if told to do so?

It’s absolutely counter to my instinct as a Web Standards advocate and practitioner, but I think logic indicates that the default behaviour proposed by Microsoft is actually right. Firstly it seems reasonable that web pages should tell the browser how they should be rendered (and behave). By the same note, browsers should assume that any web page which doesn’t lay claim to a browser version should be rendered as per an old browser. The logic here being that web pages without browser versioning will include the vast majority of older web pages and so these should be rendered as per an older browser. Of course not all web pages without versioning will be ‘old’ web pages, but the chances are they can safely be treated as such. So, yes, I disagree with m’learned colleague Jeremy Keith in that I believe the default behaviour proposed by Microsoft is logical and should stand.

Assuming that browser versioning does go ahead as proposed, it brings up an interesting question for standards-loving agencies such as us at Clearleft: what version do we include in the pages and templates we create? Do we go with IE=edge, which is ‘discouraged’ despite it being the current behaviour with which we deal? Or do we play it safe at stick in IE=8 or whatever the latest browser was on which the page was tested?

Personally I think we’ll go with IE=edge because we often include subtle visual enhancements not available to all browsers (progressive enhancement). For example text-shadow is only supported by Safari at the time of writing but it’s proposed in CSS 3 so it’s likely to be supported by IE sometime in the future, and I’d like to give IE users the opportunity to see our lovely text shadows as soon as their browser supports it. The only was we could achieve this would be to use using IE=edge.

Which leads me to a final thought. Pity the Internet Explorer developers working their arses off to add great standards support to their browser, only for that work to manifest itself on but a tiny proportion of web sites. Bit of thankless job, if you ask me, but I hope they stick at it.