Version Targeting For IE8, Developer Wars, My Thoughts

Posted on Wednesday, January 23rd, 2008

Change is afoot. Every web developers’ favourite publication, A List Apart, has split the split them into three groups today, the content, the annoyed or the confused. The cause of this: Aaron Gustafson’s introduction to Internet Explorer 8’s version targeting feature and Eric Meyer’s thinking process in response to the idea. In a nutshell, from IE8 onwards the inclusion of a meta tag (or server setting) will be necessary to target the version of IE to use to render the page, defaulting to IE7 rendering if no meta tag is found (please see the article for more detail).

This has thrown the developer community into disarray as everyone tries to work out whether this is madness or genius. Jeffrey Zeldman, Jonathon Snook and Eric Meyer think it is a good thing, Jeremy Keith doesn’t, Drew McLellan distanced the whole Web Standards Project from the decision and Andy Budd thinks that IE will be the one to feel the force of the mistake. Here are my thoughts as I pass from the confused camp to one of the other two.

Breaking The Web

So what are the reasons behind this new control? Well, it all goes back to Internet Explorer’s shoddy implementation of standards in the past and the eventual turn to support standards properly more recently. IE5 used the wrong box model, IE6 was riddled with many bugs and less than half of the CSS 2.1 specification implemented and IE7 is finally on the right tracks. While this sort of progress is beneficial to the web overall, there has been a lot of pain involved with upgrades to the browser “breaking the web”. The recent upgrade to IE7 caused the most problems due to the vast improvement to standards support.

Of course, you would have thought that improving support for standards would improve the web, but where IE6 had been the standard for so long, many websites were coded to IE6 compatibility rather than W3C compatibility. When IE7 fixed the problems in IE6 it simultaneously broke those sites. (See Chris Wilson’s, of the IE team, explanation for further detail.)

Aaron’s article explains how the old method of easing between browser versions is broken now too. Declaring a DOCTYPE at the start of an HTML page would render it in the browser’s standards mode, missing that out would invoke the quirks mode that rendered sites using the incorrect box model and other legacy differences in order to keep everything running smoothly. With the pressure of web standards groups over doing things right and validating code, web editing tools have started to include DOCTYPES whether the user knew what it was or not, thus breaking the only switch the browser had to distinguish which sites could cope with the latest rendering.

Version Targeting

So it has come to this, another method of telling the browser how to render a web page and one that comes laden with a whole bunch of new problems and benefits. I tried to write down what I thought was good and bad about the idea and came up with quite a list (things are still occurring to me as I write this, it is all so fresh), so I am sharing it so you know exactly what I am thinking.

The Good

For a start, the default setting of IE7 rendering (which applies to the whole web, but for those particularly fast developers who have already updated their sites) means that an IE upgrade will never “break the web” again. This is useful for developers who don’t want to check through every site they have ever produced and fix any problems, they can set the version in which they know the sites work.

Browser sniffing, the unpredictable methods possibly used in the past need never rear its head again. As Eric Meyer said:

Version targeting reverses the emphasis of browser sniffing completely, making it “the browser checking the page to see when it was developed and making adjustments to its behavior accordingly.”

The Internet Explorer team can be set free to implement standards without worrying about all the sites that may be affected.

The Bad

Before version targeting, you had to rely on an upgrade implementing standards correctly (something that should be reasonable, but rarely is), now developers will have to rely on browser manufacturers maintaining old rendering engines correctly.

Browsers could become very bloated. Consider in 20 years time, where can reasonably expect to see IE15, by then there will be 9 different rendering engines that will be available to put into play at any time.

Progressive enhancement will become vastly stunted. The idea of providing functionality that up to date browsers will be able to use, but locking the site to rendering by the browsers you tested in disables those bits of functionality that the browsers could potentially cope with (unless the developer returns to update the meta tag).

Further Considerations

What if editing tools start adding arbitrary version targeting, like they started adding DOCTYPES? Inexperienced web developers wouldn’t know where they were or why a site created with one tool looked different to the same site created by another.

What about new standards? What will an HTML5 site look like when displayed in IE7 mode? Or HTML6? Or HTML60?

What about developer apathy? It stands to reason that the majority of websites are not strictly coded pillars of the standards community, in fact all those developers not reading A List Apart and considering this now are the ones that this sort of time and rendering freeze are aimed at. Now, if the majority of sites out there are built like this, freezing time and rendering in 2007 with IE7 then no matter how much innovation goes on in standards or IE rendering, the most used rendering engine will still be the default IE7.

