Painful Web Standard Decision from IE
by Al
I feel like I should have titled this, “Painful Web Standards Decision from IE (surprise!)”, but that would be snarky, right?
The Internet Explorer team has detailed their implementation of the switch between different rendering standards over on the IEBlog. Previously, as seen in IE7 and IE6, Internet Explorer had two rendering modes, “Quirks” mode and “Standards” mode. As Chris Wilson states in the blog post, they will be changing this to the following modes:
- “Quirks mode” remains the same, and compatible with current content.
- “Standards mode” remains the same as IE7, and compatible with current content.
- If you (the page developer) really want the best standards support IE8 can give, you can get it by inserting a simple element.
The way to trigger standards mode was with a well-formed DOCTYPE declaration, like this:
<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01//EN” http://www.w3.org/TR/html4/DTD/strict.dtd”>
There is a wikipedia entry on this and an article on A List Apart on DOCTYPE as well (or you can read here) if you’ve managed to be blissfully unaware of this.
The meta element is detailed in a post on A List Apart, which goes into all of this in great detail. (I’m not sure why A List Apart is effectively the mouthpiece for announcing this for Microsoft though.) This new meta element looks like:
<meta http-equiv=”X-UA-Compatible” content=”IE=8″ />
So, the net result is that there is an IE6 mode that is backwards compatible to pre-IE6, which is “quirks” mode and the the existing “standards” mode, which is now suddenly IE7′s rendering mode, and a new IE8 mode.
To be blunt, in my opinion, this is pretty !#@$!! stupid.
Now, I understand the idea that Chris Wilson has suggested in the past about versioning HTML and letting browsers know what kind of HTML with which a website says it is compatible. I’m somewhat sympathetic to the mantra of “Don’t Break the Web.” Unfortunately, this seems more like, as a comment on a blog mentioned, “Don’t Fix the Web.” What this sets up is that even when IE6 is finally dead and not simply resting (like a parrot), we’ll be stuck with sites declaring, “Hey, I’m coded for IE7!” by their use of standards mode, but only when rendered in IE. Suddenly, standards mode is not really about standards in any sense at all for IE (leaving aside previous criticisms) and IE diverges even farther from the rest of us. For the rest of us, like Firefox, this standards mode will be our latest and greatest, not some locked in the bowels of time older version of our browser.
I see no reason to expect that anyone else will implement this meta tag. Why would anyone bother? It isn’t part of any spec and it doesn’t help anyone but the IE team. The way it helps them is by allowing them to force compliance with older versions of their product. I’m sure that when IE9 comes out, the tag will have ‘content=”IE=9″‘ in it.
Forget it. If there is a quirks mode and a standards mode, fine, but there should only be these two, existing, modes, not an endless plethora of them until the end of time, constantly muddying the waters for everyone (including web developers working on IE). I also think that standards mode should be the default, not the other way around, but I may be in the minority there. The IE team making standards mode really be “IE7 mode” within IE is just damning and something that people don’t seem to be really thinking about in the comments I’ve seen.
If this is really a good decision, then the IE team should convince everyone in the HTML working group to add it to the new HTML5 standard. As an aside, I should mention that a draft of the HTML5 standard went live today, along with a document detailing differences from HTML4.
We, all of us concerned with the web outside of Microsoft, want people to update their sites to current specifications, whether of HTML or CSS, or what-have-you. The web is an evolving environment. We should not be encouraging people, in my opinion, to write sites like it is 1999 still, or even like it is 2006, when newer standards come out. Where will we and the web be in five or ten years if we do not encourage people to move forward?
This new mode, and the change to standards mode within IE, just enables IE to continue to hold back the improvement of the web. If this is implemented, I can only hope that web developers get so pissed off about it that they refuse to be co-opted this way by Microsoft. Without public outcry by people, there is very little chance that the IE team will reconsider shipping this.
Update: There is a well nuanced post on Just Browsing about this as well.

