Has Internet Explorer Just Shot Itself in the Foot? | January 22, 2008

If you haven’t read the latest posts on A List Apart, you should pop over now. Don’t worry. I’ll be here when you get back.

Oh hello! So what did you think then? If you’re anything like me your first reaction was probably a mixture of intrigue, confusion and disbelief, followed by an expletive along the lines of “what the f#@k”!

To quickly summarise, the Internet Explorer team have floated the idea of setting a meta tag in your document to defines what version of their browser your site has been designed for. The logic is somewhat similar to the current process of DOCTYPE switching, but with more granular control. So if you’re worried that your site may break on IE8, you can add the following line of code at the top of your document, freezing it to IE7 style rendering.

<meta http-equiv="X-UA-Compatible" content="IE=8" />

I’m not exactly sure how the browser plans to implement this, but I imagine it would involve multiple rendering engines or a really complicated set of rules and exceptions. This seems like extra work for the IE team, but it’s an interesting idea.

This idea has come about because Microsoft are worried about “breaking the web”. Essentially they’re concerned that new browsers will stop rendering older pages correctly, annoying site owners, browser users and—probably more importantly for Microsoft—corporate customers. If we look at the bigger picture, this logic does make a certain amount of sense. If I, as a regular Joe user, download the latest version of IE, I expect it to do etter job at displaying websites. I don’t expect my favourite Geocities page to suddenly break.

Backwards compatibility is a legitimate concern, and one that keeps cropping up in the discussions over HTML5. After all, we do risk losing some of our digital heritage. However this issue obviously needs to be put in perspective. By constantly worrying about the past we risk missing out on the possibilities of the future. Imagine if all new media players had to be backward compatible? We’d end up with a device that could play anything from 8mm film right the way through to Blu-ray disks. It would be nice, but incredibly bloaty. Eventually we’d start dropping support for old media, or just stop inventing new ones.

But I digress. As developers what we want is the ability innovate and use new tools to create better experiences. One of the great things about CSS is the way it allows us to use the concepts of progressive enhancement or graceful degradation to seamlessly supply different experiences to different browsers. This forward compatibility is one of the fundamental tenants of the web standards movement, so if something comes about to threaten that, it’s understandable the developers would react badly. Browser targeting appears, on the surface at least, to threaten this, so developers are understandably a little miffed.

Now the main problem isn’t with the concept itself. After all, if developers want to freeze their site at IE7, that’s all fine and dandy. The problem is the default behaviour. Logic would suggest that unless a developer actively chooses to freeze their browser version, the browser should go on rendering a page in the fail-tolerent way they always have. If a site then breaks—usually because of browser specific coding—the developer can add in a single line of HTML in order to fix the problem.

Unfortunately the default behaviour doesn’t currently work this way. Unless you explicitly set a version number or use the “edge” keyword to target the latest version, the browser will automatically render in IE7 mode. My esteemed colleague Jeremy Keith, puts it thus.

“Unless you explicitly declare that you want IE8 to behave as IE8, it will behave as IE7.

When you put it that way, it does sound kinda nuts. No matter what future version of IE you’re using—be that IE8 or IE80—if the developer hasn’t added the appropriate meta tag, you’ll be viewing the site as if in IE7.

While I disagree with this default behaviour, I do sort of understand where it comes from. It’s all to do with fail-safes and perspective. From a developer perspective, unless I’ve asked my browser to behave differently, the fail-safe should always be to act in the most open, modern and standards compliant fashion possible. However from the average users perspective, the browser should always attempt not to break stuff that used to work just fine. This forms a bit of an impasse and it the crux of the problem.

The big irony is that, by doing this, Microsoft have set up the ideal conditions to marginalise their own browser. Clueless developers won’t know about this behaviour so every new site they build will automatically be rendered as IE7. Clued-up developers will use this as an excuse to freeze support for IE and turn their attentions to better browsers. Users will see less benefit from upgrading and will be more likely to turn to other browsers. In fact the only people to benefit are the small minority of web standards developers who use Internet Explorer as their primary browsers.

No matter what great leaps forward the Internet Explorer team make from now on, the majority of developers won’t use them and the majority of users won’t see them. By doing this the Internet Explorer team may have created their own backwater, shot themselves in the foot and left themselves for dead.

Posted at January 22, 2008 7:20 PM

Comments

Rimantas said on January 23, 2008 1:55 AM

Glad to see some sanity. The last paragraph definitely rings true to me.

