Programming
Article

Fear and Loathing in Standardsville: The IE8 Opt-in Debate

By Kevin Yank

As covered last week on SitePoint by Matt Magain, Microsoft has announced that IE8 will introduce a new “browser version targeting” system that will see the browser default to rendering standards-compliant pages the same as in IE7, and will require developers to explicitly opt in to IE8’s new, Acid2-compliant rendering engine if they want it.

For web developers that have pinned their hopes for a better world on web standards, the change Microsoft is trying to make is a scary thing.

The fundamental new idea that the ability to “lock” pages to a particular browser release would be a nice thing to have takes a little getting used to, but it’s gradually gaining acceptance. After all, browser releases come along much more often than new web standards, which makes standards-based rendering modes like the DOCTYPE switches in current browsers insufficient.

Seeing your favourite web sites suddenly go wonky when you install a new browser version may be acceptable to developers like you and me, but it will never make sense to end users, who naturally expect better of the Web. Browser version targeting lets us cleanly sidestep such unpleasantness, and enables browser developers to spend more time working on new features and less time weighing the pros and cons of fixing bugs that many sites have come to depend on being present. I recommend reading Eric Myer’s From Switches to Targets if you’re still not convinced.

“Now Life Has Killed the Dream I Dreamed”

But even if we accept browser version targeting in principle, there’s the small matter of the billions (trillions?) of web pages out there, none of which currently specify the browser versions for which they were written. Microsoft would see these pages rendered as IE7 currently renders them for the rest of time.

Some see this as letting the lazy developers of the world—who build sites for the current version of IE and nothing else—get away with writing shoddy, non-compliant code. Others see it as forcing developers to put an ugly “stamp of Microsoft” on all their pages just to get support for standards that IE should have supported for years.

Still others are simply unwilling to give up the notion that web pages are written to standards, and that it’s a browser’s solemn duty to render those pages according to those standards, or as closely as they are able, unless instructed otherwise.

Jeremy Keith is one of this last group. In Broken, he calls for developers to rally against Microsoft in an effort to convince them that the default behaviour in the absence of version targeting information should be to provide the most standards compliant rendering possible.

One of the staunchest advocates of progressive enhancement—enhancing sites using standards that are not yet supported by all browsers so that they will work better in future browsers—Keith sees in Microsoft’s default proposal the death of this promise of a brighter future for the sites we are creating today.

Shockingly to some, Web Standards Project co-founder Jeffrey Zeldman disagrees. In his piece In defense of version targeting, Zeldman comes out and tells the ugly truth: that forcing practitioners of progressive enhancement—a tiny and elite minority in the developer community—to add <meta> tags to their old sites to benefit from new IE features is a small price to pay in order to keep Microsoft on the road to better web standards support.

“It’s The End Of The World As We Know It
(And I Feel Fine)”

Taking Microsoft’s proposal at face value, you might think it was a sad day for standards-minded developers, who for years have imagined a future in which it would be enough to write sites to web standards for them to be displayed as intended in all browsers.

Call me crazy, but I believe there’s still hope, and this can be seen in some of the responses we’re seeing from other browser vendors. In <META HTTP-EQUIV="X-BALL-CHAIN"> and Slipping The Ball And Chain, Mozilla developer Robert O’Callahan discusses the challenges of actually implementing Microsoft’s version targeting proposal in the long run. He doesn’t expect any of the other major browsers to support version targeting for several reasons, including:

  1. All the other major browsers’ standards support is now so good that, in recent history at least, bug fixes in new browser versions haven’t caused significant breakage to existing web sites.
  2. Shipping and maintaining an ever-increasing number of legacy rendering engines with each new browser release while ensuring security and interoperability is impractical, if not downright impossible.

The thing is, if this logic can be applied to browsers like Firefox, Safari, and Opera today, it might well be applied to Internet Explorer in a few years’ time. I asked Chris Wilson about this when I interviewed him at Web Directions South late last year:

