Standard storm

23 January 2008

First read this (although you probably have already):

Beyond DOCTYPE: Web Standards, Forward Compatibility, and IE8

Then take a look at these:

Broken (If you only read one of these, make it this one)
From Switches to Targets: A Standardista’s Journey
Has Internet Explorer Just Shot Itself in the Foot?
Predicting the Past
Not your father’s standards switch
The versioning switch is not a browser detect
Code Happy
Best Standards Support
In defense of version targeting
Standards mode is the new quirks mode
The Internet Explorer lock-in
Who loses out to X-UA-Compatible?
IE8 and the future of the web
Versioning, Compatibility and Standards (from the Safari/WebKit devs)

Needless to say I’m not sure if this concept of version targeting has gone down too well.

I’m firmly on the side of those saying this is a bad idea. It strikes me that this is Microsoft trying to push something that solves a problem specific to them (namely that IE6 was so bad that when IE7 came out lots of things broke) onto the shoulders of web developers. While it’s not particularly pragmatic to say, I think this is really not our problem and the proposed solution has all sorts of downsides; it breaks the concept of progressive enhancement, bloats rendering engines and slows the adoption of new html/css features in the IE userbase.

I also have the feeling that like the the strict doctype before it, in practice this won’t work anyway. Like all good developers, Microsoft are proposing a loophole in the form of setting the X-UA-Compatible tag to ‘IE=edge’, which means you just get the latest version of the IE engine (like you would right now). I can’t see anyone not using this, outside the Microsoft-only devs that got pissed off with IE7, so the whole concept becomes a bit of a red herring. In fact, one of the ways that this could be improved would be if it defaulted to this setting, so the default behaviour isn’t being changed – as Jeremy points out, it’s crazy that unless you tell IE8 to behave like IE8, it’ll behave like IE7; surely that’s not the default behaviour we want?

All that said, there is the kernel of a problem trying to be solved here; namely how to write CSS code (and we are talking just CSS, not HTML, as this discussion is all about presentation) that doesn’t break when newer browsers come out.

Here’s what I’m thinking would be a good way of fixing it: Firstly, with the release of IE8 bring in either a new doctype (‘Standard’?) or a meta tag that announces that this page is expecting a standard compliant renderer. IE8 apparently passes the ACID2 test so should hopefully be on par with the other major browsers, and this flag will prevent IE8 ‘breaking the web’ again from Microsoft’s point of view.

Next, we need to have some way going forward of coping with new advancements to CSS without effecting older browsers. I see two ways of tackling this (possibly in combination): 1) Add a ‘version’ attribute to the CSS link tag, and then browsers can alter their rendering based on this (which is a similar solution to the X-UA-Compatible one, but seems a more appropriate place to do it). 2) Add conditionals to CSS that can detect what features a browser has available. I see this second one working roughly like this:

/* if( text-shadow ) {
p {
text-shadow: 1px 1px 2px black;
color: white;
} */

You could then supply different CSS to browsers based on whether they supported a specific feature, and using the cascade supply ones that didn’t something else. I’ve wrapped it in comment tags so that any older browser that doesn’t understand the conditional will just ignore it; this is quite purposely like the IE-specific conditional comments tags, which I think are also a good solution to this problem (which already exist!) and would be good to have adopted by the other browser manufacturers.

Here’s hoping that this loud reaction will give Microsoft some pause in rolling this out; they look like they’re moving in the right direction with IE8 so I hope that don’t screw up on an issue like this.

Signup to receive the latest articles from de-online in your inbox:

Further reading:

Amateur Hour

The other week I had lunch with a friend – the sort of lazy, Saturday-with-no-real-plans kind of lunch where you’re there so long one meal time merges into the next – and during our tenure a friend of his joined us. Let’s call this friend “Jack”. Jack identifies himself as...

Do you really mean it?

Frank Carter stands on the bar at the back of the room. With one hand he steadies himself against the low roof, with the other he clutches the microphone, the wire winding its way over the top of the audience, back to the stage. The atmosphere is akin to what...

Hype Cycles

“If you start to feel sick just take it off and you’ll be fine in a minute.”

These words – uttered by the person operating a computer, oversized goggles and corresponding tangle of wires – are just one of the many reasons why the latest wave of virtual reality is, with...

Quick! Let's release a record!

I am sitting in a small cafe in southern Alabama. The south’s reputation for friendliness is proving well founded, and quickly the barista has coaxed a significant amount of my life story out of me; probably more then I’ve told several people I would consider friends back in London. It’s...

Don't try this in Los Angeles

It’s well known that LA is a car town, but it doesn’t really hit you quite what that means until you get there. To someone from Europe well versed in how cities can sprawl – or not – you think “sure, everyone drives in LA, I get it”. But you...