Jeremy Dunck said on January 23, 2008 5:40 AM

I have no doubt that later versions of ASP.Net will automagically include the necessary meta tag; this will make the perception that the MS platform works better than anything else.

Georg said on January 23, 2008 7:10 AM

Well, since this “opt in” may be ignored by most and used in all sort of strange ways by both clued and clueless developers, and an “opt out” alternative won’t work since very few old sites will be updated to include one, any form of version-targeting may fail. At the moment it looks like an “IE7 forever” solution, which fit your headline quite well.

As long as it’s not picked up by other browsers, then it’ll just widen the gap between them and MSIE. Might not be a bad thing, but it sure won’t make life as standard-aware developer any easier - not even if we target “MSIE-edge” which we would and should anyway if this mode-switch were left out.

J Hedley said on January 23, 2008 10:13 AM

“Clued-up developers will use this as an excuse to freeze support for IE and turn their attentions to better browsers. Users will see less benefit from upgrading and will be more likely to turn to other browsers.”

Therein lies the rub for someone like myself providing support for a number of websites for which the visitor figures are consistently approx 90% IE based - and automatically updated IE at that. Whilst the development team would love to concentrate on different browsers, we cannot risk alienating so many users.
So whilst treading water in an ever diversifying sea of browser availability, any thoughts as to what that next big leap should be to get everyone heading in the same direction again…?

Simon Harriyott said on January 23, 2008 10:40 AM

As IE8 will ultimately be included in the Windows update process, most Windows users will end up with IE8 anyway, so they won’t be losing out on their installed user base.

What they will lose out on will be any non-standard trickery that isn’t supported by the other browsers - as you say, nobody will bother. This is similar to their Visual J++ Windows-only extensions to Java, which wasn’t widely received.

Kelvin J said on January 23, 2008 11:05 AM

Awful idea. As developers we focus on building sites to a specification… it’s the contract that we’re buying into.

I would suggest having the ability to define the standards that the page has been built to. So we can already specify the (x)html specification, we just need the ability to define the CSS & Javascript version.

Going forward, browsers can build support for processing these different specifications.

Rob said on January 23, 2008 11:49 AM

Andy you have to remember something when writing this:

“No matter what great leaps forward the Internet Explorer team make from now on, the majority of developers won’t use them and the majority of users won’t see them”.

These, “Developers” you refer to, WILL use them. They will see a new, “Component” in their GUI that will include the meta data in the head…

My thoughts: http://tinyurl.com/2mz79p

Vern Hamberg said on January 23, 2008 3:20 PM

Backward compatibility is a boon in the world I usually work in - the IBM midrange computer once called AS/400 now called variously System i or i5. IBM put a huge effort into BC - so that source code from 1988 will still compile into an object that can run on current hardware. The result will take advantage of current technology. And old executables can run on newer boxes because of the abstraction layer that lies above the hardware-dependent stuff.

Now this is different, I think, from what Eric Meyer called forward compatibility - I think backward compatibility is desirable for those who are producing OS’s and browsers and compilers. Forward compatibility seems to be what we developers - users of those compilers and browsers - want to think about.

So I’m all for browsers handling older markup - maybe with modern and corrected rendering, maybe not.

Régis K said on January 23, 2008 4:44 PM

@Andy,

Clueless developers won’t know about this behaviour so every new site they build will automatically be rendered as IE7

As they assume clueless developers don’t read ALA or any other web standards-oriented publication, they also assume those clueless developers don’t know about all the progress made in areas such as markup, stylesheets and scripts. In such a case IE7 will suffice; doesn’t it make sense?

Clued-up developers will use this as an excuse to freeze support for IE and turn their attentions to better browsers

I think this is impossible. How will you explain to your boss—or your customer—that this beautiful thing you’ve created that uses the latest and greatest CSS doesn’t work in the browser that most users make use of? Well you know, they want me to add that line in the markup… and huh… I disagree is arguably not enough.

Users will see less benefit from upgrading and will be more likely to turn to other browsers

Not that I wouldn’t be happy if they do so, but there are two reasons why I think this is unlikely to happen:

Browser targeting is not something that comes against standard development, progressive enhancement et al. It comes along with it. And it leaves clueless developers, or those who don’t have the choice but to stick with prehistoric solutions a safeguard against their website being totally inaccessible due to some change in how browsers treat bad markup/styling/scripting techniques.

What’s your opinion?

