.. and trying to understand
Yesterday a small storm was started by two articles:
- IEBlog: Compatibility and IE8
- A List Apart: Beyond DOCTYPE: Web Standards, Forward Compatibility, and IE8
Hundreds of comments have erupted and I am guilty as charged.
TagnetoX-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!
I find your reasoning strange:
ReplyDelete"At this moment I think that there will be very limited occasions where I would want to use the X-UA-Compatible meta tag."
Actually in a couple of years time you will have to include this tag in all your pages if you want it rendered properly in IE. Otherwise your standards compliant code will look a mess in the IE7 rendering model.
I will design and build standards based web pages using the old principle "build for the best and test for the rest".
ReplyDeleteThe best not being any flavour of IE (at least for the coming years) and I will then test for IE6 and IE7 and make sure it will look good in both of them.
So when a newer version of IE comes along and doesn't find the magic switch it will render in IE7 mode. And that's the mode that I have tested already.
If it looks a mess, then I had done a bad job to begin with.
I also find your reasoning strange.
ReplyDeleteYou build according to web-standards, so you need the meta-switch for your pages to render properly in IE8 and still reside to the hacks, which you already used to get proper renderings in IE7 and 6.
So, it would be logically that you too would be against this opt-in method of optaining standards based renderings. As nearly all of us are.
I understand that my reasoning is strange. Let me elaborate a bit more then.
ReplyDeleteAt this moment IE8 is not in use, so I can not design for it right now. So, at this moment I just build like I have always done. I use Firefox as my starting point and then see if it breaks up in IE7 and IE6 (and various other browsers). It usually does in some way. I fix that, trying to avoid hacks, but hack if I have to.
As long as IE8 is not around I do not see any need to put in the X-UA-Compatible meta tag.
But when IE8 will arrive I do not have to put in that meta tag in my websites as they will render in IE7 mode that I already tested my site on. Theoretically it should render just fine.
And when IE8 is around I will probably still use Firefox to start my design work on. IE7 will probably be still around in large enough numbers to test against and maybe even use some hacks.
I might even consider using the meta tag to target IE8. But then again maybe by then I can also use HTML 5.
But rest assured: I will design only standards based pages and I too think that opt-in behavior of the X-UA-Compatible meta tag is the wrong approach.
But I hope you understand my reasoning above in the sense that I think it very probable that I will never ever use the X-UA-Compatible meta tag.