Painful Web Standard Decision from IE
By Al Jigong Billings
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">
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.