SP: “Now, with this developer opt-in model that Internet Explorer […] will eventually adopt, are browsers over time going to have, you know, five, six, seven, ten, eighteen different rendering modes […], 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.’ […]”

Chris went on to say that he feared there would always be room for interpretation in even the best standard specifications, which would later require browsers to make changes that could break existing pages, but that the work being done on standards today is definitely much better than it has been previously.

That, in combination with the mounting maintenance burden of preserving security, interoperability, and backwards compatibility with multiple rendering modes might give Microsoft reason to wonder whether version targeting is still necessary when IE10 rolls around.

IE8: Means to an End?

To sum up my thoughts this issue, I believe Microsoft’s move to add browser version targeting to IE8 will be difficult for standards-minded developers to accept, but is ultimately a solid solution for the real problems that are currently holding back the evolution of the Web today. If only for tackling the problems that were keeping it from fully embracing web standards, Microsoft should be commended. It could have simply put Internet Explorer on the back burner for another six years!

The decision to make HTML4/XHTML1 pages target the IE7 rendering mode by default, while understandably controversial and certainly worthy of further discussion, I believe strikes the right balance between current real-world needs and the vision of a standards-compliant future.

The silver lining for the standardistas here is that the other major vendors see little use in supporting version targeting in their browsers—certainly not enough to justify the huge development burdens that would be involved. This could be a sign of things to come for Internet Explorer.

