opt-out version targeting is spam
So. There's been an idea. IE8 is going to pretend to be IE7 unless you explicitly ask it to be IE8. Sure, that makes... absolutely no sense.
[Update 2008.03.05 - Microsoft has now reversed this decision. See the 200ok weblog: IE8 to default to IE8 after all, hell chilly.]
You probably already know what I'm talking about. Let's do the run-down:
- First we have A List Apart: Articles: Beyond DOCTYPE: Web Standards, Forward Compatibility, and IE8 where Aaron Gustafson explains that IE8 will look for a <meta> tag or HTTP header defining the browser version a site was "built for". It will then apply one of several rendering modes to try to keep sites built for old versions of IE from breaking when a newer version of IE is used.
- Then Eric Meyer describes his process of coming to accept the idea, even if he has some fairly obvious reservations: A List Apart: Articles: From Switches to Targets: A Standardista's Journey
- It is important to note that only some members of WaSP were involved in the decision, others were emphatically not: Microsoft’s Version Targeting Proposal - The Web Standards Project
- IE Platform Architect, Chris Wilson, posts details and reasons at the IEBlog: IEBlog : Compatibility and IE8. It's important to note that Chris is also taking the time to respond to comments, including one comment where he says
I'm open-minded, and I'm listening. I didn't like the concept when it was first suggested; however, the evidence has proven to me that it's necessary...
- Jeremy Keith's position is clear: it's a bad idea as proposed due to the opt-out requirement - Adactio: Journal—Broken
- Anne Van Kesteren suggests we simply ignore the whole thing by setting our servers to
IE=edge: The Internet Explorer lock-in - Anne’s Weblog - Mozilla hacker Robert O'Callahan suggests that the Firefox crew will be unlikely to enter into the massive bloatware and maintenance overhead of maintaining old rendering engines: Well, I'm Back: <META HTTP-EQUIV="X-BALL-CHAIN">
- Opera's Chief Web Opener, David Storey, briefly observes that paves the way to
opt-out of responsibility
: The great opt-out - Slightly ajar - by David Storey
So I've been trying to work out what to make of this whole situation.
almost but not quite
The short version is this: I'm not wild about it, but I think it would be acceptable if the method was opt-in. That is, you should have to intentionally invoke the older rendering engine.
But that's not what's happening. What's being proposed is that to get IE8 to render your site in standards mode, you now have to put in a DOCTYPE and a new meta tag asking the browser to actually render in the mode specified by the DOCTYPE.
So I think this is a bad idea.
If the system was opt-in then it wouldn't be too bad. But instead it's opt-out (you know, like all those emails you never asked for). If a developer takes no action their site will initiate the old rendering mode in IE. So all those disinterested developers who only built for IE6 in the first place get rewarded for inaction.
Meanwhile those developers who build to standards have to cruft up their pages (or dick around with their server settings) just to get IE8 to render pages in IE8 mode. This is crap.
version targets are spam
IE8 version switching is like spam! Sure, let people have the option, if they're into that sort of thing. But don't force it on people who never asked for it.
we should not reward ignorance
Chris Wilson mentions on the IEBlog that this is all based on trying to keep badly written pages from breaking in newer, more standards-compliant versions of IE. While I understand it's been hard for MS to weather the storm as thousands of developers the world over discover their sites suck, that doesn't make those developers "right".
Chris says There's no easy answer, because it is impossible for us to tell whether the author wrote their content to standards or to IE's previous behavior.
But there is a way to tell! If they've included a DOCTYPE, they've declared they want to render to standards. If they did that in ignorance, it's time they started earning their money instead of letting Dreamweaver do their jobs.
Alternatively, MS can just throw them a bone and tell them how to bail out. People who didn't actually want that DOCTYPE are free to go and remove it from their pages and wear their Tag Soup badges as proudly as they like.
Or, more likely, just let them opt-in to the version target system. It'll still be less work for them than learning how to build to standards.
Yes, IE6 has created a legacy. But freezing half the world in IE7 isn't going to help move forward. It'll just keep things from progressing. People too disinterested to know what a DOCTYPE is aren't going to engage with this process. They're not going to learn anything or opt in to standards behavior on their own schedule.
once more with feeling...
If we're going to have a proprietary hack, or a new "standard" then for the love of Mike why can't we have an intentional selector hack?
Forget conditional comments or <meta> tags in every single document you maintain. Give us a legitimate version of * html to scope our tweaks to the browsers that need it. Something like ua[ie6] { } would be just dandy.
Sure, this will only suit those of us who know how to create pages that only need a few tweaks across browsers. But we've worked hard to get to that stage. Why shouldn't we get the love? :)
but basically...
Regardless of how many people support the version target idea - and regardless of just how scary-smart some of them are - right now I think it hurts the web to give bad developers a free pass like this. I think it will lead to many years of lazy developers keeping the web closed. Why bother building to standards? Why bother building for anything except IE7? They can just build in IE7, whack in a meta tag saying that's all they tested, then they can piss off back to the pub.
That's not the intention of version targets, you say? Sure, but that's how plenty of people out there will take it. The whole situation legitimises the approach of building for a restricted platform.
A cynical person might suggest that Microsoft is intentionally trying to lock the world down to IE; or try to get the other browser makers to bleed resources by trying to maintain legacy rendering engines. I have no doubt that individuals at MS do not want this result. But MS the company just might.
just make version targeting opt-in
IE8 should default to IE8, not IE7. I mean really, should I even have to say that?
So much of this situation hinges on the default behaviour. If there's a DOCTYPE and no meta tag, the browser should default to standards mode. It has received no instructions to contradict the W3C specifications, so why should it go ahead and load up a non-standards-compliant rendering engine?
Having a browser arbitrarily pick a rendering mode against the definition of the document makes a mockery of standards. Allowing a developer to specifically ask for the old rendering mode is a soft option, but it at least the document would contain an explicit instruction to override the DOCTYPE.
If version targeting became an opt-in system, for all that it'd feel like a dirty little secret it would be an acceptable tool. If version targeting remains opt-out, it's spam.
...ready or not!
But sadly it's not really something that's open to discussion. As Lachlan has already observed, Microsoft doesn’t tell you it’s going to do something of this scale unless it means it.
Microsoft is clearly going to go ahead with this idea. After all the blue monster isn't going to backflip into a higher level of standards purity. The announcement came through A List Apart and apparently they have more articles to come on the subject. Eric Meyer was enlisted to comment on the announcement. Passionate, smart people with serious NDAs were involved in the internal discussions at Microsoft and we still got this result (can you imagine the options that got rejected?).
So it's spam time.
Labels: ie8, version targeting, X-UA-Compatible