What happens when you opt for a browser that a user doesn’t have? For example, say you opt for IE9 rendering and a user with IE8 visits. Do they render in IE8 or IE7 mode?

A Conclusion?

The things I worry about the most are the future, the potentially bloated browsers, maintenance of old rendering engines and behaviour when faced with future standards. Hopefully someone will be able to provide some sort of reassurance soon. The future standards question was mentioned by Eric Meyer, who said that perhaps default rendering for later versions of HTML could be switched by the DOCTYPE again, given that IE7 won’t have much of an idea. This is something I would definitely support as it would retain an incentive to those who want to use the new technology available but don’t know all the intricate details.

There is one thing I haven’t mentioned yet. The “edge” keyword, to force the browser to use its latest rendering engine. This could go one of two ways, either everyone will use it and the targeting will become as defunct as DOCTYPE switching or no-one will and progressive enhancement will be dead. I just don’t know which will happen.

Tentatively… Yes

After all this thinking, all this writing, I think that version targeting in Internet Explorer could be a good thing. I will give it my tentative support for now, while waiting to hear more about its implementation and details. However, for other, standards compliant browsers, I don’t think it should be adopted. As I made clear at the start of this article, upgrades to IE7 only broke the web because IE6 did it so wrong for such a long time. Never has anyone complained of Firefox, Opera or Safari breaking the web when they upgrade, no-one is panicking or advising developers to check all their sites in the Firefox 3 beta right now, because they have it mostly right already and are only adding features. Progressive enhancement can live on for these browsers, they can continue to implement the standards as they were meant to be, while supporting the older ones too.

Internet Explorer has always been a special case when compared to the standards. Sadly, it remains the most popular browser out there, leaving us devoting precious time to fix its quirks. Maybe one day, when the oldest browser is IE10 and all standards are supported well by all browsers we can drop this targeting again, focusing instead on progressive enhancement and encouraging people to upgrade not because it makes developing easier, but because they get to use all the cool things afforded by current technology.

Until then, at least we can guarantee that IE8 won’t break anything straight away!

More of my thoughts on browser targeting after the dust started to settle a bit.

If you enjoyed this post, why not subscribe to Unintentionally Blank

