(pardon me for the string of negativity)
As soon as I started reading Aaron Gustafson's article on ALA #251 Beyond DOCTYPE: Web Standards, Forward Compatibility and IE8 I knew this wasn't just another "best practice article". This was going to throw the entire web-constructing community into an uproar.
Ever since I got into the web standards groove, circa 2003, I remember finding experts blogs (for example simplebits, mezzoblue, meyerweb, etc.) great places to find insightful comments on best practices and real world code, embedded on their own sites. A List Apart, a magazine, has always been a the beacon of excellency throughout the years. That was why today's issue has created - and will continue to create - such an echo!
Aaron announces a feature that will be a part of IE8 called version targeting that basically allows developers to "freeze" their websites in a given version of a given browser - they expect to have other vendors implement this. This was driven by the fact that many websites "broke" when IE7 saw the light of day. Not because IE7 was worse, but because websites were custom-made for IE6, which included several bugs. When these were corrected in IE7, websites broke.
Now, Microsoft doesn't want the same to happen again with IE8, so their "vision" is to give the option to the developer to choose which render engine his/her website should be rendered with. By spitting an HTTP header (or meta tag) with X-UA-Compatible: IE=7
, IE8 will load the IE7 engine and ignore the improvements made in the newest version of their browser. At least this way, websites won't break.
Despite some criticism, it's basically the reverse of the hated browser-sniffing of the late 90s. It's actually forcing the browser to adapt to the code in the page and not the other way around. Despite all this, I honestly think that's not the answer. Freezing browser engines in time cannot be the answer.
For the sake of keeping my sanity, I won't even touch the subject of IE8 behaving like IE7 if you don't opt-in using the HTTP header or the meta tag, I'll let you follow that link and read what Jeremy had to say about that. Please, do.
I just think we could use what we have instead of creating more mechanisms that will generate more entropy. We already have Conditional Comments and to be honest, out in the field, at work, I've frequently felt we could use the same mechanism for other browsers (Firefox, Opera...). Why not use that for fixing the "broken" websites by newer versions? Use a stylesheet specific for IE8 and fix your mess! Pronto.
I just can't get behind this concept. But I'm open to discussion, if you think you can persuade me, please do so in the comments. Even if Eric Meyer comes out in Aaron's defense, I see this as a huge blow to the web standards effort. It's like saying ok, we lost the war, let's just find a way of saving everyone some time and be done with it
. It's making each render engine their own little standard and allowing lazy developers to get away with it. Is this the web we want for our children??
Also, I can't see a future where every browser out there has to carry their old render engines on their backs.
Can you?
Further Reading
If you want to know more, read this:
- Microsoft's Version Targeting Proposal @ Webstandards.org
- IE Lock-in @ Annevankesteren.nl
- Compatibility and IE8 @ IEBlog