As everyone knows, Internet Explorer is truly behind the curve in standards compliance. Even the latest version, IE 7, is a pain to workaround if your site does any sophisticated use of CSS. With IE 8 in the horizon, Microsoft is now looking for a way to do things so that they don’t have to break all the websites that currently have to bend-backwards to support IE 7 and IE 6. There are some suggested solutions in the works in their IE article.
What I found interesting is the way they have to skirt the issue why IE is so incompatible with the standards compliant sites on the web:
In IE7 we made a lot more changes to improve IE’s standards compliance, particularly with CSS. We limited these behavior changes to IE’s “standards mode” only, and we expected that this would help limit compatibility problems as it had in the past. Unfortunately, and somewhat surprisingly to us, this wasn’t true; many of those changes made IE incompatible with content that was already part of the web…
But wait, a lot of people say at this point, why isn’t this a problem for Firefox, or Safari, or any other browser? The answer is that developers of many sites had worked around many of the shortcomings or outright errors in IE6, and now expected IE7 to work just like IE6… In many cases, these sites would have worked better if they had served IE7 the same content and stylesheets they were serving when visited with a non-IE browser, but they had “fixed their content” for IE. Sites didn’t work, and users experienced problems.
Now the above is one way of spinning events. Let me un-spin a portion of this to describe things as they really are:
But wait, a lot of people say at this point, why isn’t this a problem for Firefox, or Safari, or any other browser?
The answer is that when the other browsers fixed their browsers to deliver standards compliant behavior, they actually fixed it correctly. The browsers thus were able to render pages in accordance with what the standards specified. When the browsers saw, from the DOCTYPE, that a web page wanted to be rendered in a standards compliant fashion, it did accordingly.
Sadly, When IE 6 and 7 said it was standards compliant, it was only paying lip service. Webmasters everywhere found to their consternation that pages that worked perfectly in Safari and Firefox and Opera and Konqueror, and every other modern browser around, broke horribly in IE 6 and its supposedly-improved successor IE 7 when rendering in “standards-compliant mode”.
So they had to work around it. When IE 7 (which is, ahem, standards compliant) came out, they had to apply all sorts of workarounds to deal with the remaining major problems it had rendering pages.
We expect the same thing to happen again when we release IE 8, with its newer definition of “standards-compliant”.