Comments

  1. Tim Says:

    My immediate reaction to reading the ALA articles was that version targeting looks like it was put in place to put a stop to bosses coming up to developers and saying “why doesn’t our site work in internet explorer?”

    Yes, it’ll be nice to have old sites in your portfolio look just as good as the day you made them and not have to constantly check if you site looks right; but really… unless IE8 takes over at an absurd pace, we’re still going to have to check sites in IE6 & IE7 until somewhere around 2010.

    This could be a large setback to progressive enhancement. But it’ll also be nice to make a site and just leave it alone.

    good read phil


  2. Phil Says:

    Hi Tim,

    You are right there, it is the legacy systems that require old version of IE to work that keep companies using older versions of IE so that system critical software doesn’t go down the tube. I know of one client who insists the site works in IE5.5 due to some users still having that browser.

    Yes, IE6 will be around a long time (although there is another plan to push IE7 through automatic download coming up), but we know how to deal with it for now and there will be a day when IE7 is the base.

    Look out for more on this coming up, there have been more advances today!


  3. Pingback by csskarma.com/blog » IE8 - Version Targeting

  4. Stevie D Says:

    “Before version targeting, you had to rely on an upgrade implementing standards correctly (something that should be reasonable, but rarely is), now developers will have to rely on browser manufacturers maintaining old rendering engines correctly.”

    The IE team will want as many people as possible to be using the latest version of IE. People will only do that if websites work properly. So as long as there is still a sizeable number of websites out there that need the old rendering engine, IE will continue to support it.

    “Browsers could become very bloated. Consider in 20 years time, where can reasonably expect to see IE15, by then there will be 9 different rendering engines that will be available to put into play at any time.”

    That won’t happen. If IE8 fixes everything, there will be little or no need to include separate rendering agents for IE9/10/11 etc. Yes, subsequent versions might include additional features, but not anything that would require a separate rendering engine.

    “Progressive enhancement will become vastly stunted. The idea of providing functionality that up to date browsers will be able to use, but locking the site to rendering by the browsers you tested in disables those bits of functionality that the browsers could potentially cope with (unless the developer returns to update the meta tag).”

    Two options. One is that when you add new features that require the latest version of IE, update your meta tag or http headers - the other is to set the meta tag to IE=”edge” in the first place, and then IE will behave just like any other browser and use the latest rendering engine. That seems like the most sensible way forward for competent designers.

    “Now, if the majority of sites out there are built like this, freezing time and rendering in 2007 with IE7 then no matter how much innovation goes on in standards or IE rendering, the most used rendering engine will still be the default IE7.”

    So what? The majority of sites don’t use CSS for layout. It’s still there for those of us that do want it! What matters to me is not what rendering engine other people are using on other websites, but what they are using to look at my website - I want to code a standards compliant site and know that people using IE, Firefox, Opera or anything else will see it as I want them to. We’ll have the option to use good practice - we can’t force other people to, no matter what we do.

    “What happens when you opt for a browser that a user doesn’t have? For example, say you opt for IE9 rendering and a user with IE8 visits. Do they render in IE8 or IE7 mode?”

    What happens now when someone tries to view an HTML5 page in IE6? Browsers will do the best they can - if a more recent engine is needed than is available, it will (I assume) use the closest matching engine, which will be the most recent. Yet another reason to use ‘edge’ rather than specific numbers.

    I was initially very sceptical about this proposal. But after looking at it more carefully, I’ve found my only argument against it is because it’s Microsoft, and I don’t like them and I look down on people who don’t code with web standards … none of which are very good arguments! There is, on the other hand, a lot going for this - it is, as far as I can see, the best way forward.


  5. Jonathan Nicol Says:

    “Browsers could become very bloated. Consider in 20 years time, where can reasonably expect to see IE15, by then there will be 9 different rendering engines that will be available to put into play at any time.”

    That occurred to me too, but here’s a little excerpt from a site point interview with Chris Wilson from the IE team:

    SP: Now, with this developer opt-in model that Internet Explorer and, if it goes into the HTML spec, all browsers will eventually adopt, are browsers over time going to have, you know, five, six, seven, ten, eighteen different rendering modes for each version of the spec that’s released over time, or will this tendency of the differences to tend towards zero over time mean that one day this can go away?

    Chris Wilson: I think that my personal hope, certainly, is that one day this gets to go away, that the differences between browser versions are not what we call internally ‘breaking changes.’

    I think the point you make about ‘freezing’ the web is an important one, and that is my biggest concern with version targeting as it is currently proposed.


  6. Phil Says:

    Thanks for your comments, Stevie and Jonathan.

    You both make a point about later rendering engines not being so different that loads of new ones will be required. That is quite good and something I hadn’t considered, though it does rely on IE8 doing all the things right that it claims to (though with the Acid2 test, it is looking that way).

    I am in favour of the proposal in the end, it won’t affect me as I will be developing with, either the edge keyword or the HTML 5 DOCTYPE (as I mention in later posts on the topic) giving me the best of the browser’s ability whenever. If this helps other developers, those who own sites that will potentially break with the onset of a new browser and the users that have to go through the trauma of upgrading then it can’t be a bad thing and, since there are web developers who will further innovation online, at least parts of it won’t be frozen in 2007.

    I look forward to pushing the boundaries of IE8 and beyond.


  7. SneakyWho_am_i Says:

    Web standards. As already pointed out, when Safari/Opera/Firefox is upgraded we’re not these days running around pulling out our hair and trying to fix broken sites. This is because the standards don’t change with each browser version.

    If your page is going to look good in IE7 but not IE8, use conditional comments - that’s what they’re #^&% there for.
    Yes, the real concern is that whole “on the day, will it break my site?” thing… But that’s what public betas are for isn’t it? Does Microsoft do public betas?

    I used to spend 80% of my time writing a lot of unnecessary code to make IE imitate the acceptable level of standards compliance in other browsers such as Firefox (because we all know it’s easiest to code properly first and then go back and “fix” the things IE missed, right?)

    Now I say, to Hell with it, I’ve stopped writing four times as much code for a bad browser. I know this is not an option for most - but I’m not most, my sites are mostly made for me alone, and when they’re not, it’s not an issue with my bosses ;)

    Every time you have to make a workaround for Firefox or Opera or something, allow yourself one workaround for IE if you really must.

    This meta tag is a very very bad idea. It will encourage people to stick with IE7, which is just plain stupid.

    Code according to the standards wherever you can. If someone visits a page and some particular thing isn’t implemented, screw them! “fixing” it for them is really “breaking” it much of the time. If their browser can’t meet ten year old standards, they shouldn’t be using it. Don’t try to accommodate them, make them get a proper browser.

    I won’t be adding any weird tags to my pages to make them work properly in IE 8. If you want to view my pages properly, you have to get a proper browser and that’s the bottom line.

    Microsoft is creating this tag to encourage people to not use standards-compliant code, and therefore on moral grounds it should never be used. It’s “innovations” like this that keep us mired in 1997.



