We’ll see about that. Would be nice when Microsoft stops abusing us devs though…
Microsoft’s Interoperability Principles and IE8
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.
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.
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.
The Technical Challenge
One issue we heard repeatedly during the IE7 beta 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 â€“ when viewed with IE7â€™s improved Standards mode â€“ looked bad.
As we started work on IE8, we thought that the same thing would happen in the short term: when a site hands IE8 content and asks for Standards mode, that content would expect IE7â€™s Standards mode and not appear or function correctly.
In other words, the technical challenge here is how can IE determine whether a siteâ€™s content expects IE8â€™s Standards mode or IE7â€™s Standards mode? Given how many sites offer IE very different content today, which should IE8 default to?
Our 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. We made this decision, informed by discussions with some leading web experts, with compatibility at the top of mind.
In light of the Interoperability Principles, as well as feedback from the community, weâ€™re choosing differently. 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).
Long term, we believe this is the right thing for the web. Shorter term, leading up not just to IE8â€™s release but broader IE8 adoption, this choice creates a clear call to action to site developers to make sure their web content works well in IE. This topic is one of many things weâ€™ll talk about with respect to IE8 at MIX this week.
Related Posts: On this day...
- Charting the upgrade path from DOS 5.0 to Windows 7 - 2011
- Freecreditreport.com FINALLY taken to task by the FTC - 2010
- New websites allow patients to rate doctors, doctors seek gag orders to silence them - 2009
- HOWTO: Increase your available swap space with a swap file - 2009
- Google regarding Twitter: A "Poor Man's Email System" - 2009