The IEBlog let the world know how you’re going to have to opt in for their third (and counting) rendering mode that IE8 will support. You know, the one that should support CSS2 the way other browsers already do without such a mode. Put the following into your <head> section of your page and you’ll get IE8’s “super standards” mode.
<meta http-equiv=”X-UA-Compatible” content=”IE=8″ />
There are, of course, many many unanswered questions… For those who can’t be bothered to read my whole post, please see the main point. For others with patience,
First, the basics:
- IE8 will render existing content in either “quirks mode” (without a DOCTYPE) or IE7’s “standard mode” (with a STRICT DOCTYPE)
- IE8 will use “super standards” mode if it sees a <meta> tag with “IE=8” (what “super standards” mode entails is not entirely clear yet, but it should mean substantial improvement to CSS support at a minimum – I’m keeping my fingers crossed for fully compliant HTML and DOM2 support as well)
- IE6 and IE7 will dutifully ignore the <meta> tag
Now what the above means is that if you’ve got existing pages that work around IE’s poor support of standards today that you need do nothing in order for them to continue to work in IE8. If you want to start coding HTML 4.01 for IE8 that truly supports standards you either add the <meta> tag with “IE=8” or update your web server to serve it to IE.
It looks like this solution was developed in coordination with the the Web Standards Project. This article describes in more detail the rationale and intracacies of the solution. Furthermore, they “hope other browser vendors join Microsoft in implementing this functionality”.
Second, there is, as usual, tons of wailing and moaning and predictions of a web apocalypse, with many people yammering that this tag should work in the opposite way (“super standards” mode should be default in IE8 and all existing web pages would need to be updated to include a tag if they want IE8 to use the old IE7 “standards” mode).
Unfortunately, this suggestion has the potential to break pages for users. Let’s say your page is doing browser sniffing and if it’s Internet Explorer, you’re going to use attachEvent() instead of the standards-compliant addEventListener() which all other browsers support. If IE8 supports addEventListener() and no longer supports the non-standard attachEvent(), then guess what: your page is broken in IE8 “super standards” mode. Of course, there hasn’t been any mention of DOM-support from the IEBlog yet, but I’m keeping my fingers crossed.
Call me naïve, but I intend to give Microsoft the benefit of the doubt here and say this was the best possible solution in a very difficult situation. I believe opt-in is the only possible solution Microsoft could have for existing content (read: HTML4). Hear me out, there are some important facts that aren’t widely known yet:
- If IE8+ sees the meta tag with “IE=edge”, it will always use its latest, bleeding edge standards support. This will be useful for those sites which have zero IE-specific hacks, though Microsoft does not recommend it.
- If IE8 sees the meta tag with “IE=9”, it will do “best effort”, which means IE8’s “super standards” mode
- And most importantly: if IE8 sees a not-yet-widely-deployed DOCTYPE (like HTML5’s), it will use “super standards mode”
This last one is a big deal to all the wailers out there. This means anyone coding to new standards (like the newly published draft of HTML5) will not have to use this meta tag. Let me repeat that: If you want to start coding in HTML5, then IE8 will not require any <meta> tag. Ian Hickson and Anne van Kesteren might not yet be aware of this.
Some final notes:
- other browsers will likely ignore this new tag too (at least indications are that Mozilla and WebKit will not)
- IE10 will need to support IE7- quirks mode, IE7- standards mode, IE7 super-standards mode, IE8 super-standards mode, IE9 super-standards mode and IE10 super-standards mode – WTF? Chris does explain that eventually IE7 mode will have to go away at some point many years in the future when the amount of content has dropped below some threshold…
- No official word yet on whether IE8 will support XHTML and its MIME type (but if it did, this would be a new DOCTYPE and would not need any <meta> tag). A year and a half ago, Chris told Mary Jo that XHTML would probably not happen in IE8 – but that was a year and a half ago…
- No word yet on whether IE8 will support SVG (again, if it did, no need for a special flag to indicate “super standards mode”)
So all in all, the story is not so bleak. As HTML5 becomes the defacto standard of the web, IE8+ will not require any <meta> tagginess. I think the IEBlog should post a follow-up explanation with some of these facts (and more disclosure about what will be included in “super standards” mode). I wonder why Chris chose to post this just before his birthday, it certainly made his day off less enjoyable – unless he gets a kick out of all the bitterness and vitriol…