Thomas Higginbotham — Web Designer and Developer

IE8 and Version Targeting

February 24, 2008
Internet Explorer logo next to W3C and Wasp logos placed on a target

There has been a lot of discussion recently regarding Microsoft's intention of requiring web developers to “opt in” to the latest standards support and improvements in the upcoming version of Internet Explorer. Frankly, I am both surprised and dismayed at the amount of supporters for this behavior, especially from popular advocates for web standards such as Jeffrey Zeldman. I fail to see any use from version targeting aside from cementing Microsoft's monopoly in the browser market.

Update: It seems that Microsoft has seen the error of their ways and has reversed its decision to make future versions of IE behave like IE7 by default. Version targeting will still be possible but only if the developer chooses to opt in (which I agree is the better method of handling the problem).

What Version Targeting Is

For those not familiar with this debacle, version targeting means that web developers will have to add a proprietary meta element into their web pages to tell Internet Explorer which version of itself the page is optimized for. If the web developer omits this element, Internet Explorer will default to version 7.

Microsoft's reasoning for this necessity is that it is the only way to avoid “breaking the web.” According to Microsoft, the release of IE7 caused numerous websites and web-based applications to stop working. This was because many incompetent developers wrote sloppy code that was only ever tested in IE6. Because of the numerous, well-documented flaws in IE6, these websites were not capable of operating correctly in more modern browsers. Instead of berating the amateur developers for creating a poor web application, clients instead blamed Microsoft for improving their web browser.

In order to avoid a repeat of this scenario with IE8, Microsoft has decided to implement version targeting and made the vow that it “will not break the web” again. As a member of the W3C HTML Working Group, I have heard this slogan many times from Internet Explorer's platform architect, Chris Wilson. I thought it was a poor excuse then, and I'm even less supportive now.

Why It Isn't Needed

Microsoft doesn't seem to realize that IE is not the Internet. There are hundreds of popular web browsers, and many of them (Opera, Firefox, Safari, Konqueror,) are far more standards-compliant than IE7. Guess what? They haven't “broken the web.” I use Firefox as my primary web browser, and I haven't come across a website worth visiting that doesn't work correctly in the past three years. The rising popularity of alternative browsers has done nothing but improved interoperability of web applications and the quality of HTML, CSS, and JavaScript code. In all fairness, not many people code for the bugs in these browsers either (although I could argue that it's because there aren't many). However, these browsers have been around for some time now, and, if developers still haven't updated their IE6-only code, they shouldn't still be in this business, and their clients should have moved on to more competent developers. That's how the Internet works; you wouldn't expect a web application coded specifically for Netscape 4 to work flawlessly in today's browsers—why enshrine IE7's broken behaviors?

Why It Won't Work

Another, very important argument that hasn't received the attention it deserves is how Microsoft is going to handle this with future versions of Internet Explorer. According to this plan, each future version of IE will have to be backwards-compatible all the way back to IE7. That means all the bugs, security issues, and bloat from past versions will have to be duplicated in the latest release. That may work for a few more releases but it's doomed to fail. Suffice it to say, Microsoft doesn't even mention this inevitability and continues to tout version targeting as the future of their browser.

One Small Step for Microsoft—One Large Step (Backward) for Web Standards

The saddest part of this travesty is that it has lessened the push toward web interoperability. Unskilled web developers now have little reason to improve. After all, the most popular browser will still render their non-standard code correctly, and, as for those other browsers, why not just slap a warning on the website saying it requires Internet Explorer? You can understand Microsoft's position (they're a business after all), and the closer their browser gets to proper standards support, the more their customers realize that there are alternatives (Firefox usage has actually increased since the release of IE7). If Microsoft locks you into their browser, they eliminate the competition.

What Can You Do?

Unfortunately, you can do very little about this; it's Microsoft's product, and they'll do with it as they please. I'm not going to ask you to write angry letters, start petitions, etc. because I honestly believe it won't do any good. If this practice comes to pass, I will encourage you to set that infernal meta element's value to “edge” (which should have been the default anyway). This will mean that your web pages will always be rendered according to IE's latest implementation. Microsoft highly discourages this because, for unskilled developers, it means that pages may not render correctly when new versions of IE are released. Show that you are a competent developer, and, if you're not, do it anyway—anything that breaks Microsoft's web can't be a bad thing.