Paul said on January 23, 2008 7:48 PM

Jeremy’s comment above:

I have no doubt that later versions of ASP.Net will automagically include the necessary meta tag; this will make the perception that the MS platform works better than anything else.

…Hit the nail on the head for me. As anecdotal evidence - take it as you will - I’ve spent many years working with .NET developers who were great, great, great and “knew” the web but couldn’t code CSS, had no idea about Firefox, and didn’t know what web standards were.

Educating people to do the “right” thing just became a little less compelling; after all, a META tag will take care of it. No muss, no fuss.

Paul said on January 23, 2008 7:49 PM

Jeremy’s comment above:

I have no doubt that later versions of ASP.Net will automagically include the necessary meta tag; this will make the perception that the MS platform works better than anything else.

…Hit the nail on the head for me. As anecdotal evidence - take it as you will - I’ve spent many years working with .NET developers who were great, great, great and “knew” the web but couldn’t code CSS, had no idea about Firefox, and didn’t know what web standards were.

Educating people to do the “right” thing just became a little less compelling; after all, a META tag will take care of it. No muss, no fuss.

Philip Renich said on January 23, 2008 9:03 PM

Good article Andy. This whole situation has created a flurry of posts for and against! Whew, the times we live in! :)

By the way:

So if you’re worried that your site may break on IE8, you can add the following line of code at the top of your document, freezing it to IE7 style rendering. <meta http-equiv=”X-UA-Compatible” content=”IE=8” /%gt;

Shouldn’t that read IE=7?

Parker said on January 23, 2008 11:49 PM

Yeah, there’s a mistake in the article.

By default, IE8 will render like IE7 unless you use the new Meta tag and specify “IE8”

I know, it’s very confusing.

Steven Ametjan said on January 24, 2008 2:02 AM

Ultimately I feel this is a good thing for the IE team to implement. It saves them from a lot of headaches, and allows them to keep pushing forward with their standards support in IE8 and beyond.

However, I don’t feel we should encourage developers to always lock pages to IE7, and never make use of the new features the IE team pushes into the new versions.

Just because users don’t see the advantages of upgrading doesn’t mean they will switch browsers. Hell, even when a browser goes 5 years without an update a vast majority of users don’t switch. On top of that, if the majority of new sites being developed are not making use of the new features in IE8+, what motivation does MS have in continuing its decision to implement better standards support?

I personally feel we should be encouraging people who know what they’re doing to use the edge keyword. If you only marginally know what you’re doing, then lock your page to a specific version, and make sure it’s a version you know well.

DavidONE said on January 24, 2008 7:03 PM

“… the Internet Explorer team have floated the idea of setting a meta tag …”

That’s the way it was initially painted. It was first described as a ‘proposal’. A little later Zeldman says something like “if you talk nicely and give us some really good reasons, the MS Devs might change their mind”. The decision has already been made. The mighty MS and a few leading ‘players’ have handed down judgement from on high and agreed it behind an NDA. They’re now attempting to legitimise it with a lot of spurious, ad hominem, emotional pleading argument.

I noted elsewhere: if IE8 default rendered exactly as Firefox, Opera, et al, then people could choose their browser purely on security, feature set and personal preference. MS Marketing ain’t gonna like that - they want an advantage.

If, however, IE8 renders as IE7, then IE8 can be described as the ‘better’ browser because of its ability to render your old intranet without breakage. And making IE7 the default render mode means people will continue producing sites for it, thereby undermining the value of W3C standards coded sites. FF3, O9.5, etc. will be ‘broken’ when viewing these ‘IE7’ sites. IE7 would become the new base default, not W3C. “Follow the money” works here.

It’s a final, desperate stand by MS to halt erosion of their browser market share, but it’s likely to backfire in spectacular fashion as the web dev community start pushing clients even harder to adopt real, standards-based browsers.

Fortunately, it looks like all the other browsers are washing their hands of the ‘proposal’.

The gradual erosion of IE market share may turn in to a torrent if MS pushes this unilateral ‘standard’ through.

Jasper Penthrill said on January 28, 2008 12:43 PM

I don’t know what all the fuss is about. You old school web developers fail to realize that the internet is a technology that the younger generations are bypassing as a medium as old and fuddy-duddy as all other established media channels and therefore lacks the luster and appeal that 30 somethings thrust upon it. Only the beaurocrats and technicians have an invested interest in the future of this stale and rather lackluster medium so why anybody gets excited over a few lines of html code beggars belief.
Just accept that the passion has gone out of the show, the internet footlights have dimmed and the stage has moved on from the browsing cocoon to the wider social scene of communicating in the flesh, partying and experimenting with sex and drugs, its all the rage nowadays you know.

