Ogwaros Iwenâl

Into the depths of the fiery abyss

Breaking the web with a “don’t break the web” philosophy

without comments

The good news: IE8 will be much more standards compliant. It will even pass the Acid 2 test.

The bad news: the above is not really true.

The news about IE8’s three rendering modes. You can read all about that at the IEBlog, or one of two A List Apart articles. The quick version of it is this:

  • By default, IE8 will render pages identically to IE6.
  • If you use a DOCTYPE (like you are supposed to), it will render pages identically to IE7.
  • If you actually want to take advantage of the new rendering engine, you must insert a specialized meta element.

The real sticky part is this new meta switch. It introduces the idea that a browser should be able to render a page as it would in any older version of the browser. This wouldn’t be that big of a deal, if the default behavior were to render in the most standards compliant mode available - the meta switch only needing to be applied where the developer has specifically hacked the page to a particular version. This is not the case with IE8.

So rather than forcing people to add the meta switch to pages that are currently not standards compliant, the onus is on developers already targeting standards to turn on IE8 standards mode. The outcome - rather than write to standards and then tweak as necessary, developers will not target for standards, they will (continue to) target browsers. It’s the bad old days of “This site is best viewed in Netscape 3 at 1024 x 768″ all over again.

Worse will be if developers still writing broken code will want this feature in browsers other than IE (and they will). Want to release a new version of a browser? You better include every version of your rendering and scripting engines. This isn’t a problem for Microsoft - IE is so ingrained into Windows that they can afford the bloat. Firefox? Larger, but manageable (for a while). Little guys like Opera, who regularly release updates? Forget about it.

IE8 cannot possibly “pass” the Acid2 standards compliance test. Doing so would require adding the magical meta switch to the test in order to activate standards mode. IE8 may be able to render the test properly, but only by modifying the test itself.

You really can’t envy Microsoft. It’s a no win situation. If they had enabled standards by default, developers whose code broke (which is already broken to begin with) would scream bloody murder. But this solution is hardly optimal and disregards the entire idea of standards compliance across the board in favor of per-browser-per-version standards. Which is no standard at all.

Written by Brian Upton

January 24th, 2008 at 1:58 am

Leave a Reply