3/04/2008

Microsoft reverses stance on IE8 standards compliance default behavior

The hardest thing in the world to understand is the income tax.  - Albert Einstein

From the IE Blog:

"We’ve decided that IE8 will, by default, interpret web content in the most standards compliant way it can. This decision is a change from what we’ve posted previously."

The Explanation

They are saying that thinking about IE8’s behavior with their published interoperability principles in mind, interpreting web content in the most standards compliant way possible is a better thing to do. And more: "this step clearly removes this question as a potential legal and regulatory issue ". In other words, instead of the various quirks mode flags and what-not, we'd rather not get sued, so we'll just default to the best standards compliance we can provide.

"Quirks Mode" describes how modern browsers (like IE, Firefox, Safari, and Opera) all have different modes for interpreting the content of a web page: Quirks and Standards.  Basically, all the browsers have a “Quirks” mode and use it to offer compatibility with pages that pre-date modern standards. All browsers have a “Standards” mode and use it to offer a browser’s best implementation of web standards.

"Each version of each browser has its own Standards mode", because each version of each browser improves on its web standards support (we hope, that is to say). Microsoft  wants to make IE8’s Standards mode better than IE7’s Standards mode.

Now doesn't the above sound like double-speak to you? Isn't the idea of standards that ALL browsers should have the SAME Standards mode? Isn't that what standards are all about?  I mean, if two different browser vendors can't agree on how to interpret a particular item from the standards, isn't the standards body supposed to clarify it for everybody?  And how about standards testing, i.e. "Yes, thank you, your implementation is A-OK". Um... well that's progress!

 

What It Means

One issue Microsoft got feedback on concerned sites that looked fine in IE6 but looked bad in IE7. The reason was that the sites had worked around IE6 issues with content that didn't render nicely with IE 7.  They expected more of the same with IE8.

The browser market came to assume that the use of a valid DOCTYPE meant that you knew what you were doing when it came to web standards, and that you wanted the most accurate rendering possible.  When IE 7 came out, sites broke because of this. So DOCTYPE as a "switch" for standards mode rendering became horribly broken.

The initial thinking for IE8 involved showing pages requesting “Standards” mode in an IE7’s “Standards” mode, and requiring developers to ask for IE8’s actual “Standards” mode separately. They claim that they made this decision, informed by discussions with some top web experts, with compatibility at the top of mind.

Now they've gotten a lot more vocal feedback and they have published principles. So now, IE8 will show pages requesting “Standards” mode in IE8’s Standards mode. Developers who want their pages shown using IE8’s “IE7 Standards mode” will need to request that explicitly using the http header/meta tag approach described here.

 

My Thoughts

In general, this reversal of posture - to have the most standards-compliant rendering behavior be the default behavior - is a good thing.  Change is good! In politics, and with browsers. That is, as long as you don't change it too often... The days of browser / css / javascript hacks aren't over yet. I just can't wait until the next version of Browser Hell v.8.0 starts later this year. Oh, and by the way - the Acid 3 Test was just released by the Web Standards Project...