Version targeting may just prove to be the key to getting Internet Explorer to stop dragging its heels on the road to that web standards utopia we’ve always dreamed of. And once we get there, Microsoft may well find itself in a position to rejoin the other browsers in supporting the latest standards by default, instead of by request.

  • SPage

    This just seems to be the follow up story of Microsoft’s attitude towards anything that concerns the web: You do it my way (because I have the controls on 95% of all computers in the world), and I do not care about your web standards if they are not the ones my Explorer browser condescends to respect, etc., etc.

    Total and absolute control, that is Microsoft’s ultimate objective.

    Too bad, some developers, despairing on the long term adoption of web standards, even consider this new Microsoft’s slap in the face to all other browsers engineers and web designers, as a potential solution to accelerate the standardization. Leveling towards the bottom has never increase evolution.

  • Ryan

    SPage, is it really so hard to understand that if MS go straight for the standards compliant mode millions of sites would be screwed? But worse than that, millions people would install IE8 only to find sites they visit are broken possibly causing them to revert back to an older version of IE. Do you honestly want to push people away from upgrading their browsers?

    In my opinion this version targeting is an acceptable solution for the time being, so long as MS move over to a fully standards compliant engine in IE9 or 10 and drop the targeting. This should give most developers and site owners time to fix up sites if they want.

    So long as this is short term and not still in use 6 years down the line I see little problem.

  • http://autisticcuckoo.net/ AutisticCuckoo

    Maybe it’s time to bring back the horrible ‘Best viewed in…’ statements from the browser war era? But this time with a little addition:

    Best viewed in a browser that is standards-compliant by default.

    :)

  • James

    I still think this is a backwards step, by defaulting to IE7’s less than perfect engine, where is the incentive for non-standards based developers to change their bad habits?
    The only people who are likely to know about the version targeting are those who are already savvy with standards and would be crying out for a standards compliant browser from MS.
    To everyone else, it makes no difference. The only way we stop the idea of ‘breaking the web’ with a standards compliant browser is to get the developers with bad habits to change their ways and this does nothing to do that.

  • Anonymous

    As Ryan says, IE8 might break existing sites if it used standards mode by default. Personally, I don’t regard that as a bad thing. If sites don’t work properly in IE8 standards mode, then the site will be equally broken in other browsers too.

    By making standards mode ‘opt-in’, MS are conveniently prolonging the existence of the many sites that only work properly in IE and break if viewed using a standards complaint browser. That’s great for them, and a complete pain for those of us who can’t/won’t use Windows/IE.

  • http://www.sitepoint.com/ Kevin Yank

    James,

    I still think this is a backwards step, by defaulting to IE7’s less than perfect engine, where is the incentive for non-standards based developers to change their bad habits?

    As I see it, the incentive will be all the amazing new things that standards-aware developers will be able to do with the new IE8 engine. Creating web pages for the IE8 engine will be easier, simpler, and full of new possibilities. Those are the kinds of things that motivate people to improve their skills, not breaking their sites in the hopes of “teaching them a lesson.”

  • http://www.sitepoint.com/ Kevin Yank

    If sites don’t work properly in IE8 standards mode, then the site will be equally broken in other browsers too.

    I used to believe this too, but IE7 proved us all wrong on this front. IE7 improved standards support, but broke pages that worked perfectly fine in other browsers.

    Why? Because in the real world, we adjust our pages to work in imperfect engines like IE, and those adjustments come back and bite us when the next version of IE comes along … or they did until now.

  • Anonymous

    It’s not a case of teaching poor developers a lesson. It’s a case of forcing them to fix their fundamentally broken code.

    Yes, I know the majority of people on this site are (or at least aspire to be) skilled developers who write standards compliant code, and sometimes apply a hack or two to make IE work properly. Those people will quickly jump on the new capabilities of the IE8 rendering engine and benefit from it.

    That said, there are enough people out there who will continue to create broken markup that works in IE7, standards be damned. THOSE people are the problem. They produce broken markup now, they’ll still produce broken markup for IE8, unless it forces them to make their code standards compliant. And so the trend of IE-only websites will continue.

  • sclough

    This strikes me as a very bad idea. It smells like all the code we used to have to try to check if we were dealing with Netscape or IE. Sure some of that is still around, but it’s gotten much better. Given the nature of the web where a lot of pages aren’t modified for years and there are all kinds of different browsers and devices accessing content, I can’t stand the idea of having to target specific browsers on pages. Why can’t Microsoft just read the already somewhat accepted doctypetag telling it what version of HTML or XHTML it is dealing with? This is a really bad idea and it’s not worth going along with in the idea that at least Microsoft is acknowledging standards because these things have a habit of lingering far after they are useful especially on something as broad as the web. Browser targeting (and this is browser version targeting) should be an ideal we get away from, not go towards.

  • http://www.sitepoint.com/ Kevin Yank

    It’s not a case of teaching poor developers a lesson. It’s a case of forcing them to fix their fundamentally broken code.

    Again, IE7 has taught us that this will not work. Breaking stable, established web sites (which in many cases are no longer being actively maintained) does not force developers to go back and rectify their past mistakes. At best, it forces the owners of the sites to recommend against installing the new browser.

    Eventually, yes, sites that wish to stay in the game are forced to hire new developers to make the minimum possible changes to satisfy the new browser, but by this time users have had plenty of time to blame the new browser for the problems that have occurred in the interim, and they will continue to resist this and future browser upgrades. How is a browser vendor like Microsoft to justify making additional improvements to standards compliance in such a climate?

    Web standards will never succeed by dragging unwilling developers kicking and screaming into the future. Rather, such developers will turn to less hostile environments for solutions. Flex and Silverlight are examples of this effect.

    Instead, Web standards should win the hearts and minds of developers by offering simpler, easier, and more powerful solutions than non-standard code. With this in mind, I reiterate: when the creators of broken, non-standard markup see what we can do with the new IE8 rendering engine, and how easily we can do it, they will eagerly update their skills so that they too can take advantage of this new power.

    That’s the only scenario in which I can imagine web standards becoming the lingua franca of all web developers, not just an elite few.

  • Sojan80

    Part of me wants to call all of MS, and especially Team IE chickensh*t for not having the balls to leave IE7 alone for the next six years just like they did IE6. Maybe in that time they could develop an IE that fully implemented the standards. And then again, this is MS we’re talking about, so maybe not. But, part of me also realizes this is / would be a very bad idea for MS to do, so I’d have to say I agree with Kevin in that MS has to do this and they have to do it this way.

    I don’t like it, but I realize this is how it has to be, if for no other reason than to give them a mechanism to play “catch up” with every other standards compliant browser on the planet. However, the “black bag”, clandestine method of IE development where they completely ignore the existence of the recommendations has got to change. So too does their completely ignoring their own promise of transparency in working with the community for future improvements and instead, choosing to ram a solution down the collective throat of the world dry like this especially if IE is to have a hope of ever catching up. After all, other browsers like Firefox are currently taking IE’s market share if only a piece at the time, and I’m sure MS has noticed.

    The most irksome thing of all though is this IE only meta tag. Why can’t it just be dynamically inserted? Why must it be hard-coded in (which blows chunks)? Especially when you think about once it’s no longer needed (if that day ever truly does come) you have to go back through all those pages and take it back out!

    Worse yet, if they release a new version of IE (and they will) you have to go back through all your pages and change that hard coded value to the new version anyway, at least for the two or three versions it will take Team IE to catch up. No offense, but I don’t have months of time to just go back through every site I maintain and change a meta tag on every page just because MS wants it hard-coded in instead of giving me a dynamic option.

    If MS is going to demand this version locking mechanism so they can play catch up they should at least give us a dynamic way of implementing it.

  • Brian Knoblauch

    Oddly, my first thought is “Java Layout Managers”… Some people find the result beautiful, others, very ugly. Seems like the road we’re headed down is comparable to the road those have taken…

  • digihoo

    It should be pointed out that as of March 8, 2007, Microsoft’s net worth as a company was $267.53 Billion (USD). So here’s a company that has had hundreds of billions of dollars and several years to address this issue and THIS is the best it can do? Hmm.

    Years ago, they could’ve afforded to hire every single one of the brightest minds on the planet – minds that probably could’ve entirely re-written the buggy browser from scratch in a few months time, had it chosen to do so. Again, Hmm.

    So they’ve had the money, the time and the opportunity to fix things. With some thought, doesn’t it become rather obvious that they are most likely CHOOSING non-compliance?

    This would keep intranet and legacy app users locked in to their current IE stranglehold for the foreseeable future.

    Microsoft is a company that has never chosen compliancy. And this has been a DELIBERATE choice all the way, right down the line.

    And they NEVER WILL, or they would’ve done so by now.

    By far the most disturbing aspect of this IE8 debate is that some developers and organizations who in the past have made standards compliance such high a priority have now thrown their reputations aside in order to back this hack.

    People and groups that have announced their support of Microsoft on this issue can no longer truly consider themselves advocates of standards compliance. You can’t have it both ways. Standards are standards, whether it’s for Microsoft or Mozilla.

    Anyway, here’s my suggestion: Since Microsft has chosen this course (with everyone else paying the bill), let’s put the onus on them to handle the breakage when it occurs.

    They should put a big red button on the main toolbar of IE8 with the message: “Having trouble viewing this site?”.

    In which case a “Yes” reply would revert the browser back to IE7, or 6, or 5, or whatever ancient version they choose to keep people locked in to.

    (I’m cross-posting this to http://www.sitepoint.com/forums/showthread.php?t=527048)

  • tfurry

    but by this time users have had plenty of time to blame the new browser for the problems that have occurred in the interim, and they will continue to resist this and future browser upgrades.

    Hmmm. I can’t remember the last time a user blamed the BROWSER for the unusable site.

    After years of being told browser-sniffing is a no-no, and changing our coding to be standards-compliant with perhaps a few odd browser-specific CSS hacks (I’ve done them for both IE and FF), we’re now being told to start allowing server-sniffing? New browsers are supposed to sniff the meta tags to see if “me too!” is included to determine if they should render the page they way they should…um…really render the page?

    We’ve got one argument stating that many sites aren’t maintained so they should continue to be rendered improperly by new browsers and an opposing argument saying we should put in temporary meta tags (to be ripped out later by the site maintainers) so the browser can render properly until everyone catches up.

    I’ve taken great pains to make sure my sites are browser-agnostic, to the extent that I feel comfortable with who I leave out in the cold. I also develop in a corporate environment where IE6 still reigns (IE7 “breaks” too many high-$$$ third-party web applications). I’m confident my sites will work on IE8 no matter which mode it renders in, even before I start testing them. My preference in my own work is to not have anything that is aware of the browser or caters to a browser.

    I like Microsoft. I’ve developed most of my work in an MS environment. I don’t think putting in extra tags is the answer, though. IE8 should render as closely to standards as possible, with perhaps the typical doctype sniffing to determine if the developer was paying attention (at least that’s still browser agnostic).

    Maybe it’s time to bring back the horrible ‘Best viewed in…’ statements from the browser war era? But this time with a little addition:

    Best viewed in a browser that is standards-compliant by default.

    How about “best rendered in standards-compliant mode”? LOL

  • http://www.mikehealy.com.au cranial-bore

    I don’t think the meta tag/HTTP code is such a bad solution at all. The high and mighty standardistas can moan, but really IE seems to be providing a means to better standards support where it’ll work, without forcing it on millions of existing pages where it won’t.

    The web is a really big place. It’s not all XHTML strict compliance badges, blog rolls and Flickr photo streams. Like it or not MS with IE is in a position of responsibility…they can’t push semi-vengeful standards ideologies on the rest of the web to show them they’ve been living in sin.

    I get the impression that a lot of the standards hard-lines have never had to make a compromise with a technical solution. I know I have.

  • Sojan80

    Again though, they’ve had YEARS to fix the issues and have chosen not to. THat has to stand for and or say something, and it certainly isn’t “We like our customers and we stand behind every piece of software we produce.”

    Whether I like MS as a company or not is meaningless here. MS signed on to the specifications provided by the W3C and then renigged on the promised support. MS was actually one of the first proponents for standards.

    Now Chris Wilson will say “We ship IE on over a billion computers…”, and I’ll remind Chris “That is because you’re not required to ship with anything else, or to tell your company there are better, more standards comliant browsers out there than yours. THere is no ‘Truth in Software Production” like there is in Lending or sentencing.”

    But also it is exactly for this very same reason that this browser is onover a billion computers that their toes should be held to fire even more for it being the debacle it is. They have the most market share, they have the most money, the onus falls on MS (and Chris Wilson)to fix this, and the only way they can do it now is some hacky kludgy blackbag hackjob.

  • http://www.tyssendesign.com.au Tyssen

    I tend to agree with tfurry. Some people might realise it’s their browser that’s at fault and install a different one, but many people don’t realise they can do, and with IE being automatically upgraded by Windows Update, they may not even realise it’s a new version of the browser that is causing a problem. Fewer still will know how to disable automatic browser upgrades.

    Instead, they’ll blame the site and go elsewhere which then brings the problem back to the siteowner and the developers and not the browser.

  • loquacity

    Big step backwards. This is what the browser wars were all about. Coding for and targeting specific browsers.

    Netscape slowly slipped under the waves as this new offensive hit the wires.

    Anyone who experienced the browser wars up close and personal can see that this can only end badly. How does it benefit standards, the web and those who use it if IE is the last browser standing?

    This misguided attempt at locking in market share actually highlights Microsoft’s lack of understanding of what people want from the web. Microsoft is simply executing a power play under cover of providing a better web experience.

    Cynical, dastardly and downright underhanded.

  • LiamNZ

    Hmmm. I can’t remember the last time a user blamed the BROWSER for the unusable site.

    Well, if you had been using a site for a long time with no problems, then updated your browser, and the site was now broken, who do you think gets the blame? If the site was always broken, then of course they would blame the developer.

    One thing that I haven’t seen mentioned was the fact that this proposed fix will only affect HTML 4.0 and XHTML 1.0. Once (if ever) it becomes viable to code in the new standards, then the META tag would redundant, as there would be no IE7 render mode for these new doctypes.

    Especially when you think about once it’s no longer needed (if that day ever truly does come) you have to go back through all those pages and take it back out!

    I disagree. The great thing about the meta-tag is that it will be ignored when it’s no longer needed. It could happily stay in the code for the indefinate future and would never affect any browser that isn’t looking for that tag. One day it will be a quaint reminder of how hard it was “back then” like it is when you look at Javascript that looks at the UA string.

    Personally, I can’t wait for this to happen. I think it will be a great day when IE6 & IE7 are both discontinued and we can forget they existed. I’ve been waiting years for MS to get to this point in their browsers, and they often said it wouldn’t happen. While the meta-tag isn’t the most elegant solution, it is one that we can use to our advantage until the older browsers get weeded out of the user base.

  • http://www.squarefootball.net amelvin1968

    If people want to believe that this compares to the 1990s hacks then they are clearly poorly informed. So let’s clear things up.

    In case anyone is young enough to believe that today’s work is anything like as difficult as it was when my knees didn’t creak I have taken the somewhat drastic step of digging out my 1997 edition of ‘Web Authoring Desk Reference’.

    Opened (randomly) at page 511 (it is a huge book) then I can see the entry for ‘cascading style sheets, margin-left’. ‘margin-left’ at this evolutionary point was supported as follows:

    Supported: NN4/Win, NN4/Mac, IE4/Win
    Partial support: IE3/Win, IE3/Mac
    Not supported: NN3/Win, NN3/Mac, IE4/Mac

    Mosaic support is not detailed.

    The sidenote tip is ‘Although Explorer 4 gives a right margin to an image just fine, it fails to give a left margin to an image’.

    That is the level of knowledge of browser targeting that was required in 1997 to use something as trivial as margin-left.

    Unless I have misunderstood, the meta tag targets users of IE8 to allow them to lock in sites to IE7 rendering. This allows sites that worked in IE7 in 2007 to work in IE8 in 2008, 2009 and 2010. But if sites want to use new features inserted into IE8 they need to insert:

    Is there anyone sane that can’t see the scale of difference here? Looking back at the hacks and workarounds that were attempted in the past it is a miracle that any of the old sites would still work in ‘standards compliant’ browsers!

    It’s over six years since I last replied to one of Kevin’s pieces – I may not wait so long again.

    Do we still have ‘flame wars’?

  • tfurry

    Well, if you had been using a site for a long time with no problems, then updated your browser, and the site was now broken, who do you think gets the blame? If the site was always broken, then of course they would blame the developer.

    Again, most non-technical people I know would blame the site. They will assume that the tools they use, even if updated, have been thoroughly tested before release. They will also assume that something happened to the site to break it rather than think that the updated tool may not work as advertised. In fact, most non-techies I know are only dimly cognizant that IE is a browser…most of them click on the blue E to get to the “internet”, and they can’t figure out why “internet” starts with an “E”. :-)

    Is there anyone sane that can’t see the scale of difference here? Looking back at the hacks and workarounds that were attempted in the past it is a miracle that any of the old sites would still work in ’standards compliant’ browsers!

    Agreed, there IS a scale of difference. In the 1997 world, if I was obstinate enough to want left margins in an IE4-rendered image, I’d apply a workaround to get it (probably involving a blank.gif). With the new meta tag, I’m offering up my fine-grained control to the browser to determine what to do. In other words, does anyone seriously think that there won’t be IE8-only hacks to fix things even when it’s rendering in standards-compliant mode after we supplied the meta tag? :-)

    They should put a big red button on the main toolbar of IE8 with the message: “Having trouble viewing this site?”. In which case a “Yes” reply would revert the browser back to IE7, or 6, or 5, or whatever ancient version they choose to keep people locked in to.

    This is the most intelligent solution I’ve heard…combined with a default browser behavior of standards-mode rendering, it’s exactly what’s needed to move forward.

Recommended

Learn Coding Online
Learn Web Development

Start learning web development and design for free with SitePoint Premium!

Get the latest in Front-end, once a week, for free.