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.
Why Change?
Microsoft recently published a set of Interoperability Principles. Thinking about IE8’s behavior with these principles in mind, interpreting web content in the most standards compliant way possible is a better thing to do.
We think that acting in accordance with principles is important, and IE8’s default is a demonstration of the interoperability principles in action. While we do not believe any current legal requirements would dictate which rendering mode a browser must use, this step clearly removes this question as a potential legal and regulatory issue. As stated above, we think it’s the better choice.
The rest of this blog post provides context around the different modes, the technical challenge, and what it means going forward.
Modes
Clear terminology around the different modes in IE8 (as well as other browsers) is crucial for the discussion. Wikipedia, as usual, offers a good starting point. The article about “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. (The article also covers “Almost Standards;” let’s set that one aside for the purpose of this discussion.)
Basically, all the browsers have a “Quirks” mode, call it “Quirks mode", and use it to offer compatibility with pages that pre-date modern standards. All browsers have a “Standards” mode, call it “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. There’s Safari 3’s Standards mode, Firefox 2’s Standards mode, IE6’s Standards mode, and IE7’s Standards mode, and they’re all different. We want to make IE8’s Standards mode much, much better than IE7’s Standards mode.
The Wikipedia article’s explanation of why browsers have modes to begin with is worth looking at closely in this context:
"...the large body of legacy documents which rely on the quirks of older browsers represents an obstacle for browser developers, who wish to improve their support for standardized HTML and CSS, but also wish to maintain backward compatibility with older, non-standardized pages.… To maintain compatibility with the greatest possible number of web pages, modern web browsers are generally developed with multiple rendering modes: in "standards mode" pages are rendered according to the HTML and CSS specifications, while in "quirks mode" attempts are made to emulate the behavior of older browsers."
We decided to keep IE7’s Standards mode available in IE8. Our thinking was that this facility would be helpful as the web moves gradually from the large quantity of legacy content authored around IE7’s behaviors to a new era of much more interoperable and web standards compliant browsers. We based the decision to have an additional mode in IE8 on our experience with feedback from IE7. Specifically, during the transition from IE6 to IE7, many end-users found pages authored for the previous IE version’s Standards mode didn’t work well with the new version’s Standards mode.