BARTdG said on January 28, 2008 11:31 PM

“The big irony is that, by doing this, Microsoft have set up the ideal conditions to marginalise their own browser. […] Clued-up developers will use this as an excuse to freeze support for IE and turn their attentions to better browsers.”

I hadn’t had the chance to read your blog earlier, but I am very glad to see someone make this point. If this meta-switch is going to be introduced, it will make Mircrosoft come up with a standards compliant browser very quickly. Any version that’s something between IE7 and standards compliant may be ignored completely.

BARTdG said on January 28, 2008 11:32 PM

“The big irony is that, by doing this, Microsoft have set up the ideal conditions to marginalise their own browser. […] Clued-up developers will use this as an excuse to freeze support for IE and turn their attentions to better browsers.”

I hadn’t had the chance to read your blog earlier, but I am very glad to see someone make this point. If this meta-switch is going to be introduced, it will make Mircrosoft come up with a standards compliant browser very quickly. Any version that’s something between IE7 and standards compliant may be ignored completely.

Chris James said on January 29, 2008 1:05 PM

“This forward compatibility is one of the fundamental tenants of the web standards movement, so if something comes about to threaten that, it’s understandable the developers would react badly.”

I’m not sure why you think this is the case? All you have to do is add that tag and you have a nice Acid 2 passing web browser to play with, that will be installed on a huge amount of machines via automatic updates.

I see your point in regards to backward compatability, but if you read around it seems the IE team got a bit of a battering because of IE7 breaking websites.

I have a feeling there is pressure coming from above them not to “break the web” again, so really when you think about it, this is thier only choice.

The default behavior is to IE7 so the lazy, non standards developers can continue to churn out thier crap, while we have to dance through hoops to make things work.

It sucks, but its the way it is.

Lee Jordan said on January 30, 2008 10:12 AM

Sooner or later we will need something other than doctype switching, why? because HTML5 is scheduled for 2020. We will run out of doctypes and language specifications to put in the head of our documents to trigger or suppress x,y and z, because specs only come about every 6 years let’s say. XHTML1 will span IE6,7,8 and even 9 and 10, so the doctype alone isn’t going to help us.

Also look at the web as it is. It’s an archive. To a large extent the web gets stuck in a rut for a while. The code written hardly gets refreshed. Old browsers being used to access newer pages is at the core of this issue.

To be fair “OtherUA=8” might be our way out of a future nightmare. That should be reformed into “Generation=5”, but getting all browsers to agree what Generation 5 means is the trick and has been the issue.

Changing it again to content=”layoutmode:ACIDversion2” is to me the way we should do this. And we use ACID3 as the next standard. Well why not, and expand the ACID test to the DOM too? We all shoot towards ACID with CSS so why not get that into the head of our documents? Then browsers will know to trigger the ACID2 mode if that’s what we need. But maybe browser targeting has to be the way forward for now, I don’t think FF is great naming, why not “Gecko=versionnumber”? We aren’t talking browsers here we are talking rendering afterall.

The .net comment though is fully justified.

Lee Jordan said on January 30, 2008 10:20 AM

Or why not even do this in our style imports we have media=”screen”, why not standard=”Acid2”, keeping browser versions and vendors out of the code used is really important.

Brent said on January 31, 2008 1:13 PM

ohh come on, like u didn’t see ‘something’ like this happening!?!? They knocked outlook back a year or two in how it handles HTML based emails, this was just them “being ahead of the trend.”
it’ll all work out in the end.

Mathieu 'p01' Henri said on February 4, 2008 7:47 PM

Oh, and since the Acid2 test does not include, and should certainly not include, this magic META tag, IE8 will kick in in “IE7 standard mode”. Meaning it will fail miserably unless MicroSoft regain reason and use their latest engine by default and use the old modes where quirks mode was already triggered.

Of course Acid2 is not the only page on earth, but opting-out ( of IE7 ) to opt-in for real standards mode is complete nonsense.

IE8 might use real standards mode for unknown DOCTYPEs such HTML5, but until HTML5 becomes more concrete ( and IE8+ supports it for real ) what about all the pages produced using valid CSS 2.1, HTML 4 / XHTML, DOM … ?