cheap online viagra
viagra 25 mg order
cialis 10mg
100 mg cialis us pharmacy
viagra and cialas
generic levitra wholesale 100mg
viagra by phone
buy viagra online 50mg
buy cheap p viagra
cheap viagra online order viagra now
cheap viagra online uk
buy real viagra pharmacy online
cheapest price for viagra
cheapest generic substitute viagra
buy cheap online prescription viagra
buy cheapest viagra
rx cialis 100mg
canada pharmacy discounted viagra 100
generic cialis wholesale 100mg
cialis 50 mg
cheap viagra uks
discount drugs cialis 100mg
buy viagra on the internet
viagra by mail canada
100mg levitra
cheapest generic silagra viagra
cheep generic viagra
cheapest place to buy viagra online
buy levitra online viagra
buy generic viagra online
cheap 25mg levitra
viagra 100mg price
buy kamagra viagra india
cheap cialis canada
buy levitra online
cheap viagra canada
cheap viagra st
cialis 50mg online
viagra and cialis and
buy from pharmacy us viagra
viagra brand
viagra buy oonline
viagra brands
buy get online prescription viagra
cheapest viagra
buy levitra viagra
buy levitra viagra online
buy online prescription viagra without
10 generic viagra for 19.95
buy cheapest online place viagra
cialis 10
buy say viagra
cheap phizer viagra
cialis 2.5
buy generic online viagra
buy levitra canada
cialis dosage 20mg
cheap online softtabs viagra
levitra no prescription
50 mg viagra retail price
buy site viagra
viagra buy general
viagra online prescription
order levitra online
rx viagra 100mg
buy cheap cialis
buy cheap viagra online now uk
buy cheap online viagra viagra
cialis 100mg price
buy discount cialis
cheap overnight viagra
20mg cialis
5mg cialis generic
buy cheap viagra on the net
buy real viagra online
viagra by the pill
cheapest generic viagra
buy kamagra viagra
cheap viagra uk
cheap viagra online pharmacy online
cialis 20mg
buy online drug viagra pharmacy
buy 10 mg cialis
buy sale viagra
buy viagra online and get prescription
cialis black reviews
cheapest uk viagra
viagra and cialis cheap
buy online prescription viagra
buy in online usa viagra
buy viagra no prescription
buy cheap viagra in uk
buy in uk viagra
cheapest place to buy viagra
buy keyword viagra
buy cheap viagra online now
generic viagra wholesale 100mg
cheap order prescription viagra
buy levitra wighout prescription
buy cheap cialis generic levitra viagra
cheap online viagra viagra
cialis no prescription
cheap online pill viagra
purchase levitra online
buy prescription viagra without
cialis 10mg
levitra 100mg price
viagra buy viagra online
viagra by overnight delivery
cheapest viagra in the uk
cheapest place buy viagra online
cialis 20 mg
buy pharmaceutical viagra
buy cialis no prescription
buy online pill viagra
buy cheap deal pill viagra
250 mg cialis
buy real viagra online pharmacy
viagra buy generic
cheap levitra online
cheap site viagra
buy free viagra viagra
buy viagra online
buy cialis online 50mg
viagra buying
cialis 10 mg
buy viagra wighout prescription
viagra 25 mg
cheapest prescription viagra
buy cialis 50mg
viagra 50mg
40 grams of cialis
levitra 10mg 20mg
cialis 24
buy levitra no prescription
buy cheap viagra online u
cheap price viagra
buy discount viagra
buy pharmacy pill viagra
viagra without prescription
cheap 25mg cialis
cheap discount levitra
viagra brazil
buy cheap viagra on
levitra 50mg
cheap online price price viagra
buy viagra online at cheap price
viagra buy australia
buy generic viagra
cheap order site viagra
buy now levitra
cialis 25 mg order
levitra 50mg online
buy cialis online
cialis reviews
buy cialis wighout prescription
cheapest generic viagra and canada
buy cheap viagra online
cialis 30
buy line viagra
buy generic viagra online pharmacy online
levitra 25 mg order
cheap online order viagra
cheapest uk supplier viagra
250 mg viagra
viagra buy viagra
buy online sale viagra viagra
cialis 25 mg
cheapest generic price viagra
cialis 2005
viagra 50mg online
buy in online uk viagra
cheap levitra online
viagra by money order
buy cheap viagra prescription online
buy cialis online now
cheapest generic viagra and cialis pills
cheapest prices for viagra online
50mg cialis
cialis 2005
viagra by mail order
buy cialis internet
cialis 5mg
buy cheap levitra
buy cheap sale viagra
viagra and coupon
levitra 20 mg
viagra 10mg 20mg
cialis 10mg 20mg
buy cheap discount levitra
buy now online viagra
usa cialis
buy online price viagra
buy online levitra cialis viagra
100 mg viagra us pharmacy
viagra buy now pay later
buy cialis no prescription
cheapest price for generic viagra
cheapest regalis viagra
viagra 100mg
cheap levitra canada
buy levitra 50mg
cialis 50mg
purchase levitra
cialis 20
national bingo night
cheap online sales viagra
buy online purchase viagra
viagra buy ionline
cheap viagra online
cheap pill pill sale viagra
buy cialis online viagra
cheapest online viagra
buy free viagra on internet
50 mg cialis retail price
levitra online
order levitra
cheap soft tab viagra
viagra buy uk
cialis 10 mg
buy pfizer viagra
cialis black 800mg
buy prescription viagra
buy viagra on-line
generic cialis
cheap online generic viagra
buy online online viagra viagra
buy p viagra
10mg cialis
cialis 20mg
buy viagra online a href
viagra buying online
20 mg cialis
cheap prescription viagra without
cialis without prescription
order 50mg cialis
cheap pharmacy viagra
buy cheapest online viagra
buy cheap cialis
buy generic viagra usa
cheap viagra without prescription
cheap viagra online prescription
allegra
viagra by mail catalog
voagra online without prescription
buy online uk viagra
buy online online pill viagra viagra
cheapest in uk viagra
canada pharmacy discounted levitra 100
free bingo
50 mg viagra
buy cheap viagra
36 hour levitra
tamiflu
buy viagra online alternative viagra
buy generic viagra img
buy online sale viagra
cialis 20
generic viagra 20mg pills erections
50 mg levitra
viagra buy do nu
viagra buy it online now
cialis 30mg
buy now viagra
cheep viagra
levitra 50 mg
order 50mg viagra
buy discount levitra
buy online pharmacy viagra
cheapest line viagra
cheap 25mg viagra
buy line viagra where
cialis 32
buy 100 mg viagra
10 generic cialis for 19.95
buy viagra onli
buy cheap viagra online uk
buy discount levitra
cheapest price on viagra
cheap cialis canada
levitra brand levitra 100mg
viagra 50 mg
buy generic no online prescription viagra
cheap online purchase viagra
buy deal deal price viagra
buy price viagra
buy cheapest viagra online
buy generic viagra buy
cialis without prescription
buy viagra 50mg
buy cheap viagra uk
buy prescription vaniqa viagra
levitra 25 mg
viagra buy
cheapest prices on generic viagra
cialis 5m tablets
buy cheap online uk viagra
buy cheap generic viagra
voagra online without prescription
buy pill price price viagra
buy discount propecia
cialis 100mg
viagra by mail
cialis 36 hours
buy cheap online viagra
cheap pharmaceutical viagra
cialis 50mg
buy later now pay viagra
buy cheap uk viagra
buy cheap viagra cheap viagra online
cialis online
buy cheap generic online viagra
viagra no prescription
buy locally viagra
buy file viagra
generic levitra 100mg
cialis 10
buy free online sale viagra viagra
cheapest price viagra
order 50mg levitra
cialis brand cialis 100mg
buy real viagra
cheapest generic viagra and cialis
generic cialis 20mg pills erections
cheapest cialis
rx levitra 100mg
10mg viagra
buy cheap viagra
cheapest site viagra
buy cheap site viagra
cialis 20 mg
levitra 100mg
viagra buy in uk online
generic levitra 20mg pills erections
discount drugs levitra 100mg
cheap cialis canada
buy online order viagra
discount drugs viagra 100mg
cialis 1
viagra 125 mg
online slots
cheap cialis canada
buy levitra now
buy generic viagra pharmacy online
36 hour viagra
cheapest cheap viagra
cialis online prescription
100mg viagra
voagra online without prescription
100mg cialis
buy cheap deal viagra viagra viagra
buy low price viagra
buy in spain viagra
levitra online prescription
canada pharmacy discounted cialis 100
buy pill viagra
250 mg levitra
cialis 20mg reviews
buy cialis now
buy generic viagra viagra
cialis 125 mg
levitra without prescription