Comments
I don’t understand. All we have to do is add one extra tag to get the best standards support for all browsers don’t we? It may not be ideal but it’s a shipload better than living with an IE version that is not ACID2 compliant.
Sure it would be nice for MS to conform to the norms that everyone else uses, but at least they have done the hard bit – fixing their code.
Are we making a mountain out of a molehill?
“Forget it. If there is a quirks mode and a standards mode, fine, but there should only be these two, existing, modes, not an endless plethora of them…”
Did you know that Firefox has 3 modes? Quirks, almost-standards, and full standards.
Jesse,
I learned of it this morning and I was avoiding talking about it. :-)
To my knowledge, we’re not really continuing development down that route and not encouraging people to go out and use almost-quirks. IE’s situation with defaults makes it a different proposition, as well as the fact that they are going to do this for every version, it looks like.
PD, so, when IE10 is out, someday, we’ll have pages marked for IE8, IE9, and IE10, explicitly, and then standards mode (which will be IE7 for IE but current for everyone else) and then quirks mode for IE6 behavior?
Bleh.
[...] John Resig adds: I see no reason to expect that anyone else will implement this meta tag. Why would anyone bother? It isn’t part of any spec and it doesn’t help anyone but the IE team. The way it helps them is by allowing them to force compliance with older versions of their product. [...]
[...] Mozilla QA Engineer (Read more) “This new mode, and the change to standards mode within IE, just enables IE to continue to hold [...]
Sam Ruby quotes Chris Wilson saying the HTML5 doctype will trigger standards mode: http://intertwingly.net/blog/2008/01/23/Sunsetting-Quirks-Mode which seems like a good thing, although it flies in the face of their “doctypes are dead” propoganda.
James, it isn’t really clear. I suppose when the IE team finally gets around to letting people play with a build, we can all find out.
[...] ההמצאה החדשה של מייקרוסופט – קוד מיוחד שיוטמע בדף וירמוז לדפדפן באיזה סביבה הוא אמור לעבוד. לכאורה, מייקרוסופט הולכים לכיוון של תקנים וזה כבר שינוי מרענן, אבל דבר אחד הברנשים עם העניבות מרדמונד מתקשים להבין – בשביל להיות תקניים צריכים להשתמש בתקנים. [...]
Hi Al
I see your point about creating a multi-mode, infinite level scenario. It took me a while to take this in.
I suppose my answer to that concern is that there is an issue of sites written for non-standards. They were written in an environment where there was no need to conform to standards other than the proprietary ones imposed by, but supported market-wide via a near-universal market share, IE6.
Now that remained the case for a long time in web years. Microsoft essentially said to developers: here’s the web as a frozen APi, with ActiveX as a bonus! (haha) and developers said, you beauty. We have to remember that Microsoft’s monopoly is not the only reason that IE6 dominated the market. There was no alternative until a viable Firefox turned up on the back of Google’s dollars. Genuine developers had every right to code for IE6 in all it’s evil glory. Should Microsoft abandon those people after what, two years (in their terms) of heading down a standards compliance route? I don’t think that’s all that reasonable.
Therefore the key is that this ‘version targeting’ has to be a one-version-wonder. The idea of the browser vendor market agreeing to a triple+ standards support environment is madness.
MS should come out and say that whenever IE9 comes about, they will revert to a twin-render-mode model. That way those who have refused to update their IE6 code within approximately a 5 year time frame (from first new of IE7 until delivery of IE9) can reasonably be told to get nodded.
There’s a balance issue. Don’t kill IE6-developed sites just yet, but kill IE6 and add great standards support. That’s what they are doing.
The more developers actually see IE6 disappearing from desktops (something that STILL isn’t happening despute IE7′s significant public lifetime), they will start looking forward and the only option these antiquated developers will see is heading down the standards road.
As much as I hate the idea, allowing Microsoft to maintain some ‘face’ to all those developers they conned into loving IE6, whilst gently, slowly moving towards standards, is better than Microsoft sticking their heads in the sand, which they did for many years.
Microsoft isn’t going to come out and say anything like what you are suggesting. From their point of view, even if they were going to do it, they have no incentive to say so at this time, years before it is necessary. Micrsoft (and IE specifically) never pre-announces anything it isn’t required to in order to avoid being boxed in by earlier statements and promises.
I say rip the band-aid off right now and get it over with. This is only delaying the day that it happens, not solving the problem.
I will point out that a successful Firefox created those Google dollars (for the Mozilla Corporation), not the other way around. It is a misperception to think that Google had anything to do with the initial creation of Firefox or with the earlier Mozilla Foundation. The Foundation, which owns MoCo, existed without any of those dollars being present and worked on Firefox, with the larger Mozilla community supporting and contributing much of the work because they believed in it, for a long time without Google. Google is hardly the only source of revenue for MoCo as well. It is simply the largest source.
An important point, at least to me.
I’d like to see Firefox (and others) implement something like this, if only to override the doctype switch, so that I wouldn’t have to include it anymore, giving me a singular quirks mode for IE 7 and below, and a singular standards mode for IE 8, Mozilla, Webkit, Opera, and what not.
I can currently see a problem where I add a quirks mode doctype for oldIE, that then in turn triggers Firefox’s quirks mode. Or, adding a strict doctype, and having IE 6 and 7 to deal with, though maybe there is a doctype that triggers quirks in IE 7 that doesn’t affect standards compliant browsers?
Al,
as I’ve said publicly, new unknown DOCTYPEs (such as HTML5) will trigger IE8 standards mode, so future standards will have the best behavior available.
I had seen people assume that from comments that you’ve made, Chris, but it is good to have it explicitly confirmed. That will make life easier once we all start marking things as HTML5… :-)
[...] Painful Web Standard Decision from IE [...]