We Spit On Your Standards And On Anyone Who Conforms

Once again, those lovely people at Microsoft have done it...

I built a cleverly colour-coded table of data using multiple CSS class selectors, only to find that Internet Explorer couldn't handle it. Surprisingly, googling for multiple-class selectors seemed to indicate that it should be fixed from IE7 onwards, but that doesn't seem to be the case.

I upgraded to IE8 since this version is supposed to fix all bugs and finally be standards-conformant, but no luck.

Until I found this page and realized that MSFT have now managed to introduce a new hideous kludge, to fix the problem of their previous, standardized, kludge not being used correctly by many web publishers (which, incidentally, is not the final word on this). Incidentally, they haven't bothered to support the standard mime type application/xhtml+xml for xhtml documents, though. That would certainly have helped...

The basic problem for Microsoft, and it is a valid one, is that there are many high-profile sites and publishing systems that have a lot of code tailored to work around IE's bugs in previous versions. If they suddenly go standards-compliant, many of those sites will break.

It's hard to see how they could come up with the current solution as the best one, however. Here's how it works: You add a new, nonstandard http header line called X-UA-Compatible, and give it the value "IE=8". The easiest way to do this is to add it as a meta tag to the head element:

<meta http-equiv="X-UA-Compatible" content="IE=8" />

This is essentially a standards opt-in mechanism. It's a terrible kludge and it will lead to continued workaroundism for IE browsers as well as a possible problem once IE9 or IE10 comes out, if they find themselves once again having to be bug-compatible with previous versions.

They should have done the opposite. They should have changed the browser identification to something else so the IE specific code wouldn't see IE8 as just one more bug-ridden Internet Explorer, and they should have added an opt-out http header for anyone who can't be bothered to get rid of the IE workarounds in the web pages.

Of course, this all hangs on them intending to follow standards in the future. If they won't do that, nothing can ever help them, us standards-aware web developers, normal web publishers or the end users. In the end, Microsoft developers' apparently total incompetence costs the industry millions in kludging time and still locks many people in to using IE when almost any other browser would be far better in almost every respect.

Update: I noticed that the multiple-class selectors work, even in IE7, if you actually specify a strict XHTML doctype. In the end, this was a non-issue in this case - I shouldn't have just copied someone else's page without fixing the doctype... Still, the points about Microsoft's bug compatibility still stand.


Haha, när jag blir stor och konsult och diktator så kommer allt vara perfekt ;)