Wednesday, January 23, 2008

Trying to understand what the fuss is all about

.. and trying to understand

Yesterday a small storm was started by two articles:

Hundreds of comments have erupted and I am guilty as charged.

X-UA-Compatible provides a switch for IE to know what the developer wants: does the developer want the old wild west behavior, or a more standards-based behavior?
Now, what is it about?

Slowly and surely I begin to understand what this all about. It takes some time. You have to let the dust settle a bit. Then you can see more clearly again. And think clearly.

The fuss is about a special meta-tag proposed by Microsoft that you can put in a web page to make IE8+ understand which IE version rendering the page requires. It's, for now at least, only applicable to IE8+. Other browsers can ignore it.

When the tag is not present IE8+ will render default in IE7 fashion.

So, what is it really about?

When you are a web developer, like I am, and are really into using web standards, like I am, is this threatening? Not really, I think.

Consider this: you have created a web site using web standards and displays good in all browsers you think it should: Firefox, IE6 and 7, Safari, Opera and the like. Now when Microsoft brings out IE8 your site will display in IE7 fashion and you already have it tested against that. It should not give you any extra work.

Maybe, you have used some really clever stuff, like generated content, that doesn't work in IE7. Without the appropriate tag this will not work in IE8. But if you would like this to work in IE8, you could set the value for the X-UA-Compatible meta tag to "edge" any version of IE8+ will try its utmost and use its newest (and hopefully best) rendering engine. So, you have a good chance that your generated content will show up. However, some other stuff may break, because you may have coded against an IE7 rendering quirk.

Using the "edge" setting, has some advantages, but also some uncertainties and you may not want to be confronted with these by a client on a Friday afternoon when your buddies wait at the door to go to the pub.

So, again, what is it really about?

The fuss seems like a huge storm and people should me think it over for some time. Wait until after the weekend.

To me it says that when IE8 is upon us and I create another website and I want to use the newer, better IE8 rendering engine I need to put in that X-UA-Compatible meta tag. Meaning I will have to test my site against IE8, IE7 and possible IE6 and all the other browsers I mentioned before. In all other situations I can just leave out the tag and test thoroughly against IE7 and only superficially in IE8, just to see if Microsoft lives up to its promise.

So, where do I stand?

At this moment I think that there will be very limited occasions where I would want to use the X-UA-Compatible meta tag. It also feels a bit too non-standard, too alien. In some very special situations one would want to use, but these will be extremely rare. As far as I can see now.

Let's get back to the work that's in my to do list.

And now Håkon Wium Lie (CTO of Opera Software) has tossed his dime into the discussion.

Be sure to read the comments on this post. I hope that it shows clearly that I am not happy with the default behaviour of IE when the X-UA-Compatible meta tag is omitted. But it also explains that I expect never to use the blistering tag anyhow!