Although your terminology confused me a bit, I think I agree with you. But you seem to be using opt-in and opt-out backwards.
The current Microsoft proposal is an opt-in to standards mode, not an opt-out. Just like the DOCTYPE is considered an opt-in for standards mode in current browsers.
So, ideally, it would be an opt-out (or what you referred to as an opt-in) to allow authors to opt-out of the latest standards mode when new browsers ship.
I've expressed my opinions on this on my blog, but what is getting to me is the possible reasons for Microsoft's decision to default to IE7. I'm assuming the thinking behind it is that IE 7 already exists, so future browsers will break what is already out there.
However, IE 7 has only been out a few months, and I doubt anyone has really done much IE 7.0 specific stuff (I would say the majority of browser targetting is still for IE 6 in government etc).
It is easier for those few sites to be retro fitted, than to expect ever developer from here on in to have to include such a tag.
@lachlan hunt: I'm phrasing it as the version switch thing being opt-out. As in, you have to opt-out of being locked to IE7. Whereas you should have to opt-in to be locked to IE7. I got confused a bit too, to be honest. Hey it was late ;) But my point is MS's big idea should be opt-in, web standards should not be opt-in.
@madpilot: Well that's a big question to my mind - why the focus on IE7? Exactly who had their site break? For me all my sites either sailed on happily in IE7 or required only the most minor of tweaks. I keep getting a sensation of MS trying to fix a problem that seems bigger to them than it does to any developer I know. But then, I really only know standards developers so my data may be skewed.
But yes, I do think the broken sites should be retrofitted; as opposed to making the good sites bloat up with yet another IE-focussed tag. I don't see why any other browser maker would have an actual need to implement this system, given that the others have focussed on implementing standards and don't have such a massive legacy issue.
Thanks for the neat summary.
100% agree that Microsoft just need to hold their breath and take this bigger step into standards compliance.
This proposal by MS is dangerous. For the first time a new IE version would not represent (default) improved standards compliance.
If we go two versions of IE without such improvement, does that mean the standards movement is in recession?
Ben, I fully agree with everything you said.
Although it may seem like I'm joining this debate late, I'm not, I have been reading thousands of comments on so many blogs for the last month and a bit and all I'm seeing is a massive reluctance to take a 10 year backward step.
I think I'll be joining others who have already opted to drop support for IE, I don't see any reason to support MS if MS has no intention to support the developers who have carried its retarded browsers for so long. I need respite, as do many developers who have had to nurse IE along for all these years, this is (to me) an opportunity to take that respite.
I'm in a position that will allow this, some may not be, but as a freelancer who has a steady client base it won't be that hard to convince my clients to make the switch (I mostly have them using FF already), the only thing left to do is convert their audience which over 20% of are already using FF anyway.
Maybe this is what the web needs, but I'm positive that for IE this will be a bad thing, I think we are about to see a massive drop in their market share.
Post a comment
Got something to say? Leave a comment! Please add your name. If you don't have a Blogger or OpenID account, you can still choose "Other" to include your name & URL.
→ Post a Comment