Their decision, your meta: why the "IE8 meta tag" is a good thing.

ie8-302.gifThere’s been a lot of buzz lately about the decision by Microsoft to include a custom meta tag to trigger IE8 in its new (and good) rendering mode. After having read quite a lot on the subject I must say I’m totally pro this announcement.

Update 2008.03.05: This info is now outdated, as the IE Team have reverted their decision to enforce the usage of the IE8 meta tag

As you might have read IE8 will – qua rendering – behave like IE7 by default, unless you specify a meta tag to trigger the new rendering mode (which I’ll be calling IE8 Mode from now on). But first, let me tell you a little story.

In order to move forward, we must go back first

When looking back at IE7, it should be noted that it has the same behavior as IE6 when it comes to treating doctypes: either go into standards mode (IE7 Mode in the case of IE7; IE6 would go into IE6 Mode) or go into Quirks Mode (IE 5.5 Mode). The differences between IE7 Mode and IE6 Mode were immense: lots and lots of stuff is rendered better/differently in IE7 when compared to IE6.

ie7_home_main.jpg

When IE7 finally was released and installed on computers lots of people found that their (favorite) website was broken in IE7 due to those changes. Lots of (old) websites had to be fixed and those that didn’t get fixed remained broken. Although Microsoft had released a better product, they had broken the web with IE7 and IE7 got a bad name.

It even got that far that not only web developers gave IE7 a bad name, but also the normal users (think of your mom, your dad, regular Joe from around the block, …) gave it a bad name as it couldn’t render a huge percentage of websites while IE6 could.

All hail the meta-tag!

Now, let’s go back to the present and take a peek at how things would go when IE8 gets released with the proposed meta-tag trigger:

Existing websites

Websites built the last year and half are bound to work in both IEs within the heap of A-Grade Browsers (if not, then this tells quite a lot about the firm who made it). When Microsoft releases IE8 all those websites will work just fine as they are already optimized for IE7 and IE6 and due to the fact that IE8 behaves just like IE7.

This is what Microsoft aims at with the “Don’t break the web” statement: keep the existing customers happy; and the new customers of the new product too.

acidtest2.png

New websites

Newly developed websites will pass the same flow as they now do:

  • Develop and live test your site in Firefox/Safari
  • Pass in the X-UA-Compatible meta tag and IE8 renders it correct too (and maybe include 1 or 2 tiny fixes through a conditional)
  • Start fixing for IE7 and IE6 (conditionals!) like you’re used to today (most of the time it’s the same stuff you keep on fixing: png images, the clearfix class, some display: inline-blocks and that’s about it)
  • Check the other browsers

The other scenario?

Remember that IE6/IE7 story I told you? Given that, let us turn things around: Let’s imagine the IE team decided to let IE8 go in IE8 Mode by default. What would the result of that action be?

Existing Websites

It’s quite simple: it would be an IE7-alike scenario all over again: lots of websites would Just Break (TM), lots of web firms would be called in panic in order to fix the site, and – in the end – IE8 would get a bad name just like IE7 has.

New websites

Same scenario as with the meta-tag, except you don’t have to include it.

Your point being?

With the 2 scenarios above, it should be more than clear that the decision to trigger IE8 in IE8 Mode by use a meta tag is the best method they could have thought of. I agree, it’s not the most perfect solution we all dreamt of (and it requires a bit of an effort from us developers) yet it is the best possible solution out there which pleases both users and and developers.

[html][/html]

Next to being real solid, the method is future-proof too as you can define IE=edge in the meta tag which tells IE8 to render in IE8 Mode; IE9 in IE9 mode, etc. etc.

However

Yes, there had to a however. This will only work if 2 prerequisites are met:

  • Whenever IE9 gets released it must backdrop to IE7 Mode when no tag is included, not IE8 Mode; (alternative: IE9 must be pushed as a mandatory update over IE8 to smoke out IE8.). By the time IE9 gets released, IE6 will be gone for good; leaving us back to the scenario as it has been for quite a while: develop for Firefox, Safari, Opera and two IE versions (IE9 and IE7 it’ll be then)
  • Microsoft must provide us a nicer way to run IE8, IE7 and IE6 side by side. That hassling with those Virtual Machines is not that handy; and IE6 Standalone doesn’t always render like a Native IE6 does (next to the fact that it isn’t official). Maybe they should provide some Software Virtualization?

Bramus.out!

Published by Bramus!

Bramus is a Freelance Web Developer from Belgium. From the moment he discovered view-source at the age of 14 (way back in 1997), he fell in love with the web and has been tinkering with it ever since (more …)

Join the Conversation

3 Comments

  1. I have to agree. This is probably the best way to handle this situation: letting new websites pick which rendering mode in order not to break existing (deserted) websites. I do understand the counter-arguments though. But if MS went ahead and released IE 8 without backwards compatibility, the adoption of IE 8 would be limited to “web professionals”.

    The “problem” with IE 9 probably won’t be that big of a problem. It’s gradual enhancement instead of breaking backwards compatibility and leaping forward.

  2. I totally disagree. The web is an ever changing medium and this needs to be globally recognised. We cannot treat the creation of an interactive website the same as publishing a book. They are two completely different processes! Older websites will eventually become obsolete and break if they are not maintained, this is a fact. By implementing this “solution” microsoft is only allowing lazy corporations and bad developers to code to yesterdays standards. Resulting in a poor web experience for the client.

  3. @Gianni: due to the decision of including the meta tag older websites will not break. The “Yesterdays” standards” actually are todays standards. We’re not lazy nor bad developers as we stick to todays guidelines hoping that everything will work tomorrow/in the future. By deciding to include a meta-tag the code we write today is future proof.

    Now, I know that some might be tempted to not include the tag at all (to keep IE7 mode and be lazy/bad indeed as they only have to develop for IE7&IE6) but in the long run that decision will turn bad on them: A developer that can say his site is IE8 compatible (in real IE8 Mode) can differ himself from those few that won’t include the tag. Above that I’m pretty sure that not that many CSS fixes for IE8 will be needed, making a site that “just works” in Firefox/Safari/etc. automatically IE8 compatible (if you include the tag).

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.