In defense of version targeting

We knew when we published this issue of A List Apart that it would light a match to the gaseous underbelly of standards-based web design, but we thought more than a handful of readers would respect the parties involved enough to consider the proposal on its merits. Alas, the ingrained dislike of Microsoft is too strong, and the desire to see every site built with web standards is too ardently felt, for the proposal to get a fair viewing.

The always dapper Mr Jeremy Keith provides a pleasantly thoughtful exception to the massive glowering.

Jeremy sees that version targeting offers a solution to the problem of keeping Microsoft’s Internet Explorer on the web standards track, but he quarrels with an implementation detail: namely, that if you omit the meta element that instructs IE to behave as a particular version—in other words, if you opt out—the browser defaults to IE7’s rendering.

Jeremy thinks, if you opt out by omitting the meta element, the browser should default to the latest version’s rendering, be that version IE8, IE10, or IE412.

I respect Jeremy—all the more so after reading his reasoned response to a bombshell proposal—but disagree with his reasoning on this point.

In his post, Jeremy provides the following example to prove that the “IE7 rendering=default” decision is broken:

Let’s say you’re building a website right now that uses a CSS feature such as generated content. Any browsers that currently support generated content will correctly parse your CSS declarations. Future browsers that will support generated content should also parse those CSS declarations. This expected behaviour will not occur in Internet Explorer. IE8 will include support for generated content. But unless you explicitly declare that you want IE8 to behave as IE8, it will behave as IE7.

It sounds reasonable, but it’s an unlikely scenario, and the exact opposite of what will happen over and over again out there in the real world of web development, which, for too many, is a fallen world.

Jeremy, since you are among the tiny minority of enlightened web developers who know what generated content is, and who care that IE8 will support it (and since you read ALA), you will know to include a meta element that instructs IE8 to act like IE8—or you will use “edge” to instruct IE14 to act like IE14. Easy-peasy. No hardship for you.

By contrast, the many developers who don’t understand or care about web standards, and who only test their CSS and scripts in the latest version of IE, won’t opt in, so their stuff will render in IE8 the same way it rendered in IE7.

That sounds bad, but it’s actually good, because it means that their “IE7-tested” sites won’t “break” in IE8. Therefore their clients won’t scream. Therefore Microsoft won’t be inundated with complaints which, in the hands of the wrong director of marketing, could lead to the firing of standards-oriented browser engineers on the IE team. The wholesale firing of standards-oriented developers would jerk IE off the web standards path just when it has achieved sure footing. And if IE were to abandon standards, accessible, standards-compliant design would no longer have a chance. Standards only work when all browsers support them. That IE has the largest market share simply heightens the stakes.

When I look at the scenarios of who is likely to do what where web standards and version targeting are concerned, the IE7 default for those who don’t opt in appears to be the correct design decision. Of couse I’m more than willing to be proved wrong.

Regardless, the discussion raised by Mr Keith is exactly the kind of discussion our community should be having.

Unfortunately, the conversation we’re mostly having so far is neither thoughtful nor helpful. But perhaps when the shock dies down, a few more people will consider the merits of version targeting.

To help them do so, let me break it down the way I did for myself:

  • With version targeting, IE stays on the path of web standards.
  • Without it, ineptly made websites “break,” putting IE’s standards compliance at risk.
  • If IE were to stop supporting standards, standards would stop working.

I’d love to live in a world where the vast majority of websites were compliant and accessible. But that’s not the real world. At least, not today.

Today too many sites aren’t semantic, don’t validate, and aren’t designed to specs of the W3C. Idealists think we can change this by “forcing” ignorant developers to get wisdom about web standards. Idealists hope, if sites suddenly display poorly in IE, the developers will want to know why, and will embark on a magical journey of web standards learning.

You feel that way because you are special.

You care about semantics and accessibility because it’s right.

That’s how we’re going to get more converts. By persuading more people that it’s right.

We won’t get converts by breaking sites and ridiculing their creators for not knowing as much as we do.

I commend Aaron Gustafson for his courage and intelligence and thank him and his small band of colleagues, and the engineers they worked with at Microsoft, for offering a way forward that keeps web standards front and center in all future versions of IE.


Discussion is now closed, but you can enjoy the 235 responses that came in before we shut the iron door.

[tags]microsoft, IE, versiontargeting, alistapart, ALA[/tags]

265 thoughts on “In defense of version targeting”

  1. If version targeting is the price I have to pay to get a build of IE that actually renders according to standards, I’m willing to pay it.

  2. Problem the first
    The first problem I see is that you’re saying, “Since Microsoft is a monopoly, we should do whatever we can to make them follow the standards, including adding new standards of dubious merit.”

    Microsoft will not be a monopoly forever. It is now, but it won’t be forever.
    Making changes to standards that only help them isn’t useful.

    If Microsoft wants to implement this, on their own, fine. But I don’t think any other browser should follow this.

    Problem the second
    The problem with having to tell IE8 to be IE8 (not IE7) is where will this be in the future? What version should FF behave as? FF2? How about Opera? Lynx? Will IE412 still act like IE7 even after XQML23 has become standard?

    Problem the third
    Why does a web developer need to know about all the different browsers? If you make the browser act like something that follows standards, them people code to it. The only reason there are any problems right now is because IE6 sucked so horribly and amount of change between IE6 and IE7 was huge!

    Once IE8 comes out, more businesses will adopt IE7 and then it’ll be the standard. When IE9 comes out it will have much less impact. Why? Because the “ignorant developers” will make it work with what they have.

    The cure is to get a decent browser in their hands, not to pretend a decent browser is “no good”.

    The Final Problem
    This bit has no merit with regards to your arguments for or against this META tag.

    Aaron said:
    This is exactly what our group decided to recommend for IE8, and we hope to see it implemented in other browsers as well.

    It was pretty clear he meant the Web Standards Project by “our group”.

    However, it has become clear that it wasn’t WaSP that recommended it.

    This is dishonest.

    Ciao!

  3. I support version targeting but the part that confuses me is that if the tag is excluded, it defaults to IE7.

    If the meta tag is left out, and a valid doctype is left out, will the browser revert to quirkmode or IE7?

    If there was some sort of beta browser to test all of this out on, I think a lot of people wouldn’t feel so uneasy.

  4. Amen and amen.

    My one continuing frustration with the standards community is a lack of understanding of where these old, non-compliant sites are coming from. Most of them aren’t stick-in-the-mud designers who were raised on HTML 3 and you can pry their tables from their cold, dead fingers.

    No, they’re mostly small organizations like academic departments or small businesses who can’t afford to hire developers and designers on a permanent basis — if they can even afford to hire them on contract. These sites are often maintained by people for whom the Web is a tertiary part of the job. In my academic institution, one school’s website is maintained by the school administrator, and her main job is watching over the school’s budget. The web is something she’ll do every few months when she has a free weekend.

    These are the people who call me asking why in IE7 their site design failed spectacularly. And I then spend hours looking through their code trying to ascertain whether there’s anything salvageable, and usually end up telling them that they’re looking at hiring someone at $X to redesign their site, and that’s $X more than they have available to hire someone to do so.

    I don’t like the meta tag solution. It looks and feels… gimmicky, like a hack. But I can immediately see the appeal. If I tell one of these designers to plaster a meta tag on all their pages that specifies IE6/FF2/Safari 2, then they can take an hour, put the tag in, and be on their merry way (until someone finally gets tired of the design and finds $X to get a real design crew in).

    The meta tag may be an annoying (though not exactly onerous) switch for standards developers to install, but it’s a nice piece of duct tape for those of us who deal with the resource-poor web people on a daily basis. As long as we see it as nothing more than a hack in itself (and not an essential), I think this won’t be anything more than just something more for those who like to throw rocks at Redmond.

    And I’m with Jeremy — it SHOULD default to IE8. Let’s start with compliance and deal with the non-compliant sites on a case-by-case basis. Telling those of us who embrace standards that we must install the switch suggests that standards are a “sometimes” implementation. Standards should be an “always” implementation. The switch should be used for those who can’t move to standards right now.

  5. Much of the discussion I’ve read seems to me to be perfectly reasonable, and not as rabidly anti-Microsoft as I would have expected. Many of the comments against the A List Apart articles seem to more or less echo what Jeremy Keith is saying. Maybe there is a balance to strike about whether developers should be forced to opt in, or enable an opt-out so there is at least an easy fix for corporate intranets and everyone else Microsoft needs to support. I’d guess though that the second course of action is even better from the point of view of Microsoft’s bottom line. As one Mozilla developer has already said, good luck with developing a mobile browser with watertight compatibility layers for five different browser versions. It just doesn’t seem to make sense for me, from any perspective, even if I could stomach this effectively proprietary meta tag as a temporary fix (and I could, if it really was temporary, and if the needs were that genuinely pressing).

  6. Forgive any kneejerking. Furthermore, I’ll try to keep it short and commenty, rather than diatribal.

    I liked the idea of Doctype (no switching, just that “this document is written in this version of this language”). Doctype is independent of browsers, and relates to itself and itself alone. Would that there were “doctypes” for CSS and JS (ignore the obvious issues at current time). Then we could custom tailor sites to what we had, and future browsers would understand mostly what we were trying to do. Perhaps some of our archival sites would have some “water damage” and “yellowing paper” (disgustingly poor connections to the library archive metaphor), but the gist would be there.

    Browser versions being proprietary, and very walled-garden-y, leave a bitter taste. Moreso because that becomes the default.

    The world is imperfect, and just because I’m hyper-anal about my ols and my uls, doesn’t mean ANYone (let alone everyone) else should be. But I would rather we make this a “graceful, supported hack” that could be used by choice, rather than the more forceful approach that it currently stands.

    And shout the technique from the rooftops. Conditional comments took time to be discovered, but they caught on like mad once someone shouted their uses. Let people know that if they want their sites to stay stable to a certain browser, this is how they can do it (easy to implement through a legacy site, even, esp. with a handy find/replace function in an editor). But it still feels to “hacky” for me to like the idea that it should be default.

    Granted, I’ve always used the Doctype as a way to declare what language I’m using, not as a way to serve specific styles to a specific browser, and maybe that’s why I feel this way.

  7. As i read most discussions about the progress of the shiny and new IE Developer Team, i’ve to say: They are on the right way. But most likely (and expected), several of ours are on the wrong way, just grabbing the whole arm as they forth one’s hand. We can’t change our industrie’s standards, our way of work, by bulling them. Where’s the ensurance we kept over our heads for so many years? I expect this to be one of the most interesting years in Web Designs history so far. But we shouldn’t forget about our goals: Don’t care about that browsers – care about semantics, style and standards. Am i right?

    By the way: Why’s everyone talking about “FF=2″ in this Meta Tag? Wouldn’t it be better to talk about “Gecko=1.8″? Please correct me if i didn’t understand about that.

    Stefan

  8. It was pretty clear he meant the Web Standards Project by “our group”.

    Not so. I clearly stated that

    … Microsoft reached out to The Web Standards Project (of which I am a member) and to several other standards-aware developers, and asked for our help in coming up with a better method of allowing developers to “opt in” to proper standards support.

  9. Regardless of the technical merits, something like this is always going to rub people up the wrong way.

    The problem, really, is that any hack like this – and from a technical perspective, this is a particularly gross one, it has to be said – is forcing the people playing by the rules to genuflect in the direction of Microsoft for eternity, in the form of cryptic runes in HTML or .htaccess, because of Microsoft’s own inability to produce a fully-functional web-browser in the past.

    In that sense, it’s punishing the wrong people. That’s going to be taken as a bit of an insult, and I’m not surprised that people are upset by it. Even though we all know this isn’t the motivation – everyone involved is no doubt behaving honourably – it’s just a little too redolent of yet another abuse of power from a dominant market player.

    Anything like this from Microsoft is going to be reflexively rejected by a lot of people until Microsoft have, essentially, shown penance and humility (regardless of whether that’s merited or not, and I don’t have a horse in that race). Anything short of Microsoft’s complete withdrawal from the browser market isn’t going to be enough for the extreme fringe, you’ve got to expect, so there’s always going to be some resistance; but some sign of genuine contrition from Microsoft would go a long way, I suspect, to smoothing the waters.

    And I guess in that light that the counterpart to your thought experiment is this: defaulting to latest-standards-mode, along with vastly more rapid deployment of fixed renderers as and when bugs are found, alongside the greater openness around the IE development process, would go a long way to showing that contrition.

  10. So by this reckoning, we should all start putting this meta tag in all the websites we’re building right now so they’re future proof?

  11. I understand the need for IE8 to default to IE7 behaviour, but the precedent worries me. It creates a good fix with only a tiny seam for now, but what happens down the road? Does the entire future IE family become an opt-in mechanism? Will every page I code now require a “yes, I can handle your browser” tag, forever?

    It’s a step that takes us maddeningly close to the idea of freeing sites from the chain of browser quirks, yet keeps one iron link holding fast. (Next step: freeing blog comments from bad metaphors.)

  12. It seems strange for a large software developer (i.e. [or should I say IE] Microsoft) to spend lots of time and effort on a new product, only to make it so that, to use all the new shiny features, you have to do a little dance and place some extra code -just so, in the HEAD, after the TITLE, but before the other METAs- in the markup. So what you’re actually getting is a new piece of software, that calls itself IE8, but in reality just is IE7 in disguise – unless you ask real nicely, and use the magic spell…

    I think that in IE8 the default should be IE8; but render as IE7 when asked (with version targeting); and use Quirksmode when the DOCTYPE calls for it or is absent.

  13. Stefan: Excellent point. Semantics, style, and standards matter. We, the implementors, simply want to make stuff that works; end users simply want to use the web wherever and however they can for whatever they want. Browsers should have little ego. They are the voice, not the language nor the narrative. An interpreter, if you will.

    I believe that most intelligent, passionate, and (right now) riled and vocal designers and developers are concerned about this very issue. We’re talking about coding browser references directly into our HTML, a clear violation of browser agnosticism.

    I’m all about pragmatics. And this is a pragmatic proposal. It’s also cynical. DOCTYPEs aren’t a lost cause, and ineptly made websites and browser upgrades aren’t breaking the web. I’m sorry, they’re just not. Most of the sites trafficked by the highest percentage of people have long ago become at least Firefox capable (retaining compulsorily IE6/7 support). There are all sorts of reasons for that, but it’s a trend I don’t see being halted anytime soon.

    Browser developers, especially the beleaguered IE team, have enough to worry about without yoking them with the X-BALL-CHAIN of implementing more and more and more retro rendering engines. Microsoft cannot “break the web” that badly with subsequent versions because they’ve moved so far already from the deficient standards support of yesteryear, as The Doctor notes above.

    This plan may’ve had more significance before IE7 was released. We’re not gonna have grand new specs to implement for quite some time. Promising backward compatibility for an entity clearly still in its adolescence — the Web itself — well, it just seems like we’re not letting it grow… pains and all.

  14. “To hell with bad browser”. Once upon a time this was a title of an article that kicked the butt of developers and browser makers alike and that did push us forward. Microsoft was one of the main offenders being referenced.

    Everyone has been very frustrated with the slow progress, Microsoft being pointed at as the main culprit.
    All the moaning finally convinced Microsoft to move forward, partly because pages were breaking and the gap between IE6 and ‘the rest’ was becoming wide and Microsoft’s dominance was sliding a bit.

    I think everyone can understand Microsoft’s problems. I think that everyone can empathize with the poor browser developer who has to endure the tirade of the marketing manager with foam on the mouth shouting that they must immediatly stop breaking the websites of their precious corporate clients, because the marketing manager fears for his end-of-year bonus.
    Everyone who ever made a web page has at some point in time had the unpleasant suprise their pages just stopped working. Everyone understands that maintaining a huge website with an enterprise scale CMS is a daunting task. I think everyone agrees solutions are needed. But is this the solution we are looking for?

    Your reason for disaggreeing with Jeremy is that in fact you hint at the possibility that Microsoft will stop developing their engine if we do not adopt the IE7 baseline rendering as a default. The standards once again will be bowed down to Microsoft’s way, once again. And that’s “not considering the proposal”?

  15. Aaron said:

    It was pretty clear he meant the Web Standards Project by “our group”.

    Not so. I clearly stated that

    … Microsoft reached out to The Web Standards Project (of which I am a member) and to several other standards-aware developers, and asked for our help in coming up with a better method of allowing developers to “opt in” to proper standards support.

    I didn’t include your “other standards-aware developers” in the list because you didn’t name them. You only named WaSP.

    So, I did make a mistake. I should have said:

    It was pretty clear he meant the Web Standards Project (and some other people) by “our group”.

    Ciao!

  16. Something no one appears to have spotted in all this is that IE8 is the answer to the problem of testing IE. It would be possible to get it to render web pages using any previous rendering engine?

    For me, as a standards aware designer and progressive enhancement kind of guy, I can just set an HTTP header to edge and nothing changes from how I work now. Note I said the HTTP header rather than the meta tag – a few people I think missed that and keeping saying thinks about adding the tag to every page rather than do something once on the server.

  17. How is this meta tag “opt-in” any different than the “opt-in” that is required for the DOCTYPE switch? You still have to place the DOCTYPE just so, at the very top of the page in order to get the shiny new rendering engine, otherwise you’re just getting quirks mode.

  18. “Alas, the ingrained dislike of Microsoft is too strong … for the proposal to get a fair viewing.”

    How about some of us *did* give a fair viewing and *still* reached the conclusion that the proposal is a crock o’ crap? There’s a good reason why so many of us have reached that very conclusion.

    You argument on default rendering is so wrong-headed it’s difficult to consider this is the same Zeldman who carried the Standards Banner in the early days. What you’re advocating is dropping web development in to pit – the IE7 pit.

    Each browser should be the best it can be – you must’ve noticed Firefox and Opera stealing market share from M$ IE over the last few years? There’s reasons for that. Firefox, et al

    “… many developers who don’t understand or care about web standards, and who only test their CSS and scripts in the latest version of IE, won’t opt in, so their stuff will render in IE8 the same way it rendered in IE7. … That sounds bad, but it’s actually good, because it means that their “IE7-tested” sites won’t “break” in IE8.”

    Apart from being offensively condescending, you’ve seemingly missed the massive flaw in your argument. With the scenario you describe, all of those ‘clueless’ web devs are going to continue knocking out non-standards-compliant junk markup and remain blissfully unaware because it renders just super dandy in IE8 (which they don’t realise is actually rendering as IE7).

    “Therefore Microsoft won’t be inundated with complaints which, in the hands of the wrong director of marketing, could lead to the firing of standards-oriented browser engineers on the IE team.”

    So, now the reason to introduce another layer of non-standard complexity to the web development process is to protect jobs at Microsoft?!! No further comment, your Honour.

    “The wholesale firing of standards-oriented developers would jerk IE off the web standards path just when it has achieved sure footing. And if IE were to abandon standards, accessible, standards-compliant design would no longer have a chance. Standards only work when all browsers support them. That IE has the largest market share simply heightens the stakes.”

    IE has NEVER been standards compliant and that doesn’t seem to have slowed Firefox, Opera, et al down too much.

    I don’t know if the rest of the article is written to a similar standard – I’d had enough at that point … it’s just hysterical nonsense, attempting to defend the indefensible.

  19. The whole outcry is because we see them doing what is quite possibly the worst thing imaginable at a time when they could instead finally do something to make the pain go away.

    By adding this switch (an opt-in for standards compliance) they are effectively saying “hey, it’s ok to provide bug-dependant websites, browsers will support them”. They are validating and promoting the existence of buggy sites and therefore buggy non-standard browsers. It’s just plain wrong.

    Make IE8 work like IE8 by default. If your site breaks, then – and only then – add the meta tag to beg for IE7. Adding the meta tag will be easy for the small number of sites that require IE7 (ie. those sites that still ignore the 10-20% of non-IE browsers such as FF, Safari and Opera) and act as a warning shot letting the site owner know that they need to start working towards standards-compliance as their days are numbered.

    As for the argument about small communities, etc., being penalised, I really don’t think they would be. They just add the tag – heck, free software will quickly appear to add the tag to all HTML files in a folder. If they are using a CMS, get the CMS to add the tag. We can’t stay stuck in the dark ages forever.

    Decide for yourself whether you want to take the blue pill (opt-in standards) or the red pill (standards by default):

    http://annevankesteren.nl/2008/01/ie-lock-in#comment-6396

  20. “Therefore Microsoft won’t be inundated with complaints which, in the hands of the wrong director of marketing, could lead to the firing of standards-oriented browser engineers on the IE team.”

    Or they may not.

  21. DavidOne (above) says:

    With the scenario you describe, all of those ‘clueless’ web devs are going to continue knocking out non-standards-compliant junk markup and remain blissfully unaware because it renders just super dandy in IE8 (which they don’t realise is actually rendering as IE7).

    At the same time I’ll be making sites that take advantage of the real IE8 engine to make my sites better for my clients. While they are going “how did he do that?” I’ll be winning new business (from them). In order for them to keep up with me the ‘clueless’ web devs need to learn enough about web standards to take advantage of IE8, or go away, or stay making IE7 sites for ever for clients that don’t want the latest snappy features they see online.

  22. in one of the early comments, DW says:

    These are the people who call me asking why in IE7 their site design failed spectacularly. And I then spend hours looking through their code trying to ascertain whether there’s anything salvageable, and usually end up telling them that they’re looking at hiring someone at $X to redesign their site, and that’s $X more than they have available to hire someone to do so.

    if the behaviour was reversed, and IE8 rendering was the default, you’d be able to simply tell her: “just put this line of code in all your pages, that will magically ensure that it works” (that line being the meta that triggers legacy rendering).

  23. Gareth Rushgrove said:

    At the same time I’ll be making sites that take advantage of the real IE8 engine to make my sites better for my clients.

    Of course, pragmatism will make many of us, including possibly myself, use it for just this reason. But it doesn’t mean it’s a good idea, and it doesn’t mean the idea shouldn’t be nipped in the bud.

  24. How about if Microsoft adds a “feature” into IE8 so that the User can trigger an IE7 mode whenever necessary.

    Let’s call it the IE-Classic toggle button.

    You hit the button, and IE8 magically morphs into IE7 (skin and all) so that the users get to pick and choose how things render. Users can even “save” a preference for IE-Classic rendering on particular sites. Heck, you could even have the default browser setting subscribe to what the overwhelming majority of other user settings are set to for that particular site!

    Clients will get the picture that their site only works in “Classic” mode and enlighten themselves about how to code for IE8.

    Problem solved. Thank you, thank you very much…

  25. After a lot of reading and some hard thinking I think Jeremy is right. The meta could be a useful tool if the default is IElatest, not IE7 8 or any specific version. It would certainly make it acceptable to a large portion of developers that are currently opposed.

    “Easy-peasy. No hardship for you.”
    What? You don’t think going back and adding a meta to all the sites I’ve made over the last few years, or all of the servers I host from to get features working in IE8 just work in other browsers is a hardship? It’s extra work, even on top of all the extra work I’ve had to do with conditional comments and IE specific stylesheets, and forked javascript code.

    You must be spending your time sitting at a managers desk these days Jeffrey ;P

  26. The wholesale firing of standards-oriented developers would jerk IE off the web standards path just when it has achieved sure footing.

    …and as we all know, the last thing Microsoft needs is another jerk-off.

  27. Jeffrey,

    Your “defense of version targeting” (man I can’t believe you even wrote those words!) doesn’t even mention the consequences of DOM and scripting issues related to browser targeting. (If this were any other blog, I’d probably be suggesting your own book as a reference!)

    I think everyone needs to see this:

    JQuery’s John Resig brought up some major issues that seriously challenge the logic behind this meta tag solution.

    He brings up some excellent points that no one seems to be answering right now!

  28. Hang about. I know that we are focusing on Microsoft here, but why is it only their problem? We have had 12 different rendering engines from Firefox since version 2.0 was released – they suffer from the problem even more so than Microsoft does.

    I can see the point of the default rendering action, but I agree with Jeremy on that – the process should be opt in.

  29. Two things bother me. The first, that you assume that opposition to this idea surely comes from being opposed to whatever comes from MS. Far from it. I applauded MS when IE 7 came out and defended its decision before other developers who had made their sites IE6 only. I love the way in which when I develop a standards compliant site it almost always works fine in IE7 or requires very minimal tweaking.

    I applauded MS even more when it was announced that IE8 would be even more standards compliant.

    Heck! I even like Vista and wouldn’t go back to XP! How’s that for not being anti-MS?

    And yet, I’m opposed to the meta tag thing. It’s a step backwards in web development. Instead of boldly moving forward and keep championing web standards and use this as an opportunity to educate users (“it’s not this browser that’s broken, it’s the site”) and web developers (“you must refer to w3c standards to ensure wide compatibility”) they decided to give in to their corporate interests and perpetuate the problem.

    Yeah, some people would have suffered when they saw their sites badly rendered in IE8, just like they render badly in Firefox and Opera. And guess what? Many of them already went through that with IE7! Many of them are receiving complaints from their Mac owning and Firefox using friends!

    The change to IE8 would be no worse, perhaps even more positive since those sites made to work in IE7 would require minimal tweaks to work in IE8. For the rest, MS and the standards community could then have taught them how to fix them and make them work in all browsers at the same time. Instead, this divide between an “IE-only web” and an “all browsers web” will continue to exist.

    I’m sorry you think I’m too anti-MS to give serious thought to this point of view.

  30. So how long will this meta tag work for? IE9? IE10? IE(n)? How many rendering engines, javascript versions, CSS engines will IE carry around? Or will there be “file converters” that load the HTML and then convert it to the latest version? What happens to cross-frame compatibility?

    Being backwardly compatible is one thing, but this is trying to be *specifically* compatible to *particular* versions into the future. Even conditional comments had a “lt” and “le” option.

    Are you going to add a “IE8″ validation? Or “Best viewed in…” button back to your web pages?

    quirks mode, almost standard mode, not quite there standard mode, nearly made it standard mode, we really really tried standard mode, it’s our mortgage standard mode, what about the kids college fund standard mode…

  31. This may be a silly question, but given that Firefox extensions are capable of validating html code quite well…

    …why can’t IE8 be a little intelligent? Preview the code before beginning any rendering, and determine based on the code whether it needs to switch from a default standards mode?

  32. Without it, ineptly made websites “break,” putting IE’s standards compliance at risk.

    I’m confused, how does the skill involved in the execution of a website directly relate to the standards compliance of a browser? Either the browser is standards compliant or it isn’t, right? I realize your site has to be as well for it to matter but the former is in fact independent of the latter is it not?

    Having to convince it on every site I make that it can in fact support those standards may not be a huge future impact in the grand scheme of my snippets library, but it is silly – IMHO – and another check mark on the list o’ lame that is anything IE.

  33. Though it’s not the main point of my comment, I’d like to mention up-front that writing people’s objections off as ingrained Microsoft dislike sSeems a little bit condescending to me. Moving along:

    I think many people are taking issue with this because they are already developing the ‘right’ way. Why should they have to do something more (no matter how trivial) to ensure that their good work in the future benefits from the improved browser environment. The onus should be on the people who are doing things the ‘wrong’ way to take that extra step (or as Jeremy puts it, they should have to opt in to old-school rendering.) Of course that won’t happen (they’re still not using doctypes, for Pete’s sake,) which is why the current proposal is probably the only way to handle it.

    Even accepting that the burden has to be on the already responsible developers, I wonder why IE 7 is the fallback browser? Many, many, many sites haven’t been updated for IE7. If IE7 is the new default rendering, where does that leave developers that don’t know even how to code to that standard? If you’re going to have a fallback, you may as well use the gold standard in incorrect rendering; the one that the entire web was coded to for 5 years: IE6. If you’re going to implement something as logically backward but seemingly necessary as this version targeting, you may as well do it in the most backward way imaginable.

  34. I freely admit that Mr Meyer is far smarter than I, Mr Zeldman far wiser than I, and those they listen carefully to even more so. I don’t expect to understand all the possibilities of this change. But it feels as though some basic presupposition of standards-based development are changing.

    I’ve promoted standards as “Code to the standards! Do what is right, and the rest will follow.” I’m not daunted by learning proper (X)HTML (even, shudder, HTML 5 if necessary), CSS 1/2/3/x, DOM, XML, XSLT, and whatsoever other standard we deem best suited for the task. I’ve actually done fairly well developing browser-agnostic sites (selkirk.ca, accepting that minor rendering differences are inevitable as browsers support standards in different ways.

    Testing in multiple browsers is fine, expected, understood, and accounted for. But actively identifying which browser a site is built for… it feels like hiding a “This Browser Best Viewed In…” animated .gif on the page.

    I trust Mr Zeldman that it isn’t, it really isn’t… but I can’t help feel a little dismayed at where we’re headed today. It doesn’t feel like the happy, fluffy world of user-agent blindness that I imagined when I dove into web standards in 2003, starting on this very site.

  35. I don’t trust Microsoft to follow through on this. Their current team may have the best intentions, but I do not have faith that some IE8 or IE9 management committee won’t just decide that all web pages should benefit from the great new rendering engine, or that maintaining backwards compatibility is really hard.

    In a few years either MSIE will be rendering most of the web as crappy old IE7, or Microsoft will abandon this commitment, or they will just be irrelevant on the web. In the meantime I’ll continue to author for standards, grumble and apply fixes for the latest MSIE where necessary, and, I suspect, completely ignore version targeting. Good luck, MS.

    Seven years ago we said to hell with bad browsers. Standards are higher now. To hell with fair-to-middling browsers.

  36. While I reserve my opinion until I really sit down and think this through… I’m very wary of having the monopoly dictate the web standards. There has to be an inherent danger in going down that road…

    but like I said I’ve only just run across this and don’t want to instinctively push against my own prejudices…

    and I have to say from the comments there is some truth in some of the criticisms even if pragmatically I can see your point too Jeffrey. Does it come down to selling out our ideals for the real world reality that MS runs the show?

    Don’t get me wrong because I think I can see where you’re coming from. I just don’t think I’m going to agree with you on this one (but need to let it settle before throwing those tomatoes)… :)

  37. Isn’t this move, apart from being questionable, a little late? If Microsoft had invented this for the transition from IE6 to IE7, I would have understood. But if IE8 is released in a not too distant future, then people should already be used to websites breaking in new versions of IE because of ancient bugs.

    The point that you shouldn’t force people to go standards compliant by giving them an engine that breaks is good, in theory. However, I cannot imagine that the problem for the transition to IE8 will be so much more unbearable than for the IE7 transition.

  38. Jeffrey:

    And if IE were to abandon standards, accessible, standards-compliant design would no longer have a chance. Standards only work when all browsers support them. That IE has the largest market share simply heightens the stakes.

    You’re effectively saying here that we’re being held to ransom by MS — whatever our objections, we have to go with it, or else they stop supporting standards altogether.

    If that’s really the case then fine, let them do it. But does the web standards movement need to support it, and pretend it’s some kind of standard?

  39. By contrast, the many developers who don’t understand or care about web standards, and who only test their CSS and scripts in the latest version of IE, won’t opt in, so their stuff will render in IE8 the same way it rendered in IE7.

    So these designers will continue to have no incentive to write proper standards-compliant code, since they’ll be working to the broken IE7 rendering / behaviour model. Not good at all for the progress of standards.

    Far better is to force those who made poor choices in the past by working to IE7 implement a simple 1-line fix to get their legacy site to render under the IE7 engine. I’m sure the MS folks can get the message across: “Broken site in IE8? Add XXX to fix it.”

    If IE8 (in full standards mode) also changed the browser string and stopped responding to CSS hacks and the previous conditionals (conditionals could still be kept with an alternative trigger string to IE) then pretty much every site that was also able to work in Firefox currently would have no problems with IE8 in standards mode.

  40. The meta switch may be an appropriate way of improving the authoring and browsing experience for the majority of Web users, but please don’t suggest this is anything to do with standards in the traditional sense.

    Either a vendor supports the specifications as defined for all implementations in their own implementation or they don’t. If an implementation-specific piece of markup is needed, then they are not following standards. At best this is a vendor-specific fork of the specifications.

    The history of browsers strongly suggests that having to design for specific implementations leads to a huge waste of resources, and that the net effect is increased deviation from standards. On both counts, by blessing this approach, this proposal is broken by design.

  41. If IE8 is as standards-compliant as the ACID2 is telling, then these Dont-break-me-pages actually break in every contemporary browser. MS cannot break these pages and abandoned intranet places, but the lock-in will grow up as an isolated application, since Safari, Firefox and Opera representatives do not support the idea.

    “Version targeting gives our team the ability to decide when to offer support for a new browser and … the much-needed time to make any adjustments necessary …” [Gustafson, ALA 251]. In fact nothing is won unless all browsers will support a lock-in.

    And even in the case that all vendors would join to help MS: browser-wide version targeting would give a boss the ability to tell the team to lock-in a company’s site to reduce costs. If a growing number of sites became locked-in, why should this lead to a faster standards evolution? Once the lock-in-string-statistics tell us what fragments of the standards to support, there will be stagnation.

    Back to IE: Why should IE9 break pages that were designed for a reasonably-conforming IE8? Granted that MS needs this switch from IE6/7 to IE8, on the cusp of interoperability, but why is this switch needed from IE8 to IE9?

    A new switch for IE8-only that simply says: “treat this page as if the author had standards in mind, this time for real” is enough for the moment, even if the old DOCTYPE-switch was corrupted by non-conforming implementations, even if it is not a perfect solution.

    Don’t implement a lock-in that cannot be taken back later on without really “breaking the web”.

  42. No less an authority than PPK will be writing about the consequences for DOM scripting in an upcoming issue of A List Apart.

    The onus should be on the people who are doing things the ‘wrong’ way to take that extra step

    But many won’t; for them, IE7 behavior makes sense as a default (since they did at least test in IE7).

    I co-founded and for several key years led the group that got standards in our browsers and persuaded designers to learn to use them.

    I publish the magazine that has long championed standards-based development.

    I wrote the book that created standards-based design as a category, shaking up publishing as well as web development.

    I’m well aware that it will be a better world when every developer creates semantic, accessible websites. I’ve written and published and lectured all over to try to bring about that outcome.

    I also know that we’re not there yet.

    And sites “breaking” (suddenly no longer displaying or behaving correctly with the introduction of a new browser) won’t magically get us there. Whether Microsoft follows through on version targeting or not is irrelevant to the goal of educating web developers about standards. A “broken” site won’t lead masses of developers to become educated about standards. That argument – that the default should be to break the site – doesn’t hold up, because it assumes that developers will do the right thing.

    Many just won’t.

    This doesn’t mean we stop putting educational materials out there. It doesn’t mean we stop trying to persuade our colleagues that standards and accessibility are in their interest.

    It means we don’t ignore the fact of widespread developer ignorance of standards-based design.

    It means, if the default Microsoft proposes helps mitigate the negative effects of widespread developer ignorance of standards-based design, we at least consider the possibility that Microsoft may know more about standards-unaware developers than we do, and they may have a point.

    Developers who want the default behavior to be latest can opt in via “edge.”

    The scenario Microsoft seems to have had in mind is more probable than the one Jeremy Keith raises. That a developer will want IE8 to behave like Firefox, Opera, and Safari where generated content is concerned, but won’t know to write the meta element that IE8 requires to behave like IE8, is far less likely than the scenario of the standards-ignorant developer not knowing or caring about any of this, and being shocked when his site goes blooey in IE8.

    Statistically alone, it makes more sense to protect the ignorant (and their clients) from themselves and to ask the educated to do a little extra than to expect the ignorant, who already don’t do enough, to magically gain knowledge and skill and do more.

  43. Jeremy, since you are among the tiny minority of enlightened web developers who know what generated content is, and who care that IE8 will support it (and since you read ALA), you will know to include a meta element that instructs IE8 to act like IE8—or you will use “edge” to instruct IE14 to act like IE14. Easy-peasy. No hardship for you.

    So is Microsoft going to pay for the development of adding these tags to all existing websites I have developed using web standards because I was explained to my YOU, they would be future proof?!?

    I thought not….

  44. I totally agree that it’s unfortunate how many people have reacted with such bile towards these articles – and their creators – and that this discussion will probably be more useful once passions have cooled a little.
    That said, I think that this is probably as much to do with the sudden ‘unveiling’ of these plans on ALA (especially after a fairly long period of inactivity). I expect many people who feel (perfectly justifiable) anxiety about what this will mean for them, also feel like this was dropped on them – from way above their heads – by those who usually help them to make sense of these issues.
    Of course there is the extremist crowd – there always is – but there are also a lot of very reasonable questions which nobody has attempted to answer just yet. From the ALA comments there’s a definite message that people feel like web standards are being betrayed – whether that sounds over-dramatic or not – and writing off these anxieties as ‘the usual anti-Microsoft sentiments’ is not doing the debate any favours!
    With that out of the way, I’m also with Jeremy Keith (and others on this). Although the usual “I’m not a browser manufacturer” caveat applies, I don’t think it’s beyond Microsoft to put a toggle button on the menu bar, allowing users to toggle back to IE7 rendering if a site is broken under IE8. Browser lock-in metatags are a hack, and any advantage this idea might have will be lost if it’s handled in this way. And telling your readers that we need to do what Microsoft says because ‘someone evil might fire the IE team’… You’re a much smarter guy than me, but that’s pretty tenuous.
    Apologies if this sounded negative – it genuinely wasn’t supposed to be. I’m not the sort of rabid standards advocate who starts screaming when sites have a couple of non-encoded characters. But putting the onus on standards advocates to put MS-specific ‘opt-in’ tags into our pages, simply because we will, is not the way forward.

  45. Apologies for the formatting on my little moan – I thought it would put in the extra spacing between paragraphs. I think this may be the first time I’ve ever commented on a blog post, so I hope you will all let me off…

  46. I understand fully the idea that standards-aware developers will know how to get their sites to render with the latest and greatest rendering engine, and our less knowledgeable brethren are less likely to. So from that perspective I can see why you come down on the side you do. Microsoft’s business interests are partly ours too if we develop for the real world.

    But leaving aside the practicalities of Microsoft implementing this (the knock-on effect could even be the demise of IE – and I certainly wouldn’t want that), can you name one thing that works in IE7 that would “break” in a standards-compliant-standards-mode-by-default IE8? Just one?

    I love a robust discussion, as I think this is, and I’d love to be proven wrong.

  47. Fact is all these negative reactions are not a surprise. Web standards advocates
    are most of the time idealists, their idealism is what makes their business run,
    why they passionately write and code and speak… (Mr Meyer’s
    dialectic exercise
    is nothing more than the battle of an idealistic mind against its businessman
    counterpart.) By definition,
    an idealist may indeed find it difficult to swallow the truth that is.

    The thing is if they don’t silence the voice crying inside
    of them that this is bad, they won’t ever be able to understand to which order of
    magnitude, in practice, this will affect their business.

    Browser targeting is nothing more than a security belt, it needs to be worked out and
    thanks to the WaSP, you, as clever standardistas, are able to bring
    your ideas on the table. Remember, they don’t want to
    break the web, that means they endorse the responsability that it will not
    ruin all our efforts in creating forward compatible techniques, javascript
    libraries, css patches for buggy browsers, and so on. The fact that it may bloat browsers is
    actually none of our business, it’s their responsibility to keep technology
    accessible
    .

    Basically, it just gives you more choice. After all, if you think your markup/styles/scripts
    will resist the test of time, it’s as simple as that:

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

    I don’t agree with Mr. Gustafson that it is to be discouraged. Given that, as Mr
    Zeldman points out in his post, those who use X-UA-Compatible are
    perfectly aware of its purpose, I don’t see why this feature is dangerous. It
    is just a marked up translation of

    I agree with the fact that this page doesn’t use dangerous techniques that
    may make it wreak havoc with future browser versions, but I will correct any mistake
    if time proves me I’m wrong

    Nothing unusual here.

    The difference is for those who want to harness their webpages, who don’t have
    time or budget to fix any unintended behavior or if simply they’re not able to
    measure the risk their page breaks over time, for them this feature is really
    a life saver. And Mr. Gustafson gives
    a very good example
    where it will be useful: critical applications, like online banking for instance.

    Is this really bad? Well, it’s just a very good occasion to create The ‘Living on
    the edge’ Zen Garden
    !

  48. I’m going to go with Jeremy’s request for sites to use the latest rendering mode unless the meta tag say otherwise.

    Why? Because I think the people writing IE version specific code that breaks should be the ones forced to either fix their code, or include this kind of meta tag hack.

    If they are so ignorant that on the release of IE8 they have sites that break in it, and don’t even know about the meta tag to even know to include it, then tough bull for them IMHO.

    I didn’t have problems when IE7 came out, I don’t expect to have problems when IE8 comes out, yet I’m the sort of person being told that I will have to add a new meta tag hack to all my web pages to make IE8 act like IE8.

    Why are we being given a recommendation for all standards based coders to use a hack when we should be engaging the ones who don’t know what the hell they are doing and still curning out IE only crap?

  49. Zeldman: “The wholesale firing of standards-oriented developers would jerk IE off the web standards path just when it has achieved sure footing.”

    This is called Stockholm Syndrome. Microsoft are holding web standards hostage. The principled reaction is to hold firm and not comprimise our web standards platform.

    Zeldman: “And if IE were to abandon standards, accessible, standards-compliant design would no longer have a chance.”

    No. IE would no longer have a chance. Remember, development on Internet Explorer only restarted because Firefox posed a threat to Microsoft. As it stands, Microsoft cannot afford to stop development of Internet Explorer and risk falling further behind.

    We should encourage Microsoft to adopt standards, but not compromise the benefits of web standards to favour them.

    We are here to encourage the adoption of web standards, not prop up a company that has a long history of subverting open standards and locking people into their proprietary silos. The problem is the volume of Internet Explorer only websites – that is a direct result of Microsoft’s poor handling of open standards.

    I will continue to encourage Microsoft’s unconditional support of web standards, but I shed no tears for the backlash it feels because of the large number of customers locked into an IE-only silo.

    Microsoft alone have promised eternal backwards compatibility of IE-only sites – it is clearly their problem. We cannot support, or be seen supporting a lock-in standard. If Microsoft cannot reconcile their IE-only customers and web standards compliance, then it indicates a failure of their Internet Explorer product, not a failing of the Web.

    Version targetting fails for the very reason Microsoft claim its needed. To protect its IE-only clients, Microsoft have to commit long term to the maintenance and bugfixing of IE7. We as web standards authors cannot ignore IE7 and older browser, so we’d still have to support those browsers for as long as Microsoft clients still have IE-only websites. You’d always have to test in IE7 and IE6 – its now not going to go away.

    That means IE8, in its current form, is dead in the water. Microsoft need to do a Netscape and end of line its browser, and start again. What the world needs is more Firefoxes, not more Netscape 4s.

    I remember your original call to arms on web standards was called “To hell with bad browsers” – that message is still clear even if you have forgotten it.

  50. Oh, and by the way, I resent the implication that not liking the idea of the meta tag makes us all deeply ingrained MS haters. That’s not the case, and calling names like that hardly helps the situation.

  51. It’s all well and good till we question WHY anyone would propose this. Since when did Microsoft become so concerned about backwards compatibility? Oh, wait. That’s right – they built an entire monopoly on it.

    IE7 is the first time in the company’s history that they did the right thing and put standards compatibility ahead of proprietary compatibility. And what happened? *They lost market share*. Introducing genuine fixes in IE7 “broke” the web because Microsoft had successfully lured everyone into developing for their platform, not for the web. Suddenly, they changed the rules (through a genuine intent to do the right thing, I believe), and what happened?

    IE7 drew peoples minds to the fact that the “internet icon” they were using a web browser – a bit of software that could go wrong, and that (gasp!) there might be an alternative to!

    FireFox, being built to work *with* the web, hasn’t broken yet. Each release breaks the web less. Why? Because the rendering engine is *more* standards compliant. Same with Safari, Opera etc etc. Spot the odd one out yet?

    So what happened? IE7’s launch vector forced a lot of people to *have* to have it, and boom – b0rked interweb. “Can I go back to the way it was please?” Nope – no reinstall of IE6 for you!

    So, choice? Live with broken internet or change to FireFox (or any other alternative). So a lot of people did.

    This is Microsoft’s worst nightmare, and I suspect it’s MUCH harder to do “web standards compliance” work at Microsoft now than it ever has been. Suddenly, MS’s platform is shaky. Vista hasn’t helped, either, but if Google is going to own the online space, at least MS wants you accessing it through their platform.

    Let’s be honest, here, Internet Explorer is NOT a web browser. It’s an ActiveX platform that handles proprietary HTML-like code, which unfortunately due to heavy bundling, most people use to access the Internet. MS *can’t* keep it ActiveX-compatible and still produce a standards-compliant browser.

    So what do they do? They seek to re-establish the IE engine as the “de-facto” standard for browsing.

    And you guys fall for it.

    It’s easy to see why. We’ve all dealt with the complaints from clients/visitors about broken sites etc. I tend to charge them for fixes, since contracts state what versions of browsers the site is reliably tested in. This usually causes some resentment towards MS, but you know what my clients usually do? Do they blame me? Do they get fed up of standards? No, they switch. And they become vocal proponents of better browsers. Suddenly they see a choice, and they want the browser that works.

    Some of them even point me to an article called “To hell with bad browsers”. Ah, the good old days.

    The point is that here we are. Standards are WINNING. Another year or so, and Firefox will have serious traction.

    So MS are back to business as usual. The “next version will be great!” stalling tactics are back (IE8 is where? It can render acid2? You mean like Vista has a brand new metadata-based file system?), and this X-UA olive branch is actually a hand grenade, trying to sneak the IE7 rendering engine in the back door as the standard to aspire to.

    Because that’s what this is – an attempt to prop up a flagging platform by scaring developers into “pragmatic” solutions that fuck their long term goals. Using the “scare tactics” of backwards compatibility with your old sites is the sneakiest part – it screams of “accessibility” and “open-ness”, and “write once, deploy anywhere”, but the truth is that MS want it on their terms. THEIR backward compatibility.

    So let’s adopt this. Five years from now, IE7’s rendering engine will be the gold standard for web design (why not? You can GUARANTEE it runs in every browser, right?) and Firefox, W3C et al will be dead. What use will they be?

    Here’s a key question that’s been ringing in my head since I read all these frothing articles, MS lovers, haters, and not-carers on all sides: If MS are so concerned about “compatibility” and “interoperability” and “stability” and “longevity” then why don’t they simply walk the walk:

    Why isn’t the rendering engine in Internet Explorer 8 Gecko?

    I’m serious. So serious, I’m going to say it again:

    Why is Microsoft not using Gecko as the rendering engine in Internet Explorer 8?

    Why not use a proven, compatible and workable solution? Why not build browsers on features? Why do we STILL have so many rendering engines?

    X-UA is a sap – it’s a lure to shore up flagging market share. It’s a damn good one too. I didn’t see what all the fuss was about at first. But let’s get this straight:

    1. IE7 will become the only web standard to care about

    2. The whole thing is technically unfeasible. (it’s hard enough to get IE6 and IE7 to run on the same machine right now. How will you run IE3-IE9 in four years?) Because of this, I cry “bullshit” and claim this is classic MS kill ‘em with promises tactics.

    3. Who wins here?

    Short term:

    Developers? Sure, we’re lazy. One platform to develop against? Hell, we could win RIGHT NOW by deciding to support IE7’s engine.

    Users? Sure – they only care about sites working, so if they work, great, right?

    Microsoft? Well, hell yeah, but we knew that.

    Firefox et al? Well, sure, but only if they adopt IE7’s engine, or start emulating it.

    Long term:

    Developers? I know you loves you some glacial pace, but IE6 to IE7 was how many years? For what? And that was driven by competition. Remember guys, long term we only have one platform.

    Users? See above. Glacial pace = slowly fixed bugs and buggy patches. IE6’s ubiquity and embeddedness hardly slowed malware spreading.

    Microsoft? Well, hell yeah, but we knew that.

    Firefox et al? They’ll do fine. There’s plenty of space for all of you. Look at Netscape! Oh, wait.

    There’s a reason we cared about standards once, and it wasn’t so we could go and pick the de-facto “last standard standing”. It was to stop the market being sewn up and owned by one company who had their own anti-user interests at heart.

    What the hell happened? This used to mean something. This used to be Sparta. I guess these days we hand out tributes of corn and land to anyone that asks.

  52. Sure, defaulting to IE7 makes sense in the immediate future (currently defined as “when IE8 launches”). The problem is in 5 years when IE12 launches. Is it still going to revert to IE7? What about when IE412 comes out?

    We have no idea what the web will look like in 10 years, but yet this tag is forcing a freeze to the way the web behaves right now. You cannot say that in a few years we will change the default, because then that defeats the entire purpose of the tag.

    The most logical execution for this tag is that when it is not there, it defaults to the latest engine. If I am working in an environment where I know I need to stay with IE7 (internal dev, for example), then I “opt-in” with the tag, forcing future IEs that my company may roll to render in IE7, until I get around to updating the code.

    But in the wild, YOUNG web, we would be foolish to point to right now and say “this is the default for years to come.”

  53. To help them do so, let me break it down the way I did for myself:

    * With version targeting, IE stays on the path of web standards.
    * Without it, ineptly made websites “break,” putting IE’s standards compliance at risk.
    * If IE were to stop supporting standards, standards would stop working.

    Your first point is “With version targeting, IE stays on the path of web standards.” Well I have have these questions.

    1. Is this new meta element standard?
    2. Is a browser showing legacy by default standard?
    3. Are IE8 Conditional Comments standard?
    4. Is version targeting standard?

    The answer to all these question is NO. No other browsers need such non standard behavior to render things correctly.

    Your second point is “Without it, ineptly made websites “break,” putting IE’s standards compliance at risk.” Well have have these questions.

    5. I have a few old sites based on nested table layouts. Are these sites going to break?
    6. Is IE8 going to render my IE non-standard behavior Guillotine Bug and Float and Clear Bugs test pages correctly without this new meta?

    The answer to all these question is NO. The linked test cases illustrates this “break the web” falsity from the opposite perspective. A page that is coded to the CSS standards which fails miserly in IE. Should I be required to insert a new meta into the html for the pages to show is IE8 standard mode when the pages is already coded by the standards.

    7. Is IE8 going to show my IE non-standard behaviorFloat and Clear Bugs test page correctly even when in IE8 standard mode?

    If your don’t know the answer to this, why are you blindly going along with this proposal and calling it a step towards “web standards.”

    Your third point is “If IE were to stop supporting standards, standards would stop working.”

    Sorry Zeldman, but IE can just fade away and we can finally begin the move to the open standards web. A revolution it is indeed.

  54. Mr Zeldman,

    I’m more disappointed in how this option was presented to the community than opposed to the option itself. It’s not a bad idea — it was just presented as a bad idea. Which is a shame because I know it would help. I’ve worked on sites with legacy code that for many practical reasons cannot be updated fast enough (it’s truly unfair to call the developers who work on these sites lazy or uninterested in standards — in my experience that’s not been the case).

    Aaron’s article opens with “Progress always comes at a cost.” And then goes on to explain why version locking is the best solution (using the “edge” keyword is mysteriously “strongly discouraged”) because “even Eric Meyer can’t predict layout or scripting bugs that may be accidentally introduced by a new browser version.” (We all know he’s talking solely about Microsoft — though he maintains an air of inclusion, this really doesn’t apply to the big open-source browsers.) Which casts Microsoft as the monopolizing bully that makes our lives as developers harder, when actually this meta tag is a solution that would help a lot of folks out there.

    Also worth noting: this solution was presented as a done deal when I think there are valid reasons to continue the discussion around how it would be implemented (JavaScript? security bugs?).

    In his own post on ALA Eric Meyer seems resigned to it — he lists many reasons why it’s a bad idea and then says that he’s going along because “We’re not reaching everyone, and probably never will” and “We say forward-compatible development is the mark of a professional because that’s what the profession demands. With the advent of version targeting, that need may simply evaporate, rendered not wrong but moot.” Later in a comment he says “I still mourn the blow this will deliver to forward-compatible development…” and thereby wields a blow himself. Why position this option as the death of progressive enhancement or as our only option because the world will never adopt standards when in fact we can still code as we do now — in a forward-compatible, progressive enhancement way — by using the “edge” keyword? And, as you said, we can and should continue advocating standards? These messages don’t add up.

    Then, to cap things off, you post what is, frankly, a condescending defense (yes, many people are up in arms, but no it’s not because we hate Microsoft or want to ridicule slow-to-catch-up users into adopting standards). We all just read posts and author comments that painted Microsoft in a very unflattering light (again), and juxtaposed this “solution” with web standards and progressive enhancement. Do you really know your audience?

  55. I don’t understand the “now I have to go back and add this to ALL my sites!” argument. If your site worked before IE8 without the tag, it will work after. You only need to change your site if you want its IE rendering to change. Doesn’t that make sense?

    (@Pete B: Adding it now would be a little premature until we’re sure how, exactly, IE8 will render the standards.)

    I read Zeldman & Meyer’s sites (including ALA) not just because they push web standards with zeal, but because they know when it’s time to push and when it’s time to reconsider the situation. Blindly belching “WEB STANDARDS!” accomplishes nothing. I agree that breaking sites is not the way forward.

    What Microsoft has done here is exert effort to reconcile its corporate needs with the web standards mantra. If it hadn’t exerted that effort, its corporate needs would have trumped. Isn’t that at least worth a pat on the back even if you can’t give it a standing ovation?

  56. “Without it, ineptly made websites “break,” putting IE’s standards compliance at risk.”

    Exactly! Why are we compromising the web standards for inept web designers???

  57. I really cant agree with the attitude that in order to do things right in a certain browser, you have to go out of your way and add a tag.

    Surely all this does is validate and almost encourage hacks to continue to make unsemantic websites which only work in IE?

    As standards moves forward these websites are only ever going to work in IE, which puts off people using open, standards compliant browsers, stifling the standards movement.

    I can sympathise with what you’re saying and I can assume you I am not anti microsoft (i am a .net dev!). But it seems to be just a step in the wrong direction.

  58. “… the scenario of the standards-ignorant developer not knowing or caring about any of this, and being shocked when his site goes blooey in IE8″

    You’re seriously suggesting that somewhere on the planet there’s a web dev who is totally baffled when their website renders differently in a new release browser?! Your arguments in defence of this proposal are becoming increasingly desperate and removed from reality.

    “Statistically alone, it makes more sense to protect the ignorant (and their clients) from themselves and to ask the educated to do a little extra than to expect the ignorant, who already don’t do enough, to magically gain knowledge and skill and do more.”

    This is just arrogant and condescending. You are starting with the assumption that all users / devs are incompetent – and reward that incompetence by not enforcing best practice and standards. You’re advocating that the entire industry shapes itself for the lowest common denominator. If you market for idiots, you will get idiots.

    Also, IE7 is *not* a good rendering engine – I often need to hack for it via conditional comments. IE8 (based on ACID2 results) is a good rendering engine. IE8 rendering *must* be the default in IE8 to further promote standards-based, interoperable websites. By advocating ‘Best Viewed in IE7′ websites, you are signalling the demise of browser competition and therefore open standards … all we’ll have is The Microsoft Standard.

    Finally, I’d counter your earlier suggestion that those of us who are passionately disagreeing with this proposal are doing so because of some latent hatred of all things Microsoft, with the suggestion that you’re defending the proposal because you’ve lost sight of what open standards are. All those advocating this proposal need to be clear on what it is they are suggesting – de facto preference for a broken, IE7 Microsoft standard.

    P.S. Clear thinking at http://www.isolani.co.uk/blog/standards/EndOfLineInternetExplorer

  59. IMO, I think they should do it the other way around. Make a flag available to mark ie8 sites into ie7 mode.

    This will
    A) keep webdesigners with a clue from adding useless markup
    B) keep useless webdesigners with a simple fix (add a meta tag, instead of fixing their whole sites)
    C) encourage standards usage

    Sure, it means going back into live sites, but that’s the price people have to pay when they hire shady designers in the first place. :)

  60. So is Microsoft going to pay for the development of adding these tags to all existing websites I have developed using web standards because I was explained to my YOU, they would be future proof?!?

    You don’t need to add the meta element. You can just continue to author with web standards. Your site will render properly in Safari, Opera, Firefox, and IE7.

    _If_ you’re using CSS properties that are known *not* to be supported in IE7 — such as generated content — and *if* you want *a future version of IE* to show that content, *then* you may *wish* to add a (perfectly valid, standards-compliant) meta element to the head of sites you are working on currently.

    Presumably, on old sites you worked on in the past, you either did not include generated content, or you included it while knowing that it would not render in IE. And you did not care that it didn’t render in IE. And your client didn’t care either.

    If that’s the case, you certainly don’t have to back to that old site and add a meta element to it.

    You _can_ do so if you choose to.

    And, presumably, if enough developers believe the default should be “current version” instead of “IE7″ — and if they argue their case coherently and dispassionately — Chris Wilson and his colleagues might come to agree with you, and the version tracking default might end up the way _you_ want it instead of the way it was originally proposed.

    You might be able to have that effect if you put down the megaphone and stop shouting.

    All these “who’s going to pay me to do this” comments make it seem like your standards-authored content won’t work in IE unless you opt in. That’s not true. If your content works in IE now, it will continue to do so, whether you opt in or not. Aaron’s article, if you actually read it, makes this clear.

    Nobody has to opt in. Nobody has to change the way they code. No standards-compliant sites that work in IE7, Firefox, etc. will stop working in future versions of IE.

    That’s precisely the point. If they work now, they will keep working. That’s the genius of version targeting.

    All this anger based on profound misunderstandings and unrealistic examples does no one any good. Doesn’t help any browser maker. Doesn’t help the standards community. Doesn’t help your fellow designers understand what is actually being proposed. Just adds noise.

    Why are we compromising the web standards for inept web designers???

    More noise.

    Who is compromising web standards?

    Who is asking any standards-oriented developer to stop using web standards?

    No one.

    Try to think about what is actually being said instead of ranting about nonsense that is not being said.

    Aaron Gustafson, Eric Meyer and I have had some time to think about this proposal, and we’ve come to believe that it might not be such a bad thing. It might even have benefits.

    Aaron and Eric have written calm, lucid explanations of these benefits.

    If you disagree, at least argue coherently, using actual examples of things that might really happen in the real world of web development.

    Argue against the proposal if you dislike it. Don’t argue against a straw man.

    Nobody is being asked to write bad code. Nobody is being forced to use a meta element. Nobody is threatening to break standards-compliant sites, whether or not they use the version targeting meta element. Nobody is asking you to stop being a good developer simply because there are developers out there who aren’t as good as you.

    Nobody is hurting web standards. Nobody is hurting you.

    From a web standards perspective, we almost lost IE when a number of top 200 sites “broke” in IE7. It may seem like a joke to you, and you may ridicule developers who didn’t know about web standards, but in the business world, your ridicule of other developers isn’t what matters.

    What matters is, sites with heavy ad revenue “broke;” their owners complained; and Microsoft might have diverted from the way of web standards.

    Some people say web standards are saving IE, and Microsoft can’t afford to abandon them. Perhaps.

    But it’s conceivable that Microsoft might believe differently. If Microsoft, however misguidedly, were to stop supporting standards in its browser, your users would not instantly switch to Opera, Firefox, and Safari. Many would keep using IE, because “web standards” is a developer issue, not a consumer issue. If IE broke from standards, and millions of people kept using IE, we’d have a fragmented web like we had in 1998 when my friends and I started The Web Standards Project.

    I am pleased to see IE continuing on the path of web standards. Mischaracterizing a proposed meta element that can keep Microsoft on the path of standards as an attempt to hijack the web is misguided and foolish. It’s also bad politics.

    You don’t have to love their proposal and you may quibble with the details of their implementation, as Jeremy Keith is doing. But don’t drag the discussion down to the gutter with false characterizations and personal attacks.

    You are starting with the assumption that all users / devs are incompetent

    No, I’m acting on the assumption that *some* developers are not aware of web standards. But please carry on.

  61. Mr. Zeldman;

    “…But many won’t; for them, IE7 behavior makes sense as a default (since they did at least test in IE7).

    I co-founded and for several key years led the group that got standards in our browsers and persuaded designers to learn to use them.

    I publish the magazine that has long championed standards-based development.

    I wrote the book that created standards-based design as a category, shaking up publishing as well as web development….”

    I would like to point out to you, that…

    WE are the designers/developers that you persuaded to learn to use standards.

    WE read your magazine that champions standards-based developement.

    WE BOUGHT your book that created standards-based design as a category.

    So surely you can understand why, after all of these years of support, we are all a bit perplexed by this recent stand of yours. To dismiss it as some deep seated hatred for all that is Microsoft, especially to the people that have championed YOU as one of the leaders of the standards movement, is a bit disheartening.

    “To hell with bad browsers” – To hell indeed…

  62. Surely you can understand why, after all of these years of support, we are all a bit perplexed by this recent stand of yours.

    My stand? I published two articles about a proposal to ensure that future versions of IE continue to support web standards.

    I haven’t stopped believing in or promoting web standards.

    I haven’t badmouthed Firefox, Opera, or Safari. I love those browsers.

    I’m not discouraging standards compliance and accessibility; I work for them every day.

    My stand?

    I published two articles I knew would be controversial in the hopes that ALA’s readers would give them a fair hearing. The articles don’t attack web standards. Aaron Gustafson is not going to stop developing with standards. Eric Meyer is not going to abandon good CSS and good markup practice.

    Aaron’s article shows the flaw in DOCTYPE switching: namely, because tools now insert complete correct DOCTYPES, people who don’t know what they’re doing where standards are concerned now produce web documents that make it appear they were designed with standards in mind.

    If DOCTYPE switching isn’t as reliable as it was in 2001, what might we use instead to help a browser distinguish between standards-compliant code and the other stuff?

    Microsoft, working with web standards experts, has proposed version tracking.

    If this sounds anti-standards, or “desperate,” then, I don’t know. The message we are sending isn’t being heard; the messages I’m receiving are overwhelmingly negative. The negativity would be okay if it were based on the actual facts of the case. But much of the negativity is based on absurd misconceptions about web standards being threatened, etc. I can only say clearly and simply what I’ve already said, and I can only point to what our esteemed authors had to say.

    Maybe we just need to wait for the dust to settle and calm voices to come into the mix.

  63. Aaron’s article shows the flaw in DOCTYPE switching: namely, because tools now insert complete correct DOCTYPES, people who don’t know what they’re doing where standards are concerned now produce web documents that make it appear they were designed with standards in mind.

    But what happens when these same tools start inserting the meta tag with the edge value included? Won’t we then be in the same, if not worse position?

    I think Andy Budd has probably hit the nail on the head over at his blog:

    Has Internet Explorer Just Shot Itself in the Foot?

    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.

  64. Well, at least there’s a community way forward, and it seems to be: ignore the proposal and support Internet Explorer 6 & 7. No need to support IE8 at all. I question the value of Microsoft releasing IE8 if neither the web standards community want to be forced into re-opting in to standards compliancy mode.

    At the moment, IE8 is just a theoretical curiosity. Maybe it needs HTML 5 before there’s any compelling reason to try it out. At the moment, there’s no benefit for anyone apart from those that want to play with features that IE8 introduces that’s not available in IE7 and IE6. There’s little point in organisations with large websites to support IE8.

    So IE8 will only attract a tiny experimentalist audience of bleeding edge web developers. The rest of us, delivering websites to the masses, have no benefit in supporting IE8, and have the best reason of all not to bother – IE8 by default is IE7.

    The message that I’m hearing from you is to do nothing. Change nothing. Just continue building standards compliant websites. Ignore IE8.

  65. I have a question.

    What are the differences between IE7 and IE8 that make this switch necessary?

    I don’t know about the web as a whole, but the business customers (enterprise) all deal with either use Firefox (minority) or IE6 (majority). IE7 is only a teeny tiny part of the mix. For the most part I don’t do any hacks for IE7; I let it render like Firefox, Opera, and Safari.

    If the changes between IE7 and IE8 aren’t that big, then why bother with this? Microsoft already made the huge jump from IE6 to IE7.

    Ciao!

  66. I am still not clear on why any site I make that conforms to standards has to include a new line of code to make it display according to standards. Nor am I clear why I should do this just because some other developers’ sites broke in already-broken browsers.

    Terribly sorry, ol’ chaps, but you had one chance to foresee likely and unlikely counterargumenrts and do a good job explaining this proposal (after cooking it up behind closed doors). But… you didn’t.

  67. Some may argue that adding a single line to a CMS’s HTML output is not a big deal. Its true, but why do the developers have to check if every new release of IE requires some changes to be made to HTML, if everything was once built following the standards?

    I am not against that single line of HTML, but I am afraid of any further IE (or other browser) releases which can force even more code additions. At the same time it is more concerning that such requirements contradict with the W3C suggestions and override standards. Isn’t this what “breaks the web”?

    The rest of my points and conclusions:
    IE8 Version Targeting — Understanding and Discussing the Arguments

  68. Doesn’t this threaten to make IE7’s rendering the de facto standard, at the expense of HTML/IE8?

    The hypothetical situation: IE8 is being adopted and I publish a web page which makes use of generated content. But I don’t add explicit support for IE8 using the “X-UA-Compatible” meta element. My page renders correctly in all other browsers, but not in IE.

    If I use progressive authoring techniques, I have designed my page so it still works acceptably in IE7, NN4, etc, but that may limit the functionality which depends on generated content.

    The “fix” for IE8 is to add browser-specific version targeting—an improvement over the fleet of CSS hacks we now deploy. I’d say the net effect is that Microsoft will be holding back the web still less.

    But when does the transition period end? Will IE8 or IE9 and Dreamweaver CS5 fully support HTML5, so we will be able to just author to a standard and forget version targeting? (Is there any hope for (X)HTML 4?) Or will we be consulting matrices of HTML, CSS and DOM features to pick the right version tag forever? Will Microsoft bundle two rendering engines forever, or can we foresee another difficult break in a few years? Obviously, no one can make such specific, far-ranging commitments, but what’s the general plan?

    It’s ironic that Microsoft kicked off standards adoption starting with MSIE/Mac 5.0 in 2000. Because the rest of the transition 2001–08 seems to consist only of making progressively fewer adjustments for MSIE/Win 5, 6, 7, and someday 8. It’s good to see progress being made, but we want to see where this is supposed to be going.

  69. @Joe, @Kaspars

    I think you’re missing the fact that standards-compliant pages don’t need that single line of code, browser targeting will never break standards-compliant pages even if they lack this line.

    However, in a world where tools like Dreamweaver produce by default valid DOCTYPE declarations, DOCTYPE-switching is not a viable solution anymore for browsers to display pages accordingly.

    Naturally, one may wonder when Dreamweaver and other authoring tools will automatically insert:

    &meta http-equiv="X-UA-Compatible" content="IE=insert-the-latest-ie-version-number-here" />

    in new documents.

  70. So if doctype switches are old hat, why will (according to cwilso no less) IE8 switch into standards mode when it sees ?

  71. Régis, in this very post (above) Mr. Zeldman writes:

    if you omit the meta element that instructs IE to behave as a particular version—in other words, if you opt out—the browser defaults to IE7’s rendering.

    If you don’t specify this meta tag, you will be served an IE7 rendering engine.

    Having opt out by default is one of the key arguments for most of the people saying that the suggested implementation of version targeting is wrong.

    Here is an excerpt from the original Aaron’s article at IEBlog:

    If you (the page developer) really want the best standards support IE8 can give, you can get it by inserting a simple <meta> element.

  72. Most people who use the web don’t know which version of IE they have (yes, most of those people have IE). This new proposal would appear to make the job of building websites for THOSE people an easier job.

    I did say “easier” not “perfectly painless and I don’t have to lift a finger.” After all the years of hacking to get IE to fall in line, one line of code to pick the version we prefer sounds pretty sweet to my ears.

    Anyway, I like this idea of version targeting for IE – because making the web work for “regular” users is important to me. Getting to use every new CSS trick right away is not really my goal in life.

    Is the purpose of standards to allow designers and developers maximum access to new toys or to get more information to more people?

  73. Statistically alone, it makes more sense to protect the ignorant (and their clients) from themselves and to ask the educated to do a little extra than to expect the ignorant, who already don’t do enough, to magically gain knowledge and skill and do more.

    Exactly. Intentionally breaking things is not the answer. It is just bad business, so MS will not do it. If IE8 wants to step up to be the top contender for web standards, they have to have a way of maintaining old websites written by outside groups. It is bad business for MS to break a ton of small business sites who do not have the budget to maintain full time web developers, so they won’t do it.

    As for people stating that they will have to go back and change the sites they have already made for this… uhm, why? I assume you created the site testing in IE7, FF2, Safari, and Opera. If so, just leave it be and IE8 will just show things how you created them. Add the edge keyword from now on if you want the latest and greatest all the time, but there is no need to change old sites, which is the entire point.

    My team loves the idea that we can now control when our websites will be ‘upgraded’ to a new browser. One of the troubles with IE7 was that there was no true ‘developer build’ that was exactly like what was to be released to the public. We only got a beta build that may or may not have changed once the ‘real’ browser was released. With this meta tag, we can wait until we have actually tested our sites in a retail version of IE8 before releasing it upon our users. For us, that level of control is huge.

    But mostly I see it as best for the industry if MS is helping to allow standardistas to produce the website we feel are best for people. As things stand, we cannot fully do that because IE holds us back to some extent. This meta tag removes Microsoft’s primary excuse for not having a fully standard’s compliant browser, so I have to stand for it.

    @SWW
    I agree. If it isn’t about getting information to the people, then our passions are misplaced.

  74. Bless you, Régis.

    Régis said:

    I think you’re missing the fact that standards-compliant pages don’t need that single line of code, browser targeting will never break standards-compliant pages even if they lack this line.

    Exactly! Standards-compliant pages don’t need this line; they won’t break under browser targeting. The very worst that could possibly happen is that, without this meta element, a future version of IE will render your standards-compliant page exactly as it currently does in IE7.

    If that’s the part that bothers some folks here (like it bothers Jeremy Keith), the thing to do is politely take it up with Microsoft’s Chris Wilson. That’s how stuff changes: by politely talking to the people who make our browsers.

    However, in a world where tools like Dreamweaver produce by default valid DOCTYPE declarations, DOCTYPE-switching is not a viable solution anymore for browsers to display pages accordingly.

    Exactly. That’s the problem Aaron described in his article, to which version targeting has been proposed as a solution. It’s odd to see people attacking the solution without addressing the problem. Thank you for reminding us that version targeting wasn’t pulled out of the sky on an evil day for no reason; it’s being proposed because DOCTYPE switching is no longer reliable as a divider of compliant and non-compliant pages.

    Naturally, one may wonder when Dreamweaver and other authoring tools will automatically insert:


    <meta http-equiv="X-UA-Compatible" content="IE=insert-the-latest-ie-version-number-here” />

    in new documents.

    That is, perhaps, the flaw in the proposed solution. But it doesn’t have to be.

    Since Adobe and Microsoft talk to each other, and since both companies, at least in theory, talk to The Web Standards Project, it’s entirely conceivable that Dreamweaver will *refrain* from automatically inserting the meta element in new web documents.

    I would expect The Web Standards Project to make sure that this is the case.

    Of course, to do that, they’d need to take some responsibility for dealing with this issue. And right now, the vocal members of The WaSP (Aaron aside) seem to be spending most of their bandwidth distancing themselves from version targeting.

  75. Thank you for reminding us that version targeting wasn’t pulled out of the sky on an evil day for no reason; it’s being proposed because DOCTYPE switching is no longer reliable as a divider of compliant and non-compliant pages.

    And why will this be more robust? Dreamweaver isn’t going to advertise it works under an “older” version? Users will complain because “I have ie10 on my computer, why does it say ie8?”

    I’ve seen it before, where a customer wouldn’t buy our product because we were version 5.x and the competitor was version 7.x. Not on technical merit, but just because 7 was higher than 5. And these are the exact same ignorant people you mentioned before.

    So, can someone explain what are these huge changes between IE7 to IE8 that will cause massive breakage? You mention people addressing the problem, but I still don’t understand it.

    I keep seeing the phrase “website breaking” a lot. But what does that mean? It doesn’t look the same? The user cannot navigate at all? The web site causes the browser to crash?

    Unless the functionality is degraded, then I don’t care.

    Ciao!

  76. Why is the fallback IE7? If IE7 was horrible and broke everybody’s poorly-coded IE6-specific sites, then shouldn’t the fallback in this scheme be to IE6 rather than IE7?

    If there are millions of sites out there that render correctly in IE6, but not IE7 (as the original article seems to imply) then shouldn’t the default baseline of this new scheme be IE6?

    If Microsoft is okay with asking the developers of sites whose current baseline is IE6 to rewrite for IE7 (as they would all need to do going forward to not look like crap once IE8 comes out), then why not again ask developers to rewrite for IE8, which hopefully will be a strong standards foundation to all move forward from?

    It seems to me like developers of IE6-specific sites are already being asked to upgrade to IE7 to meet this newly proposed baseline.

    Am I missing something?

  77. @Jeffrey:

    The scenario Microsoft seems to have had in mind is more probable than the one Jeremy Keith raises. That a developer will want IE8 to behave like Firefox, Opera, and Safari where generated content is concerned, but won’t know to write the meta element that IE8 requires to behave like IE8, is far less likely than the scenario of the standards-ignorant developer not knowing or caring about any of this, and being shocked when his site goes blooey in IE8.

    I agree that an in-touch developer is more likely to know about and apply this fix, but it’s just such a shame that they’ll have to. It’s like Microsoft has invented a new standard in secret behind an NDA and thrust it on the world, and now we have no choice but to choke it down. Every time I build a site in the future I’ll have to include Microsoft’s new meta tag just because they say so. Granted, that may only be a couple dozen times a year (once per site,) but its just frustrating. And the really unfortunate part is that many people are already ‘coding for IE8′ (that is to say, coding to standards instead of broken software) and applying the concept of progressive enhancement, yet their forward thinking work will never see the benefit of a proper browser because Microsoft’s new standard will lock all existing sites in IE7 limbo.

  78. “they won’t break under browser targeting. The very worst that could possibly happen is that, without this meta element, a future version of IE will render your standards-compliant page exactly as it currently does in IE7.”

    But they won’t benefit from the better rendering offered by IE8 either – leaving them broken forever in IE if they use some standards feature IE7 doesn’t support.

  79. It’s odd to see people attacking the solution without addressing the problem. Thank you for reminding us that version targeting wasn’t pulled out of the sky on an evil day for no reason; it’s being proposed because DOCTYPE switching is no longer reliable as a divider of compliant and non-compliant pages.

    I disagree. DOCTYPE switching isn’t the problem. Poor coding is the problem.

    If someone uses Dreamweaver to write awful code, and Dreamweaver inserts a compliant DOCTYPE, that should result in a poorly rendered page because the code (the developer’s part of it) was poorly written. Even if Dreamweaver (or whatever tool you want to imagine) didn’t insert a DOCTYPE, crappy code should still be rendered as a crappy layout.

    What possible good does it do for us to encourage browsers to “make up for” a sub-par developer’s poorly done work? How does it help our profession to basically give those who are doing a poor job a pass?

    Regardless of whether or not Dreamweaver inserts a valid DOCTYPE into any and all code, if a browser runs into crappy code, it should show it as such. Otherwise, what point is there for any of us to know any better?

  80. Jeffrey,

    Your reasoned arguments are a breath of fresh air, after reading through both ALA comment threads and this one. I just want to say hang in there, the calmer minds are out here.

    The problem I’m having is that there are too many variables to keep in mind. You have to take into account the various browser developers, the various categories of web developer, and the various categories of end user. You have to take into account highly technical security concerns. You have to take into account web standards in their own right. None of these factors can be ignored, and they all add up into what is the right decision for the web.

    The best thing I have always found is to make very clear the thought that has gone into a decision. Is there any way for the developers who were party to the design process to explain their thinking, and enumerate the various use cases? I know that Aaron Gustafsen and Eric Meyer have begun to do this, but I think it needs to be plainer, more comprehensive.

    If there is a way to get IE to embrace standards, I say we take it. The true ball and chain here is if IE is always shacked by backwards-compatibility. That is what will truly hold back web standards.

    I am in favor of the version targeting, because it seems a very good way to untie the hands of IE’s design team. I am still not convinced by your argument for defaulting to IE7, but I think I understand where it’s coming from. I will be thinking about it, and hopefully will contribute to the long-term discussion once it quiets down.

    Thank you for your hard work and patience (no matter how strained). The web standards world needs reasoned voices like yours.

  81. Good and bad arguments fly on both sides!

    I said this on John Resigs blog, but since the argument was initially made here I’ll cross post:

    If Chris Wilson et al are in such a weak position at MS that they might get fired for doing the right thing, why on earth should we care? Sorry, Chris, I see you as a really good guy and I do wish you all the best. However, you will not be in any trouble finding a new job for a better employer.

    The argument is nothing but FUD and besides the point!

    MS as whole do not care very much about standards, as is evident from the mega-stupid decision to use “the Word rendering engine” in Outlook and push Silverlight at all costs. That a small group within MS do care is MS only hope to keep some foothold on the browser market. If CW et al are gone and MSIE gets further away from standards it will only mean one thing: In a few years MSIE will be dead – totally dead.

    That will not be the end of life for standards aware devs at MS, as they will get new good jobs. It will for sure not be the end of the web – au contraire! It would only be MS shooting themselves in their foot. Which they are free to do if they want.

  82. And Mr. Gustafson gives
    a very good example where it will be useful: critical applications, like online banking for instance.

    Frankly this is bollocks. Online banking sites, like banks, tend to the conservative. Not only that, but banks also tend to be extremely sensitive about providing a consistent experience to all their users, regardless of which browser they use, in some cases back to IE4. To that end the online banking sites that I know of and/or have been involved in the development of, use a fairly common subset of html and pay close attention to browser support.

    I personally view this meta tag as a huge backwards step. As I have said elsewhere, I have spent a long time writing standards-based web pages with the expectation that as older browsers die out I can throw out the minor hacks I’ve been using to get conformance across browsers. Now Microsoft are proposing to introduce a whole new solution (read raft of new issues) for a problem that has largely been solved.

  83. Zeldman: “Exactly! Standards-compliant pages don’t need this line;”

    And from Microsoft’s point of view, neither do non standards-compliant websites. So that means no websites need this. Interesting.

    Zeldman: “It’s odd to see people attacking the solution without addressing the problem.”

    No. Remember, we are not privy to the lengthy discussions you individuals had with Microsoft, so we are not privy to all the information in which to make an informed decision. Playing happy mushrooms isn’t a constructive approach to problem solving. This is not Dungeons and Dragons.

    And why do we have to address the problem? Its clearly a Microsoft problem, its their problem, they caused it, and so they must fix it. I don’t see how and why this is thrust on us. We’ve taken a proposed solution from A List Apart and Microsoft, listened to the rationale and rejected it.

    Zeldman: “And right now, the vocal members of The WaSP (Aaron aside) seem to be spending most of their bandwidth distancing themselves from version targeting.”

    You make that sound like a bad thing. Don’t they have the right to express an opinion that differs from yours? Why do they need to take the responsibility of solving what is a Microsoft only problem?

  84. @Chris Sullins

    Do you really think that when Jeffrey threatens with Microsoft pulling all its standards people off the IE team if they don’t get their way, that is a reasoned argument and a breath of fresh air? Really?

    I don’t know if he made up that argument because he didn’t think the rest were strong enough or if Microsoft really told him that this could happen, but the nature of the argument doesn’t really change.

  85. By the way, looking at the two sides going at it in the web standards community, it reminds me of a well known tactic called “split and conquer”… Maybe it’s just me.

    But suddenly the community is divided. Once is pragmatic to a nearly cynical degree, and the other refuses to have anything to do with the proposal. I wonder who benefits from this chasm in the community…

  86. @ Robbie

    I very much doubt Jeffrey is threatening the standards community. He is merely stating a possibility of what Microsoft may be willing to do, from the perspective of someone who knows more about it than we do.

    When I said his arguments were a breath of fresh air, I wasn’t referring to his original post, which is insightful, but rather to his subsequent comments in the midst of all the noise. While the majority of commenters were people saying “Oh no! Jeffrey Zeldman is selling out!”, Jeffrey Zeldman continued to provide substantive arguments for his claim. He has admitted that there are potential flaws. He has admitted that it might be possible to convince the MS Development team that defaulting to “Edge” is the better implementation. But what he is doing most of all is asking us to think about it, and to provide our constructive feedback. This is leagues ahead of the people who simply say “Let Microsoft die.” Especially since, in an all-out browser war, there’s no telling who is going to come out the winner. As with most wars, the most likely scenario is that everyone loses.

    The idea that he is selling out is patently false. Jeffrey is doing what everyone involved with a large corporation has to do: work within the system.

  87. @Will: “If someone uses Dreamweaver to write awful code, and Dreamweaver inserts a compliant DOCTYPE, that should result in a poorly rendered page because the code (the developer’s part of it) was poorly written.”

    Yes, should, but that someone was testing with IE6. Microsoft first implemented doctype switching, then they broke it by leaving their browser lying around for five years. C’est la vie. I’m not sure if version targeting is a solution which works towards everyone’s vision of Web standards.

    @Isofarro: “And why do we have to address the problem? Its clearly a Microsoft problem, its their problem, they caused it, and so they must fix it.”

    We don’t have to do anything at all. This is Microsoft’s proposed solution, and they will implement it in IE8 if they please. Microsoft managers have decreed that in the next transition they will not tolerate website breakage. This is our chance to influence the solution.

    I’d like to see more background. Chris Wilson tells us that the MSIE 6 → 7 transition broke 50% of the top 200 web sites. How many would break in the transition from MSIE 7 → 8 if version targeting were not implemented? How would they break, and would any of them benefit from the new HTML renderer?

    There’s probably a year before MSIE 8 comes out. Can we not evangelize those 200 sites to add an opt-out meta tag in the meantime, and have the default Web rendered by Microsoft’s upcoming standards-compliant renderer?

  88. Instead of pandering to Microsoft, if enough developers agreed to develop to web standards and ignore Microsoft’s gradually slightly less useless browser (and indeed any other browsers that continue to not work as those who develop for them widely agree they should) then Microsoft would be forced to follow instruction rather than make token gestures towards real progress. Consensus and collective action are what is required.
    This is what Wasp should be doing.
    What they should not be doing is climbing into bed with Microsoft in an effort to minimalise its incompetence, all the while being nice through gritted teeth, because after all Microsoft are so powerful.
    Additionally they should be teaming up with alternative browser producers to focus on anti-trust issues and pushing aside a useless and arrogant product. It would take collective action in driving consumers away from their inferior browser to make Microsoft care.
    If old pages break then alternative browsers will cater for a lot of that. For the remainder, they will get revamped soon enough(not ideal, but an infinitesimal price to pay for progress). If developers can’t code properly they will be replaced by people who can.
    IE7 was where they could and should have turned things around. Instead of its last faulty version languishing at the turn of the century, Microsoft extended faulty browser legacy for another five or more years and with this latest ‘work around’ well beyond that.

  89. The very worst that could possibly happen is that, without this meta element, a future version of IE will render your standards-compliant page exactly as it currently does in IE7.

    Exactly that will keep haslayout alive. But you cannot build a standards-compliant page if the negative side-effects of haslayout still occur. I want correct stacking, floating, positioning, all the basic concepts. We’ve shown in 2005 and ongoing that this is not possible if haslayout comes into play. If IE7 keeps being the target for many sites, these sites will not render according to the standards. If MS implements the switch, than real standards compliant coding has to opt-in. There is no “You don’t need to add the meta element”, because you would lock-in the haslayout-issue if you don’t add the meta-element. From this point of view, the answer is “IE=edge”.

    The “yes-camp” (reversing a phrase by ppk) may feel insulted by the mass and tone of “no”, but aren’t there arguments and valid questions in between you could possibly concentrate on? I did not read any argument that helps understanding why there would be a need for any other switch than “IE=edge”. The switch is needed for IE8 because there are these Don’t-break-my-intranet-pages, agreed. But would you please add an argument or two why we would ever need to differentiate between IE8 and IE9? “IE=edge” means: jump on the train of standards, the other browsers already do. What does “IE=8″ mean other than “a new quirks mode/standards light mode, please”?

    Carefully now, you cannot revise it once it is implemented.

  90. This proposal does not suck. There are many poorly maintained sites out there (intranets being the biggest example, small mom-and-pop online stores and “my local soccer club” being other important ones). Allowing these sites to future-proof themselves seems like a wonderful idea. Especially if that means that Microsoft doesn’t have to worry about backwards compatibility when it releases the next version of IE.

    Making the default version IE7 rather than “edge” seems like a bad idea. If it’s as easy as making a one-line change to your web server configuration (to add the HTTP header rather than the meta tag), then corporations will have plenty of time to future-proof their intranet apps against IE8. Mom and Pop will have enough time too, although they will probably not know to do it. That’s too bad, but their site “breaking” seems much more acceptable.

    Adding the versioning capability, but having a default of “edge” gives corporate sites/intranets a way to protect themselves. This allows Microsoft to stop worrying about backwards compatibility and lets them focus solely on implementing the standards correctly.

    All this is assuming Microsoft can pull off perfect emulation of IEx on IEy in the midst of security bugs and whatnot, and that there aren’t any problems with the interaction between pages for IEx and pages for IEy (think iframes and ajax). Those are big assumptions.

    This also doesn’t take away the headache that is making-a-site-work-in-IE. Even though I have tested my site in IE9, and specified in the header that it works in IE9, a user with a (buggy) IE8 browser will not see the site correctly unless I add workarounds for IE8 (and IE7, and…) That’s unfortunate, but no different than it would be without the versioning.

    And finally, “IE=8″ and “IE=9″ will be needed in a few years when those yet-to-be-developed intranet apps have been coded and tested against the then-current version of IE, and they want to protect themselves against the then-next version of IE. As much as I would love to think that every site made after tomorrow (or even next year) will be standards-based, and that every browser made after tomorrow will perfectly implement all the standards, that just won’t happen.

    (Wow. Lots of random thoughts just thrown together. Sorry.)

  91. @Ingo Chao – ‘edge’ simply puts me in the exact same boat I am now, which is when IE9 comes out, I have to quickly go through all of my existing client websites and see if anything broke. I also have to prepare for all the phone calls from past clients because of some random bug IE9 introduces that no one expected blew up something. Now don’t get me wrong, it is possible that this same dance happens concerning FF, Opera, and Safari. But in all honesty, my FF, Opera, and Safari users are A) more tech savvy and B) smaller in number, so this dance only really hurts me when played out for IE.

    The meta tag allows me to hold all of the sites I created at whatever engine I created them for. Then, if and when I need to, I can go update them. On my schedule without hurting my clents one bit.

    It is all about the user. If making my user’s experience better (in their opinion, not mine) means I have to add one extra line of code to all of my sites from now on, then so be it.

  92. Thanks for chiming in JZ.
    It’s a controversial issue. I’ve never bought in to IE hacks, in the last few years when starting down the “web standards” road it was not necessary for me to do hacks, but once in a blue moon.
    Going forward if I can see what it looks like in the current version of IE and one prior, I’m good.

    lol!

  93. Previous comment stripped out my fake VT tag, had to have that:
    meta http-equiv=”X-IE-Tits-Version-Only-Please” content=”IE=8″

    You get the idea, make mine ajax strength!
    lol!

  94. The proposal does not suck.

    But I really think we all need to sit down and think about this long and hard.

    I see this as a battle between Idealists and Pragmatists.

    The Idealists were raised up by Zeldman and Meyer and Holzschlag to push for web standards and stand against the flawed implementations of IE 4/5. The descendants are the standards-savvy developers of today.

    The Pragmatists were Idealists once. But years of dealing with standards-clueless designers, programmers who thought they could design, and the gaggle of problems and hacks with browsers, they realized their idealism couldn’t sustain them. And so they made compromises.

    What I’m hearing, honestly, is two things:
    1. MSFT is evil, and even if they’re not evil, they really screwed the pooch in the past and will screw it in the future.
    2. HOW DARE ZELDMAN AND MEYER BETRAY US! TRAITORS WILL BE SHOT!

    Admittedly, I’m a Pragmatist. My earlier comment should tell you that. But I started out as a hardcore standardsista, back in the days of the dotcom boom. And yes, the meta tag really makes my standards-lovin’ side cringe.

    But.

    Like I said before, we are beset with badly coded sites from people who can’t afford to hire designers to upgrade them. IE still has a huge majority of the market share in the US. XP is still the choice for enterprise desktops. Some corporate intranets and extranets still require IE and won’t work with Firefox (and with the forthcoming recession, they’re going to be less willing to shovel out the cash to fix them).

    We still live in an IE world. We are still paying the costs of Netscape’s failure and IE’s market domination before Firefox. And it will take time before that changes.

    You can’t just flip the switch and expect everyone to just carry on. This isn’t OS X; you can’t just ignore backwards compatibility in the name of “new and cool” or “Steve Jobs is God.” There are millions of websites now. Millions. All written by people whose knowledge of the web ranges from the Eric Meyer level to people who are nearly completely ignorant of the web, other than their blog or their MySpace account.

    People. Get off your high horse. Look around. See how people REALLY use the web. There really is a problem here. To expect that everyone else in the world is Just Like You is asking for a world of hurt. We’re still teaching people to use standards, and you’re all ready to throw them away before they even get a chance to hear the pitch.

    I don’t agree with the direction of the switch; it really should default to IE8 and give people the meta to invoke Trident. If my dear employer is nice enough to fully fund my SXSW trip, then I will tell Chris Wilson that myself, hopefully over a nice plate of BBQ brisket. If not, then maybe he’ll cross the bridge and come talk to us over at UW. Either way, I think we need to be constructive here. There is a real problem. The problem is that MSFT is successful enough that any change they make will have consequences. And it needs a solution. Maybe this isn’t the right solution. But what is? I don’t hear anyone offering some other options, other than paving over Redmond or ignoring the 60% of all users that still rely on IE.

    Would you tell 60% of your customers to go away and come back when they get a better browser? Yeah, you may rationalize that they would have been bad customers anyway, but is it really wise to shut them out altogether?

    If this isn’t the solution, then what is?

  95. The proposal has merit, no doubt about it. But I don’t think it’s nearly the best available solution that can be implemented. Sure, compromise will be necessary for whatever solution comes forward, but I think that the wrong compromises are being made, or at least the most hurtful in the long run for web development.

    In before the lock?

  96. The idea seemed absolutely wrong at the very beginning, but the more I think about it, the more I understand the supporter’s key argument — that version targeting is in fact the only way for Microsoft to start implementing the support for standards, which we all have been hoping they will do in some very distant time in future.

    The truth is that by making this huge (and maybe uncomfortable step for the Web standards purists) Microsoft can start supporting standards much faster than one could possible think of. And that, in return, is very important to the Web standards purists.

    Therefore we probably have to let them make this bad move for the very last time, because from now on they will be able to concentrate on standards, and make an enormous leap without hurting anybody.

    At the same time this should be an IE-only “feature”, because in general the idea of such a meta tag is bad (when excluding the argument of Microsoft’s past). The only ones who can be hurt by this move are the Web site owners/authors/developers who have built everything according to standards and were expecting future enhancements (without an extra treat) as browsers develop. But in reality they are the minority of Web content producers, who are better able to adapt than those who have built everything without adhering to standards.

    Therefore — go Microsoft, implement this feature and do it fast! But more importantly — release the standards aware IE8 by the end of this year, and nobody will be angry with you.

  97. I do think there’s an interesting media lesson here. At it’s onset, the Web Standards Project brand and messaging were strident, uncompromising, and frowned heavily on compromise, (irrespective of the views of any particular member).

    “Netscape 4 is irrevocably broken. Stop using it. Stop authoring to it. Stop working around it. Dump it and switch to a standards compliant browser.”

    Practically a decade later those same strident characteristics are at at play and arguably dominate large swaths of what passes for the standards based web community.

    It’s a community I consider myself a minor member of, but a community that fails to see that the majority of the commercial web does not live-up to it’s lofty goals. A community that’s reached adolescence, where it demands perfection but is unwilling to do the work and make the sacrifices the real world demands. “Because it’s the right thing to do” is not enough of a reason.

    It should be, but it isn’t.

    My gut reaction to the solution? It’s something that could have benefited from an open development process. I’ve seen numerous issues raised by very smart people, and even if the solution accounts for them it still feels like stone tablets delivered on high by a bearded man saying trust me.

    That said, when I view the reactions of web developers at large, I can see why things were carried out the way they were. If you spend a lot of time calling the IE team a bunch of goat fuckers, you can’t expect them to take your input all that seriously.

  98. The switch is all cool, but it’s opposite of what it should have been. Instead of forcing developers that are following standards to insert this meta element to actually be able to use these standards, Microsoft should reverse the switch so those targeting a rendering engine has to insert it instead. Since these people are using MSDN and not W3.org as a source of information about web standards anyway, how hard can it be to get these developers informed about this meta element switch (had it been reversed, that is)?

  99. My gut reaction to the solution? It’s something that could have benefited from an open development process

    I wholeheartedly agree with that!

    Instead of forcing developers that are following standards to insert this meta element to actually be able to use these standards, Microsoft should reverse the switch so those targeting a rendering engine has to insert it instead. Since these people are using MSDN and not W3.org as a source of information about web standards anyway, how hard can it be to get these developers informed about this meta element switch (had it been reversed, that is)?

    I hear you loud and clear, but not all website creators who remain unaware of web standards and modern best practices get their info from MSDN. ;)

    Many, many people create websites. Some work at big companies with entrenched poor IT practices (because of entrenched, poor leadership at the top). It is hard to sympathize with these companies (even if Microsoft, as a company, has to listen to them as customers).

    But many people who create websites are not professional developers at all. They are people like my mother-in-law, a public school teacher of young children. Her classroom in Michigan has a website. I don’t know what tools she used to create the site, but I would be surprised if they were cutting-edge, best-of-breed (i.e. expensive) products that help novices do standards-based work.

    And I would be VERY surprised if my mother-in-law spends her evenings reading blogs about web standards, or sighing over dog-eared pages of Web Standards Solutions. My mother-in-law has a copy of Designing With Web Standards, but I would not expect her to read it.

    And most schoolteachers are _not_ my mother-in-law.

    Teachers, pastors, coaches. Managers and owners of very small businesses that can’t afford to hire anyone reading this page to create a snazzy website for them.

    When I think of the IE7 default Microsoft intends to use in version targeting, I think of the people who don’t read this site, don’t read ALA, don’t attend conferences — not because they are bad, lazy developers, but because they are not web developers at all.

    There are millions of them out there.

    If CSS and HTML had been introduced to the world in tandem; if browsers had supported them accurately from day one, with no browser wars and no need for The Web Standards Project; if CSS-based layout were so easy that nobody needed to read Meyer or Cederholm to figure out how to do it; then there’d be no need for expensive authoring tools, no need for the DOCTYPE switch, no need for hacks, and no need — today — to protect schoolteachers, rabbis, shop owners, and other nonprofessional creators of websites from the complexities of web development and browser rendering issues.

    Version targeting is not a noble attempt to educate all the people who build websites the wrong way; it is an attempt, perhaps noble in its own way, to protect incompetent web developers from things they don’t understand, and to protect non-specialists from the maddening aggravation that comes with browser updates.

    If the idea came from Firefox instead of Microsoft, and if it had been publicly discussed before it was announced, the reaction, I believe, would have been more positive.

    Standardistas would still have said, “I code to standards, not browsers.” (And it would still be true for people like us; and hopefully there will continue to be more and more of us.) But there would have been, I have to believe, less hostility and more consideration had the idea not come from Microsoft.

    I am trying to consider it as an idea, on its own merits. I have just explained again, in a different way, why it makes sense to me.

    Many comments here assume I had no problem opening my mind to the proposal. Not true. I had the same problems many of you are having. If you want to know my thought process, read Eric’s article. It took me a lot of work to get past my innate rejection of version targeting. Because version, schmersion, I code for standards. Because “it’s just like browser sniffing!” Because, because, because.

    I went through the same stuff many of you are going through. I just didn’t have Zeldman to yell at about it.

    I don’t love version targeting but I see that serves a need. It’s a need that developers like you and I don’t think about — but a company like Microsoft has to consider.

  100. I’ve been amazed at the response to Microsoft’s version targeting. It’s a pain that you have to add it, well actually, when you think about it’s not.
    Nobody has convinced me that targeting is flat out a bad idea. My first reaction was, “finally they’ve come up with something that will stop us having to test in ten thousand version of IE!” Actually, the end result may be that web standards will slowly be forced on to those have not yet signed up on the idea. How long will companies stick with IE7 rendering when IE10 provides critical must -have features?

    Microsoft said it is committed to creating a web standards browser, they demonstrated as much with big improvements in IE7 and their announcement that IE8 will pass the ACID2 test and targeting, in my mind, underlines this endeavour. Targeting has it’s drawbacks but it also leaves Microsoft with no excuse not to push forward with implementing excellent web standards in their browser.

  101. As I see it, this version-targeting is what web developers have wanted: it’s the ability to tell the browser how your page will render instead of the other way around (granted, I’m simplifying it, but you get the picture).

    As I see it, one line of code is not a big deal. Especially when that one line of code will ensure that the way your page renders today is the way it will render tomorrow (if MS continues version-targeting in subsequent releases).

    Why would you not want the website that you create and test in IE7 (or IE8) to continue to render as intended in subsequent releases? IE7 may not get standards perfect, but such is life, deal with it, it’s what we have and what we have to deal with. By going to version-targeting, Microsoft is (it seems) providing a way to avoid screwing you later for their current imperfect support of standards. They are saying (it seems) that they will not leave you out in the cold when they finally do get it right. True, they’ll still avoid taking the blame for their past mistakes, but at least they’ll be saving the web developers of this world from bearing that blame.

    If version-targeting means that a site you design today will render properly in 10 years, isn’t it worth a measley line of code? After all, standards are about saving us time and improving future compatability. What’s wrong with Microsoft giving us a pleasant room to wait in while they work out the details?

  102. Being forced to tell a browser to render in standards mode via an opt-in declaration is nothing now. Standards-aware developers have been doing it for years by their use of doctype. I don’t think that the idea of “version-targeting” is inherently bad, but I get the feeling that most people who are upset about it got that way is because of how Microsoft is going about it. The idea of using a proprietary meta-tag whose sole purpose is to say “This page will work properly in X browser” harkens back to the dark days of browser sniffing. Instead of saying “I’ll work with X browser” via a meta tag, why not go about it in the same way that doctype does: state what version of a particular language that the page is written in?

    The beauty of using doctype is that it’s not browser-specific. If the browser knows how to properly interpret that version of the specified language, then do it, otherwise default back to quirks mode. I think the idea of something along the lines of saying that the page was written in XHTML 1.0 Strict and CSS 2.1 would not only be better received by the standards-aware development community, but would be easier for software developers. Something as simple as an additional attribute (ver?) to an existing tag along the lines of: to indicate what version of CSS the page was written would tell the browser how to properly render the page and would be something easy for everyone to adopt.

  103. “finally they’ve come up with something that will stop us having to test in ten thousand version of IE!”

    Exactly.

    [V]ersion-targeting is what web developers have wanted: it’s the ability to tell the browser how your page will render instead of the other way around.

    Exactly.

    … Why would you not want the website that you create and test in IE7 (or IE8) to continue to render as intended in subsequent releases?

    I don’t know. But they thought of that, too. If you do want it to render differently, you can select “edge” in the meta element.

    If version-targeting means that a site you design today will render properly in 10 years, isn’t it worth a measley line of code?

    It seems so to me, even though it is the exact opposite of the browser agnosticism I have fought for since 1998. My motivations have never been religious. They’re practical. I want the sites I design to keep working. If this helps achieve that goal, then it’s a good thing.

    Being forced to tell a browser to render in standards mode via an opt-in declaration is nothing now [sic]. Standards-aware developers have been doing it for years by their use of doctype

    Precisely.

    why not go about it in the same way that doctype does: state what version of a particular language that the page is written in?

    The reasons why are explained in Aaron’s article.

    Declaring that you’re authoring in, say, XHTML 1.0 Strict makes sense if you are indeed authoring in it, and correctly.

    But if you’re actually writing invalid HTML 4, or a hodge-podge combination of HTML and XHTML, then the DOCTYPE doesn’t help your page render correctly. This gets back to the argument about developer knowledge, and whether it’s a browser’s responsibility to present perfect code perfectly and nothing else, or whether the browser needs to tolerate bad markup and incompetent CSS, too — partly because there is lots of valuable legacy content out there that was authored before standards (or authored after standards but incompetently from a standards perspective).

  104. @Will asked:

    Why is the fallback IE7? If IE7 was horrible and broke everybody’s poorly-coded IE6-specific sites, then shouldn’t the fallback in this scheme be to IE6 rather than IE7?

    I work as a web developer in an small IT shop. Quite a few of our clients are still using IE6 because one or another of the websites they rely on is broken in IE7. So why is the fallback IE7?

  105. I know it’s part of your “charm” to state oversimplifications like “the ingrained dislike of Microsoft is too strong” as if it were the gospel, but as much as I hate to tell you that, I have to: you’re been brainwashed by Microsoft.

    I read all those comments you’re talking about, I wrote a couple myself, and just like most people, I’m appalled that the default behavior you’re proposing is reversed from what it should be. That meta tag should be optional, and designed for people who need it so their site doesn’t brake.

    The problem is not the proposed solution to Microsoft’s problem, it’s how biased you and all the other people involved are towards Microsoft. Let’s face it: it IS a Microsoft only problem, but you make it sound like it’s about the future of the web as a whole… Everyone know that this whole thing is completely unnecessary when it comes down to Firefox, Opera, Safari, and pretty much any browser besides IE. OK, fine, let’s help Microsoft, it’s in the best interest of everyone… Bu that doesn’t mean we should adapt the web to “the real world” aka. Microsoft!

    Look… it’s not complicated: the STANDARD behavior of anything is the behavior it has out of the box. By making IE8 rendering as IE7 out of the box (do you even realize how paradoxical this sentence is in itself?), you’re effectively making IE the STANDARD. Whereas the real Standards (you know… the W3C…) becomes “edge.”

    The “in the real world” justification is typical from Microsoft and people who build websites that work only with IE. The fact that you’re using this sophistic argument is the proof you’ve been brainwashed.

    Shame on you.

  106. @zeldman:

    I don’t love version targeting but I see that serves a need. It’s a need that developers like you and I don’t think about — but a company like Microsoft has to consider.

    Now I see where the real confusion is. Microsoft is saying “Think about the teachers! We can help!”. I agree. Who wouldn’t?

    However, think about what you’re buying into here.

    In order to help that second-grade teacher, we should ensure that future browsers “don’t break the web”. With you so far. However, this proposal equates “don’t break the web” with “code for IE7″. In other words, by adopting this proposal, IE7 becomes not only a de-facto standard for web development – it becomes the only one that matters.

    Think of it this way: Your mother-in-law’s site broke when IE7 hit, otherwise she wouldn’t be in this conversation. She now has a decision to make – fix it or leave it.

    Fixing it, at the moment, presents a choice – does she choose a tool that will produce code for an IE7 flavour of web development, or for a web-standards flavour of web development? That choice is what this proposal is designed to destroy. Version locking is not the issue here, it’s that with the proposed default being IE7, Microsoft are attempting to lock your mother-in-law back into their rendering engine, just when she’s being forced to make a choice.

    Ask yourself this – why not propose that the lock defaults to IE6, and that the next update for IE7 builds this in (ie defaults to IE6 unless you request IE7)? We can all agree that this would be a better solution, as the majority of sites that have been (and continue to be) broken would instantly be fixed. Your mother-in-law wouldn’t have to raise a finger.

    But of course, Microsoft doesn’t really care about our mothers-in-law. They care about IE remaining dominant, and defaulting to IE6 wouldn’t solve their problem:

    IE7 is still young and immature enough that its rendering engine has not yet been adopted by the majority of web developers or web tools. IE7 is not yet a “standard” in the same way IE6 was. It’s widespread? Yes. In use on most people’s computers? Yes. Have most sites optimised for it? Not yet.

    So here we are. For the first time since IE3, Microsoft’s current web rendering engine is not the engine for which of the web has been written. And at precisely this moment, Microsoft proposes a “lock” which on the surface looks reasonable, but, as a consequence of adoption, restores Microsoft’s current rendering engine as the engine for which most of the web will be written.

    If Microsoft is so concerned about not breaking the web, why aren’t they using a “standard” rendering engine? Why are they insisting on rolling their own engine for IE8 instead of adopting Gecko or WebKit?

    Why, Mr Zeldman, do they keep breaking the web?

    This is not about protecting your mother-in-law – this is about protecting a monopoly that’s at risk. X-UA can’t retro-actively save your mother-in-law this time around – all it will do is ensure that all the tools available to her are locked to Microsoft’s idea of what the web should be.

  107. When I think of the IE7 default Microsoft intends to use in version targeting, I think of the people who don’t read this site, don’t read ALA, don’t attend conferences — not because they are bad, lazy developers, but because they are not web developers at all.

    Jeffrey, I understand your point here, and you may be absolutely right. But from my own experience, novices that are creating their own web pages don’t care how those pages look in their own browser, let alone anyone else’s. For an example, please choose any MySpace page at random.

    And considering how many no and low cost blogging/CMS options there are, it’s hard to believe there are a lot of people who have no interest in learning HTML that are hand-coding websites.

  108. Version targeting is not a noble attempt to educate all the people who build websites the wrong way; it is an attempt, perhaps noble in its own way, to protect incompetent web developers from things they don’t understand, and to protect non-specialists from the maddening aggravation that comes with browser updates.

    I think perhaps part of the problem is that Web Professionals who make an honest and dedicated lifetime career of developing websites don’t appreciate working in an environment where non-specialists are given priority and coddling.

    I would go as far as to say that this Meta tag is economically damaging to Web Professionals when the browser with largest market share is purposefully hobbled to favor the skill set of inept developers. It’s a slap in the face in terms of our profession.

    The fact of the matter is that web professionals would get more business if life were tougher for inept developers. It’s simple economics, and we’re fed up with being treated like second class citizens when it comes to authoring HTML. I honestly believe that this is why we have no sympathy for mom and pop coders. It’s not their profession of choice. It’s not how they pay the majority of their bills.

    You hire an electrician to wire your house, not a rabbi or a mother-in-law.

  109. That meta tag should be optional

    Sigh. It _is_ optional. I have no plans to insert it on any of our client sites. There’s no need.

    We use progressive enhancement on our sites. If a small detail works in Firefox, Opera, and Safari, but doesn’t work in IE6 or IE7, that’s not a problem to the site’s users, owners, or designers.

    Users of Firefox, Opera, and Safari may have a slightly enhanced experience. That’s okay. That’s the nature of progressive enhancement.

    If we want users of future versions of IE to also enjoy those enhancements, we’ll add the meta element to those sites. If not, we won’t bother ourselves about it. That’s what’s meant by optional. Optional. Not necessary.

    If your actual problem is that you disagree with this default, then by all means take it up with Microsoft. People better informed (and politer) than you plan to do just that. Perhaps if you lower your voice, you can add weight to their argument.

    As a standards advocate since Year Zero, I’ve found that sometimes a raised voice helps, but sometimes politeness works better. Since we’re dealing with browser engineers who give a damn about web standards and are working to do the right thing, politeness would seem to be the appropriate approach.

    I don’t believe that you’re being this impolite simply because you think the default Microsoft has chosen is the wrong default. People don’t get as rude and enraged as you are because they disagree over a default.

    I see Microsoft’s default as logical because I am a web designer. That means I design for users, and run scenarios to try to understand what those users need. That seems to be what Microsoft has done in this case.

    One could say accurately that there are two user groups most in question here. One user group is clueless when it comes to standards-based design. The other knows what it is doing. You and I are in the second user group.

    If the second group –which includes you and I — is the most important group, then MIcrosoft has the default backwards, and you should endeavor, politely, to convince them of this.

    But if the first group is more important (because there are more of them out there, or because, unlike us, they don’t gather information about web design and thus won’t hear that they could “fix” their site by adding an optional element), then Microsoft has chosen the correct default.

    I’m not buying into Microsoft’s idea because I’m in bed with Microsoft, or brainwashed by them, or getting paid by them. People who suggest such things are so wildly off-base, I can’t even bother to get upset by these insults.

    I’m agreeing with Microsoft’s default because I think they have chosen the correct scenario — that it’s more important to protect those who don’t know what they’re doing, than to relieve those do know what they’re doing of the terrible burden of optionally adding a short meta element to their document head.

    I added a meta element (the canvas element) to the head of zeldman.com so that this site would display better in the iPhone. Where is the outcry over that? Did I abandon web standards in so doing? Or did I add a bit of perfectly valid code to my template to be nice to a user group? I did the latter. I added perfectly valid code to my template to be nice to a user group.

    A few months ago in A List Apart, we published Craig Hockenberry’s two-part primer explaining the small adjustments a web developer could optionally choose to make, in order to provide a somewhat enhanced user experience for owners of Apple’s iPhone.

    A few readers complained that accommodating iPhone users flew in the face of standards and browser agnosticism, but the complaining was nothing compared to the outrage (and misrepresentation) that has greeted Issue 251. I have to believe that is because more people hate Microsoft than hate Apple.

    do you even realize how paradoxical this sentence is in itself?

    Gee, no I don’t. I’m conceptually challenged, I didn’t read Jeremy Keith’s piece even though I quoted from it, and I didn’t go through my own process of coming to terms with Microsoft’s proposal even though I have explained several times that the proposal was initially as confusing, upsetting, and offensive to me as it still is to you.

    Shame on you.

    My reply to that, if I allowed myself to join you down there, would freeze your blood.

  110. @Jeffrey Zeldman

    “finally they’ve come up with something that will stop us having to test in ten thousand version of IE!”

    Exactly.

    It will, but only if you target the lowest version of IE possible. If you target IE9, but 20% of your users still use IE8 and 5% still use IE7, you will still need to account for those old versions of IE. Only if you target IE7 (and give 95% of your IE users a degraded experience) can you go without worrying.

  111. Web Professionals who make an honest and dedicated lifetime career of developing websites don’t appreciate working in an environment where non-specialists are given priority and coddling.

    When I started battling for web standards ten years ago, one of the humbling things I quickly learned was that dedicated, honest web specialists are only one segment of a browser company’s customer base. I learned this back when Netscape was the dominant browser and Microsoft’s browser had only recently stopped being viewed as a joke.

    The browser companies have to consider us, yes, but they also have to consider other customers with different needs. This is a fact of business life. I didn’t like it either, but that’s life. To any browser company, we are just one special interest group among many that they have to somehow entice and appease.

    I’m pleased that, because of the work we and other standards evangelists did, browser companies treat web designers and developers — and particularly standards-aware ones — with much greater respect than they did when a few of us banded together in 1998 to demand standards in our browsers.

    With this history and these battle scars, I am still able to consider Microsoft’s proposal on its merits. And, despite all the work my colleagues and I do to build respect for this profession, I am still willing to entertain the notion that, in this case, perhaps, standards-oriented professional developers may _not_ be the user group for whom the default is targeted.

    If the “penalty” we pay as the non-targeted group is that we have an option to insert a meta element in our documents, that seems like no real penalty at all. Whereas the penalty paid by less enlightened developers would be more serious, if we, and not they, were the beneficiaries of the default.

    I have learned over the years how to work with people and how to design for *users* instead of just myself. Designing for users — which I hope we all do — means sometimes putting your first and even second reaction aside.

    If you aren’t willing to do that, or if, after doing that, you still believe that the default is wrong, by all means take it up with Microsoft. I believe they have run the scenarios correctly, and made the right choice. It isn’t the choice that’s easiest for me, but it doesn’t create a terrible hardship for me, either.

    And it enables Microsoft to keep improving its browser’s support for web standards, instead of diverging from the true path. That’s the bottom line for me.

  112. @Lewis:

    Are you suggesting that Microsft (or any other company) should make things harder so that you can get paid? Do you realize how ridiculous that is? Should the manufacturer of your computer make it harder for you to diagnose and fix problems on your system so that a repair specialist can be paid to do the work?

    Do your job well, and there may still be a place for you in the future. And if there isn’t, find something else to do. Things change quickly, especially in technology, and you can’t expect a company to arbitrarily stack the deck in your favor.

  113. in one of the early comments, DW says:

    These [University websites, small sites, etc] are the people who call me asking why in IE7 their site design failed spectacularly.

    This is nonsense. The sort of sites that break in IE7 are the ones that use clever CSS2 layout stuff, the sort of sites that are maintained by people who know what they’re doing.

    No site written using tables and bog-standard HTML4 is ever going to break in future browsers because all browsers currently implement those bog-standard tags without fault at present.

    So I fail to see why we need to force the world to be stuck on IE7 as a result of what is proposed.

  114. @minimal: I can safely say I have never been “appalled” by a meta tag. Then again, I also try to refrain from using hyperbole and invective to disguise my ignorance. In light of your recent castration, I’ll stop there.

  115. @Brian Warshaw:

    I liked Jeffrey’s response better. At least he understood what I was talking about.

    Thank you Jeffrey…

  116. @zeldman

    And it enables Microsoft to keep improving its browser’s support for web standards, instead of diverging from the true path. That’s the bottom line for me.

    If you, or anyone who is backing the X-UA proposal could explain this conclusion, none of this bickering would have happened. It’s the sudden leap that doesn’t make sense.

    By “enable” you imply “encourage”, but how does this encourage MS to do any such thing? Because of the sudden lack of demand from their customers? This is the gap that we all see, and which you’re doing nothing to fill, placating with “think about the children!” statements about all you’ve learned in all your years.

    This proposal lets Microsoft push standards support to the “edge”, to the “fringe”, and will do nothing to encourage tool-builders to embrace standards any further than IE7’s support for them.

    Or do you have in your hand a piece of paper, signed by Steve Ballmer, which guarantees peace in our time?

  117. Or do you have in your hand a piece of paper, signed by Steve Ballmer, which guarantees peace in our time?

    Ding-ding! Hooray!

    Godwin’s Law has now been invoked.

    This, this Microsoft thing, why it’s just like Hitler and the Nazis!

    Thank you, Jonathan Barrett, for that apt and appropriate comparison between my finding merit in a proposed standards toggle and Chamberlain’s failed attempt to appease Hitler.

    You. Are. Awesome.

    We are ringing bells of joy in the studio today to celebrate your witty and penetrating exposure of my collaboration with the enemy of mankind.

    Kidding aside, you were doing okay when you hit me with …

    placating with “think about the children!” statements about all you’ve learned in all your years.

    It was mean-spirited and not entirely accurate, but you were working on a little chink in the armor of my soul, turning my positives (such as experience) to negatives. You didn’t have me, but you were working on it. Boy, I’ll tell you, I was sweating!

    Then you blew it with that whole Hitler/Chamberlain thing. Pity. Keep trying.

  118. I didn’t realize I was rude, I didn’t swear or anything, I was probably too blunt but then again, I get that a lot in real life too… (I’m French…) And considering the way you usually write, I thought you could take it. I was also trying to get your attention… I’ll back down a notch then… I’ll even apologize if I did offend you for real: sorry.

    The reason I’m so angry is not because “I hate Microsoft” but because you are Jeffrey Zeldman! Because it’s ALA, and you guys just don’t seem to see the obvious! I honestly seriously think that you guys have spent too much time with MS team and lost the necessary perspective to be objective on the subject. I called it brainwashed, and yeah, I guess it is somewhat an insult… but it’s pretty close to what I think happened: you’ve got talked into it. I see signs of that everywhere, including the article from my personal hero Eric Meyer (“my immediate gut reaction was deeply negative”) and even you in your previous comment (“the proposal was initially as confusing, upsetting, and offensive to me”). I never suggested you got paid by MS btw…

    At the risk of stating the obvious, I have to stress another important point that shouldn’t be forgotten: Microsoft is not a person, it’s a corporation, and as any other corporation, “it” is not really worried about its users, the bottom line is profit, and the only thing Microsoft worries about is conserving market share. Even if IE8 couldn’t render any site whatsoever, people wouldn’t be locked out of the internet, the web wouldn’t be any more broken than the day before. People would just switch to Firefox or something else. Of course it’s legitimate for MS to worry about that, but we probably shouldn’t forget this while coming up with those “user centric” proposals… Because if we did, I think that would be a clear indication that we’ve been manipulated by MS (I didn’t say brainwashed!).

    I know you’re going to sigh again, but according to your own reasoning, that tag will NOT be optional since the only people who will know about it will be the ones who will HAVE to use it in every new site they build in order to get the “default” IE8 behavior…

    Furthermore, your main argument here is to “protect” clueless people against their own incompetence right? To understand the future, we have to look at the past right? So how far in the past should we “protect” people? Why drag down the entire web at the lowest denominator? (that might be Frenglish… hopefully you know what I mean).

    The key here, for me, and I’m not trying to insult you, is that I think you’re really missing the point when you say: “I don’t believe that you’re being this impolite simply because you think the default Microsoft has chosen is the wrong default. People don’t get as rude and enraged as you are because they disagree over a default.” It is PRECISELY why I’m going crazy, and not because Microsoft chose that default, but because Jeffrey Zeldman and all the other cats are defending it. I can’t find the exact quote right now but you even wrote something like “it is an implementation detail.” I beg to differ! (trying to be polite here… hope you appreciate the effort ;) It is a crucial super important point! The default HAS to be Standards (as in W3C) or else the default becomes IE because of the exact reasons you mentioned earlier: you and me know about the meta tag thinggy, but most people who call themselves web designers won’t and will code for IE7 forever! How is that supposed to help the web?

    I don’t really get your argument (in your response to my 1st comment) about the 2 user groups. Are we talking about “users” as in people browsing the web? It seems that way, but then it looks like you’re talking about 2 groups of users as in developers who know what they’re doing and those who don’t… Prioritizing “users users” makes sense, but prioritizing incompetent developers makes no sense unless you’re building iWeb or something like that. Technology itself can’t be designed for people who don’t know anything about it. Nobody’s asking PHP to give up OOP because Classes are too confusing for the layman…

    I’ll finish that on a more polite note this time: PLEASE, reconsider that default behavior, it is NOT a “detail.”

    PS: feel free to express yourself freely this time, my blood is pretty cold already, I seriously doubt it will freeze, and you got me curious ;)

  119. @Matt Russell – not everyone in the world Speaks English as a first language, sorry if my word choice insulted your Shakespearean sensibility… You really did add something intelligent to the conversation. Thank you.

  120. I honestly seriously think that you guys have spent too much time with MS team

    I spent no time with them. I know Chris Wilson, the IE lead, to be a smart and honorable man, but I didn’t learn anything about the proposal from him. I learned of the proposal in the course of the editorial work I perform with Erin Kissane and Krista Stevens at A List Apart.

    And, whether you believe me or not, I went through the same gyrations many of you are going through. I was living in a standards world, not a browser version world. Naturally the idea shocked and displeased me at first. I did a lot of mental work deciding between the pros and cons and eventually came out where I came out.

    I wish it wasn’t necessary, but I understand the DOCTYPE switch problem (we’re a victim there of our own success in getting proper DOCTYPEs into authoring tools), and I also understand why Microsoft cannot simply write off standards-unaware developers.

    As to ALA bringing you the proposal, we would have done that even if I disagreed with it. I don’t always love or agree with everything we publish. But when there is huge news in the world of web standards, you can expect A List Apart to know about it and bring that information to you. It so happens that, after analysis, I was able to make peace with the proposal. But it could have gone the other way. If it had gone the other way, I still would have published the issue, because the standards community needs to know what Microsoft is proposing to do in its browser.

    For ALA to studiously ignore this news (as some web design publications have done) would be absurd.

    In publishing what we knew would be controversial and we hoped would provoke thought and discussion, we were in fact performing a service on behalf of the web design community of which we are a part.

    Had I decided the proposal stank, and “exposed” Microsoft’s evil instead of presenting the proposal the way we did, I might be getting more love and fewer flames here.

    I know you’re going to sigh again, but according to your own reasoning, that tag will NOT be optional since the only people who will know about it will be the ones who will HAVE to use it in every new site they build in order to get the “default” IE8 behavior…

    You don’t have to use it.

    Progressive enhancement. It’s what we all do, right?

    If your site looks or works a little better in Firefox, Opera, and Safari than it does in IE, well, what else is new?

    If you care about that, you’ll use the toggle. If you don’t, you won’t.

    If you dislike IE so much, why would you want IE to act like IE8? It seems to me that you’d LOVE this proposal. As Andy Budd has pointed out, it could potentially help marginalize Microsoft’s browser.

    If developers don’t use the meta element to toggle IE8 to act like IE8 (or IE9 to act like IE9), then people who use Firefox will have a better experience than people who use IE8 and IE9. And that better experience will keep eating away at IE’s market share. It seems to me that that is exactly the outcome you’d most desire.

    It is PRECISELY why I’m going crazy, and not because Microsoft chose that default, but because Jeffrey Zeldman and all the other cats are defending it.

    Most of the cats are attacking it.

    I’m defending it because usability is a big part of my job as a web designer. Usability starts with learning who the users are, analyzing their needs, and developing scenarios that meet those needs.

    That seems to me to be what Microsoft has done.

    It seems to me that they identified a user group (competent developers) that is capable of making informed decisions about whether or not to include an optional meta element.

    And they identified another user group (not-so-competent developers, non-developers, amateurs with websites, competent developers of legacy, pre-standards sites) that either couldn’t make decisions about including an optional meta element, or was no longer around to make those decisions. And based on the scenario that they can’t make decisions about including an optional meta element, Microsoft spun the default behavior their way.

    Analyzing user needs and making tough calls between differing needs is what you and I do when we design websites. I think it’s what Microsoft just did. And I think, if any company besides Microsoft had done it, more people would be more willing to give it the benefit of the doubt.

    Now, why is it coming from Microsoft and not, say, Mozilla or Opera?

    Possibly because Microsoft is evil and I’m too stupid to see it. I can’t deny that possibility.

    But here’s another possible explanation:

    Microsoft’s browser recently changed after five-plus years of dormancy, where standards are concerned.

    Ignorant developers only test in IE because of its vastly oversized share of the market.

    Ignorant developers who only test in IE and who don’t take the time to understand CSS in depth thought IE6, with all its bugs, was an accurate rendering environment.

    And since the browser hadn’t changed for half a decade where standards are concerned, these developers concluded that this rendering environment was also stable.

    They built to it. The exact opposite of what they should have done. But they didn’t read Designing With Web Standards or the other literature out there, and didn’t realize what they were doing wrong.

    When IE7, with its improved standards support, came out, their sites started smelling bad and they yelled at Microsoft.

    Hip browser makers with smaller market shares could perhaps have taken the position that the developers should have known better.

    But since Microsoft’s own bugs and own slowness to change had lulled millions of site creators into coding in a non-standard fashion that worked okay in IE6, Microsoft couldn’t write off those customers. It had to find a way to appease such people while still doing the right thing by standards-oriented developers.

    That, I am certain, is what Microsoft is trying to achieve here. A way to move forward in its standards support (Acid 2, hello) without alienating the less skilled web developers out there. Microsoft can’t write off millions of customers. Nobody can do that. With this proposal, it hopes to accommodate those millions and also take care of you and me.

    The price, if we choose to pay it, is to take two seconds to write a meta tag. We can also benefit from the meta tag in the future by testing multiple versions, simply by changing the number in our meta tag from 7 to 8 to 9.

    If we choose not to do this, IE users will experience our content the same way 20 years from now as they do today. For some developers, that may not be a bad thing at all.

    And, it provides a slight advantage to Microsoft’s competitors, since Firefox ten years from now will seem much more advanced than IE ten years from now if we omit the meta element.

    I don’t really get your argument (in your response to my 1st comment) about the 2 user groups.

    One group is competent standards-oriented developers.

    The other group (probably much larger) is not-so-competent developers, including professionals who don’t know about or understand web standards, and non-professionals like my mother-in-law. (She’s a professional teacher! But not a professional web developer.)

  121. Might be a little jumpy here, my minds approaching fried (probably actually way past crispy at this point) from all the discussion and trying to view the results of both sides of the discussion.

    Disclaimer aside, I’m still not seeing your side clearly enough. I get the whole complaints from sites breaking, but I just don’t see it being bad enough to justify the view of IE being taken off the standards track because of it, nor do I see standards dieing out even if IE is taken off track.

    I’m not seeing how the current form of the tag is better for standards over making the tag an opt-in for IE7 rendering. Naturally it would have to be discontinued soon also else people would still get dependent on the tag and old style rendering, but at least this way there would be an easy way to discontinue the tag and inform people that it’s only a temporary solution. If old style is the default then when it’s time to discontinue the tag a lot of stuff is still going to suddenly break.

    I just find it impossible to imagine a world where this tag, kept around in the name of backwards compatibility and working in it’s current form, would ever lead to better standards use online. It seems aimed at undermining standards more than supporting them, and rewards people for ignoring standards instead of using them. It doesn’t generate any incentive to make better sites using standards if you’re already just coding garbage for IE 6-7. I’ve got nothing against the tag existing and being used, I just don’t agree with it’s current behavior.

    I know most people learn to code through sites that have incorrect information having been made by people who didn’t have the correct information themselves. I first learned the wrong way many years ago using notepad and a few sites that aren’t around anymore. I think the IE8 defaulting to the real standards mode would help get rid of the remaining sites with bad information, which would help the average person learning find good standards teaching sites. Yes, your mother-in-law’s school site might have a few glitches for a bit, but in the end it will be better. Sure, it may be a bad few weeks while people figure out what’s going on, but this can be mitigated by MS advertising the change loudly and everywhere they can while releasing betas as early as they can. If MS can do this right I think the change over can go without a hitch as IT staff dealing with intranets can either fix up the intranet or hold back the deployment of IE8, and everyone with sites out on the internet can fix any breakage they find or add the render as IE7 tag.

    Completely unrelated, but I find it impressive that you’ve kept your head amongst all the negativity, it’s quite respectable, and I’d like to thank you for it.

  122. “Alas, the ingrained dislike of Microsoft is too strong … for the proposal to get a fair viewing.”

    How about some of us *did* give a fair viewing and *still* reached the conclusion that the proposal is a crock o’ crap? There’s a good reason why so many of us have reached that very conclusion.

    You argument on default rendering is so wrong-headed it’s difficult to consider this is the same Zeldman who carried the Standards Banner in the early days. What you’re advocating is dropping web development in to pit – the IE7 pit.

    Exactly.

    The last couple of years, it’s ALMOST felt like the giant clusterfuck that is web development might finally be rationalising and consolidating into something vaguely sane. If I write xhtml transitional, careful CSS2, use Js compatibility libs, and I can serve exactly the same thing to everything, and expect it to appear the same, or at least near enough to be functional (the odd 1px here and there doesnt matter, this isnt print). The only small flies in the ointment are Hixie’s “xhtml served as text considered harmful”, and sometimes having a very small number of IE specifics in a separate .css added by conditional comments, but we’ve very very close to writing one lot of standards compliant stuff, and not alienating anyone.

    Now it looks like we’re heading right back to explicitly targetting not just UAs, but UAs by version, “no, I REALLY mean standards” vs “please render this how you think I might have meant if I wrote it 8 years ago without a clue, rather than what I, and my markup, actually meant”.

    And even the poster boy of web standards is applauding this?

    Not to even mention the fact we’ve got a ridiculous “which horse do I back” Blu-Ray vs HD-DVD type war on the horizon with HTML5 and XHTML2.

    Ugh.

    I need a new career, I’m sick of this.

  123. I won’t monopolize your comments any longer, promise… And thanks for taking the time to answer.

    I understand all the points you are making. I actually understood them from the start. It’s not difficult to understand why MS would go about it that way, and I can’t disagree with that statement: “Usability starts with learning who the users are, analyzing their needs, and developing scenarios that meet those needs. That seems to me to be what Microsoft has done.”

    But why is the WaSP (some of them…) and Zeldman himself concerned about Microsoft’s users? I know that’s not what you mean by “users” but that’s what it really means when it comes down to it isn’t? The whole thing is a MS centric solution to a MS only problem which happens to concern many people because of MS’s market share. That’s why I don’t understand why you would endorse something which is bound to hinder the Web’s growth in the long run… To me, it looks like a temporary band aid advertised as the permanent cure for everything.

    I’ll leave it at that, and I’ll respect your opinion… but I’ll have to fight you if we meet on the battlefield ;)

  124. I’m going to attempt to explain why this keeps IE on the Web standards track, rather than derails it, since most people seem to not understand that aspect of Mr. Zeldman’s original post.

    The reason that this keeps IE on the Web standards track is that Microsoft is now free to improve Web standards support without the crippling fear that doing so will break millions of Web pages coded for the previous version of IE (the IE7 fiasco, if you will). The newer version will now have better standards support to which developers can opt-in if they feel enough of their userbase has migrated to it.

    Another looming question I see people wondering about is what is going to happen with versions 9,10,11,…,n. “Are they all going to default to IE7?!” ask the hand-wavers. Well, yeah, because that’s what guarantees the forward-compatibility. But as the majority of users migrate to the successive versions of IE, developers can incrementally update their meta tags to give them newer rendering engines. IE7 won’t become the de facto standard as some people content because people won’t be using IE 7 forever. Well, some might. But the vast majority of users will eventually upgrade. And we can adjust our code accordingly.

  125. @Ben – I don’t claim to speak for anyone else, but my argument for it is not that the tag is good for standards. I am not convinced it will help or hinder standards in the long run. Mostly I think it is good for users and it is good for all those people who are not web developers but are still responsible for websites, be they small business owners or teachers or students or whatever.

  126. @Scott

    IE7 won’t become the de facto standard as some people content because people won’t be using IE 7 forever. Well, some might. But the vast majority of users will eventually upgrade.

    See, that’s the problem… It won’t matter if they upgrade because clueless coders will still code without the extra meta tag so whatever new version they’re using will render those poorly coded sites with the IE7 engine and all its intrinsic limitations, and the cycle repeats itself… We’ll be stuck in an IE7 world for the very reason that Jeffrey puts forward: they’re alot more people who don’t know what they’re doing out there than people like us.

    Ok, this time I stop… ;)

  127. @minimal:

    But we don’t care how the ignorant (in the true, not mean-spirited, sense of the word) Web developers do things. They’ll be able to make their pages, test them in IE, and be assured that they will keep working.

    The point I’m making is that those of us who do this for a living and care to design with Web standards will not have to adhere to IE7 as a de facto standard, because eventually most people will upgrade, at the very least after buying a new computer that comes pre-installed with the latest version.

  128. @Christopher

    I’ll give you good for them in the short term, but I believe in the long term it would be better if all the sites telling people to use font tags and whatnot went away so everyone who went out and learned on their own would find sites teaching standards. Naturally this also assumes that IE defaults to it’s most compliant rendering engine and that MS can keep up with the open source browsers.

    Keeping around the ability to code a bad site and have it appear fine, especially as the default mode isn’t going to help anyone in the long run.

    With the current method, I think that we’re either going to see IE7 become the de facto standard by sheer amount of people who don’t care or don’t know better, causing a halt to standards development (after all, why make stuff people aren’t ever going to use), or there will have to be a breaking point somewhere when IE no longer supports the old ways, at which point putting off this break only increases the amount of content that’s going to have problems when it happens. I think now is the best time to take that first step forward, getting out of the quicksand, before we become so mired in it that we can’t get out.

  129. @Scott:

    I know it won’t affect me and my job. That’s never been my concern. I’m talking about the Web as a whole. That’s what I’ve been saying from the start. This meta tag proposal is a bad thing for the Web and Standards.

    On a side note, can you confidently say that you trust MS to be able to perfectly emulate every IE’ version specific bugs within each iteration of its browser? With their track record, I don’t really understand why people would assume that MS will suddenly put out perfect code… What if you had to test IE9 as IE9, IE9 as IE8, IE9 as IE7, IE8 as IE8, IE8 as IE7, and IE7 because they all exhibit slightly different variations of a specific bug?

    Check out this post for some insight from browser developers perspectives:

    http://operawatch.com/news/2008/01/opera-mozilla-and-safari-react-to-ies-solution-for-browser-compatibility-issues.html

    (ok – I give up, I’ll keep on spamming I guess… ;)

  130. On a side note, can you confidently say that you trust MS to be able to perfectly emulate every IE’ version specific bugs within each iteration of its browser?

    I admit to that being my biggest remaining question with the proposal. Time will tell, I suppose…

    I also hear Ben’s argument about the possible value in just slamming the door and leaping forward. But pragmatically, I think that might be more hurtful than helpful, even in the long term.

  131. A few months ago in A List Apart, we published Craig Hockenberry’s two-part primer explaining the small adjustments a web developer could optionally choose to make, in order to provide a somewhat enhanced user experience for owners of Apple’s iPhone.

    A few readers complained that accommodating iPhone users flew in the face of standards and browser agnosticism, but the complaining was nothing compared to the outrage (and misrepresentation) that has greeted Issue 251. I have to believe that is because more people hate Microsoft than hate Apple.

    OK, you know what? That argument’s tipped the balance for me. Though I think Microsoft is making a grave mistake by this, though it’ll be hell to implement and though they’re going to have to drop support for non-standards sites sooner or later (or, better, end-of-line IE and start afresh), it’s their business decision – and you know what? It’s not that bad for standards. And Microsoft will stand or fall by it, and I expect I’ll ignore the meta tag/ server setting in 95% of cases. So I’m officially ACQUIESCENT on the issue. I have no opinion on it any more. Let it happen, and we’ll cope. IE maybe won’t. So it goes.

  132. I have one question to Jeffrey Zeldman, Eric Meyers and anybody else in support of the default behaviour of this solution. Do you honestly believe that IE25 will ship with 100% accurate rendering engines for IE24 down to IE7? I don’t believe this because MS eventually do pull the plug on things. There will come a point where MS will say the default mode is now IE10 and voila all those old sites which the author thought would last for eternity will not work anymore. This WILL happen. It has to. MS can’t keep on supporting an ever increasing number of rendering modes in it’s latest browser. It’s not possible. Remember all MS products have a support lifespan. It’s normally around 10 years, after which MS doesn’t guarantee aynthing about that product anymore. Will MS in 11 years time still be supporting IE7?

    If the default was reversed I think no one would raise so much as an eyebrow for this proposal. In fact most people would positively support it. As it stands this problem is just crazy.

  133. “Are they all going to default to IE7?!” ask the hand-wavers. Well, yeah, because that’s what guarantees the forward-compatibility

    An important caveat is that the HTML5 doctype will render with the IE8 engine, so we should never get to IE10 with new sites still using the IE7 engine if they lack the meta tag. (Well, if you’re optimistic about HTML5 ever being finished, heh). Someone above already linked to that, but it kinda got lost in the shuffle I think…

  134. I live in Kentucky. I work for the State. I’m just an average designer. I use standards because I believe in it, not because it is convenient.

    I support version targeting. Mainly because it will save me from uncomfortable conversations about why someone’s site might look different in future iterations of IE.

    99% of my clients use IE to review the sites I design (and maintain) for them. 99% of my clients use PCs. So in my average-designer-world, Microsoft gets more attention than Apple. IE gets more testing than Firefox.

    I hope developers can put aside their hatred for Microsoft long enough to do what’s sensible in regards to the current state of web development, as well as what is realistic for the continued adoption of standards.

  135. Maybe I missed it, my eyes are glazing over reading all the discussion, but I don’t think Zeldman has responded why it’s not a better thing for MS to include behaviour toggling buttons on their browser controls instead of developers inserting tags?

    This is solely an IE issue. Let IE fix it.

    Or did I miss a salient point?

  136. But why is the WaSP (some of them…) and Zeldman himself concerned about Microsoft’s users?

    That is not the right question to ask. Microsoft is concerned about gathering feedback regarding their proposal, they’re not willing to dictate how things will work in the future, thanks to the strong relationship the WaSP succeeded in building with them, they’re now able to reach an international audience of (potential) experts in the field and listen to them.

    They eventually went to a solution where, finally, doctype switching is not dead.

  137. Last week while lamenting the fact that Google *still* lacks a DTD, I was asked about whether or not I had thought through page size. I hadn’t. While the few extra bytes added to a page by one line of code seems trivial to the point of absurdity, when you multiply that by the sheer volume or traffic that sites such as Google deal with… Hmmm, that does become a bandwidth issue.

    Wondering if anyone else thought about that as they (we?) add yet one more line of code to each and every page shipped out, just to get IE8 to be IE8…

    If you really want to use a a versioning switch for IE8, have it switch backwards upon instruction, not by default. This accomplishes 2 things: it encourages and promotes standards based design as the proper thing to do, and it penalizes non-compliant web pages.

    Adding a switch via the http-equiv meta tag (or via an server-side instruction) is a quick and easy way of addressing legacy content, but puts the onus on those who did things wrong in the past to wake up and smell the coffee – yet at the same time it’s pretty easy to do. And that minuscule few extra bytes of data generated by , that *really* can add up for big sites (like Google, MS, Amazon, or maybe the government) will be a financial incentive to get on board now rather than later. (all of a sudden, standards compliance becomes a budget line issue,and we all know how business thinks…) Why should compliant developers shoulder the financial cost of adding a meta-tag that says it is “edge” compliant?

    *This* to me is a way smarter way forward.

  138. The bandwidth issue brings up an interesting point. Since even the DTD is considered a bandwidth issue for some sites, like Google. The new battle cry is apparently, One more tag (“OMT”)! But, as Jeffrey says, you usually don’t need the tag. I guess we’ll see.

    I think what makes people cringe is the fact that Microsoft has become the “Old Woman” in the famous nursery rhyme, There Was an Old Woman.

    The last verse is very telling. But, I think we can all assume that this new Meta tag is the “spider.” The “fly” is the DOCTYPE we all know and love.


    There was an old woman who swallowed a cow,
    I don’t know how she swallowed a cow!
    She swallowed the cow to catch the goat,
    She swallowed the goat to catch the dog,
    She swallowed the dog to catch the cat,
    She swallowed the cat to catch the bird,
    She swallowed the bird to catch the spider,
    That wriggled and jiggled and tickled inside her,
    She swallowed the spider to catch the fly,
    I don’t know why she swallowed the fly,
    Perhaps she’ll die.

    There was an old woman who swallowed a horse,
    She’s dead—of course!

    Silly Microsoft! Why did you swallow the DOCTYPE?!

  139. Reading Maciej Stachowiak’s post on the Webkit weblog about Versioning, Compatibility and Standards reminds me that Microsoft is taking on a huge technical burden by committing to distributing and supporting two separate rendering engines in MSIE 8, including all of their security issues and complex interactions of HTML quirks, standards, and almost-standards modes, CSS, Javascript, the DOM, and each other.

    This couldn’t have been universally popular within the company, and I would have loved to be a fly on the wall in some of the meetings. Imagine the poor engineer who has been working on the new rendering engine for a year, and now is going to get stuck working on a million regressions to help keep the old one limping along next to the new one.

    If Microsoft is committed to MSIE’s future, then they will do everything they can to encourage developers to support the MSIE8 rendering engine—and consequently to adopt real web standards. Maybe MSIE7’s engine can get phased out in five years and MSIE8 can move forward without breaking their web and ours, mostly just adding features like other browsers, and abandoning the insane prospect of accumulating rendering modes. If HTML5 matures by the time MSIE8 is released, then version targeting can be ignored altogether.

    Or maybe Microsoft will favour Silverlight at the web browser’s expense, and MSIE will fade into obscurity as the bloated big-business intranet browser. Lots of non-techies already know about Firefox and Safari.

    Either way, it sounds like accommodating MSIE will gradually become less of a burden for me to support.

  140. But since Microsoft’s own bugs and own slowness to change had lulled millions of site creators into coding in a non-standard fashion that worked okay in IE6, Microsoft couldn’t write off those customers. It had to find a way to appease such people while still doing the right thing by standards-oriented developers.

    This is the question I continue to have (and that others have asked as well) and I would really like for someone, anyone, to answer it so that I understand better the proposal:

    If IE7 is the version of Internet Explorer that “broke” those millions of IE6 fashioned sites, why isn’t the default rendering engine going to be IE6, in order to fix the problem?

    The logic doesn’t add up. Is there something special about IE7 that corrected that issue that I don’t know about? It’s entirely possible that such is the case. My question is sincere, not smarmy. :)

  141. If IE7 is the version of Internet Explorer that “broke” those millions of IE6 fashioned sites, why isn’t the default rendering engine going to be IE6, in order to fix the problem?

    Great question. I don’t know the answer.

    Possibly the 100 top sites that got “broken” in IE7 are now “fixed” — and Microsoft is hedging its bets to avoid another ordeal like that.

    Logically, I agree, they don’t seem nearly as likely to face the same problems next time. If IE7’s compliance is on par (or nearly so, these equivalences never being perfect anyway) with Firefox, Safari, and Opera, and if the sites that were “broken” are now “fixed,” how many sites will are likely to “break” in IE8?

    Possibly there are deeper concerns — fear of bugs in early versions of IE8, for instance — or maybe a really angry marketing guy who doesn’t want a repeat of last year is calling the shots.

  142. @Bridget – Without a DTD, the default engine in IE7 is IE6. You have to add a DTD to make IE7 act like IE7. This is the exact same type of thing that MS wants to do with IE8. So it would be….

    No DTD = IE6
    DTD, no meta tag = IE7
    DTD and meta tag = IE8

    The reasons IE7 broke websites are twofold. One is that those of us who wrote code to the standards, but with a few IE6 hacks, had no way of holding back IE7 until we could actually check and fix our pages for IE7’s new quirks (since there was no developer edition released early). The other is the code generators started adding in the DTD for people who didn’t know better, partly at the request of web standards groups, which made IE7 actually act like IE7, not IE6.

    I believe the belief in this case is that the damage is done as far as IE7 is concerned and people who were most affected did fix their sites (at least for IE7, I expect they still are not standards compliant). I think the idea is that web standards groups would ask code generators to not include this meta tag by default (or at least to not include the ‘edge’ keyword by default), which would leave websites in the same spot they are today… which is hopefully working in IE7.

    @John – “it penalizes non-compliant web pages.”
    That by relation penalizes users and the flow of information. Getting usable information to users is my primary concern. If I intentionally get in the way of that, it just reveals my arrogance as a designer.

  143. @Jeffrey – My guess (and only that) is that since the MS team wants to use a new engine instead of just updating the old one, that they have been given a mandate from up high to guarantee that current sites don’t break. Since there is no good way to test what glitches will get through with a new engine (not on the scale MS needs at least), the dev team sees their best bet as locking old sites into IE7. I would not be surprised if such locking isn’t a condition of their being allowed to revamp the engine to the level they feel is needed. All my guessing, of course.

    – Sorry for the double post, I should have refreshed before the last submit to catch your comment.

  144. Christopher: I’m just guessing, too, but what you’re suggesting seems likely and parallels my own conjecture.

    Put more simply (as I did earlier in this thread), doing this allows IE’s engineering team to stay on the standards track and to greatly improve IE’s standards compliance without fear of running afoul of inept developers or angry suits.

    Since the team working on IE’s standards support is talented and committed, and since they are now free to do what they have probably wanted to do for the past seven years, IE’s standards support will continue to improve, and that is good for all of us.

    If accepting the existence of this toggle (whether I opt in or not) is the price for IE getting better and better where web standards are concerned, I’ll gladly pay it.

    The counter-argument, whatever its merits, pushes IE off the standards track, and for me that’s a non-starter.

  145. Jeffrey and Christopher, thank you so much for your answers. I did not know that without a DTD, IE7 rendered websites in IE6 mode. Now that I am informed, I understand how things work just a little better.

    So, if IE7 becomes the default rendering mode, do you imagine that it will continue with that specific behavior when a DTD is completely omitted? I fear asking over at the IE blog because the noise over there is so loud, I don’t think my honest questions would be noticed.

    I will mull this over some more. I’m still not completely convinced, but the more answers I get to my questions, the less ignorant my opinions become.

    Again, thank you for taking the time to reply. It really helps a lot.

  146. Just to come back on a response to what I said earlier:

    This is nonsense. The sort of sites that break in IE7 are the ones that use clever CSS2 layout stuff, the sort of sites that are maintained by people who know what they’re doing.

    Exactly. And I’ve run into multiple sites where the designer was leaning on hacks so much that IE7 broke the page.

    Web development on the university level is 3-5 years behind everyone else. So, you see a lot of sites that have hack-laden stylesheets that date from the IE-domination days of 2003-2005.

    In other words, we’ve been blaming IE for a poor implementation, but the problem I’ve seen is poor implementation by designers and developers. As much as conditional comments are loathed by certain designers out there, I really think the correct usage of them would have prevented many of the IE7 headaches — and should avoid a lot of the headaches when IE8 comes. (Mind you, it won’t protect us from the mountain of bugs that IE8’s new engine will bring, but at least we’ll know it works in IE7. :) )

    No site written using tables and bog-standard HTML4 is ever going to break in future browsers because all browsers currently implement those bog-standard tags without fault at present.

    Of course, you do realize that this means we have not two but FOUR rendering modes working here: IE8, IE7, Quirks, and the legacy code strewn across all three to support HTML 2/3/4 pages. Yet no one is asking when support for HTML 3 is going away.

    In a sense, we’ve always been specifying a target browser engine. This is just another method to do so, along with DOCTYPE, IE’s conditional comments, and our buckets of hacks.

    So I fail to see why we need to force the world to be stuck on IE7 as a result of what is proposed.

    If you actually read my comments you’d see that I agree with Jeremy Keith — the IE8 engine should be the default, not IE7.

  147. Jeffrey, I really like this blog post because I am opposed to the version targeting http header, and I find more interesting arguments here than in the numerous blogs sharing my view.

    Your arguments, as far as stated, are quite clear to me. Yet there is an argument which, though having been addressed in several comments, was not yet taken up. So I’ll restate it in a longer, more systematic way (my native tongue is not English, so I apologize for any possible bad wordings).

    Being a Gecko user since, hmm, 2000 or so, I notice that the web is now a much better place than it was at the time when IE5 and IE6 held 95% of the market. Then, many sites looked slightly broken, and some were dysfunctional at all. What has brought this change?

    Well, perhaps it was your work and the work of other standardistas, yet (to be honest) I disbelieve. Back in 2003 it was not uncommon that online bank account operations were restricted to IE. It was the sudden rise of Firefox that made the web a better place. And this worked because sites broke, customers complained and web developers fixed it.

    Two years ago, the much improved IE7 hit the stage, and again things got better. Here was a browser that was expected to become dominant soon, and it “broke” pages. In fact, these pages had been designed in a broken fashion, and the pressure exacted by IE7 convinced people to fix it. In the end, I (as a Gecko user) got a better web. Gecko browsers can now access close to 100% of the web with at most minimum penalty.

    When I heard that IE8 would be standard-compliant to a level that actually matches the conformity of other state-of-the-art browsers, I became excited and optimistic. With Gecko, Safari, KHTML, Opera and finally IE passing Acid2, who would still write pages depending on broken box model or corrupt float handling?

    But nay, I had opened the bottle of champaign to early. IE8 (and indeed all further versions, if the commitment to backwards compatibility is to be taken serious) will offer an IE7 mode which, though not exactly as horrible as IE6, still falls behind the power of the competitors.

    This means that the IE7HTML dialect (including CSS, DOM and JS) will be the most future proof version of HTML that ever hit the web, at least if a Microsoft-only ecosystem is assumed. Developers sticking to is as slavishly as many did for IE6 will get a big reward: Their pages will never break. This is more can can be promised for those who code according to HTML401 and CSS21.

    Given this choice, why should web developers opt for standards?

    The current situation in interoperability is not perfect, but quite good. Sites that render well in IE7 usually also work in other browsers. So even if the significant market share of Firefox (and Safari) is taken into account, there is no driving force to use the improved rendering engine of IE8, or any standard at all.

    So how can the implementation of version targeting forward the case of web standards?

    I think that “Design for IE7” will become the new principle of cheap web design. It will never break in any future version of IE, and it is likely to work in all other browsers. Essentially, Microsoft has then hijacked standards — but why are you applauding to it?

  148. Jeffrey, I see your points and I understand your rationale for supporting this, but I remain unconvinced that this is the best solution to the problem.

    I understand the position Microsoft is in. With the largest market share they have the potential to do the most damage. But they also have the potential to do the greatest good. And I simply don’t see version targeting as doing the greatest good. Not even potentially.

    DOCTYPE switching was the right thing at the right time, because standards-based design was new and a lot (a LOT!) of sites would have broken without it. But the broken box model is nearly ten years in the past, and it may well soon be a distant memory. As designers/developers (and yes clients!) become more standards aware the deep need for it will disappear. Clients (large and small) are already asking for web standards, WAI, and 508 conformance.

    But maybe the idea of DOCTYPE switching isn’t the right thing anymore. Maybe it’s an idea whose time has come and gone.

    And let’s really tell it like it is. IE7 didn’t break the web. IE5/6 broke the web. We don’t have to hack IE7 the way that IE5/6 need to be hacked. The main reason sites broke in IE7 is that they were either coded strictly for IE5/6, or coded to standards and hacked to address the bugs and display errors of IE5/6. IE7 carried a few of its predecessor’s bugs, but it had also cleaned up many of the display errors. This made IE7 an anomaly. It was better, but it still wasn’t up to par with the other players on the field.

    But as IE5.5/6 fade into the ether there will be less need to hack CSS to conform to them. In the same way that we don’t code for Netscape 4, we will eventually stop hacking CSS for IE5/6 (and sometimes 7!).

    And then I ask, what is the need for version targeting? When Internet Explorer conforms to the standards, what need do we have for version targeting? Sites that are coded badly now will be redesigned in a few years time. By designers whose default browser will likely be IE7. Browser specs from clients requesting IE5/6 support will reduce. As more sites adopt standards, what’s the need for version targeting?

    The only one I see version targeting helping is Microsoft.

    Version targeting will hide potential flaws in Microsoft’s upcoming browsers from websites.
    Version targeting means that Microsoft can continue to release a sub par browser into the wild, and have it sting less.
    Version targeting means Microsoft can talk the talk, if not walk the walk.
    Version targeting means Microsoft gets to say “Jump!” and we have to ask, “How high?”

    Jeffrey, you brought up the scenario of your mother-in-law and her school site, or the millions of people who don’t know or give a hoot about standards. You talked about how you’d be surprised if these non-professionals were creating websites with the most cutting edge tools. Well I’d be surprised if they were coding WITH standards. I’d be surprised if the sites they created even approached standards-based design. I would think the more likely scenario is they are creating table-based sites, with FONT tags et al. Nothing groundbreaking, and certainly nothing that would break in IE6/7/8.

    Again, I understand Microsoft’s position. I understand the IE Team’s position, but this is a temporary fix, to a problem that I see going away eventually. And then again I ask, what’s the need for version targeting?

    Version targeting also means that lazy developers don’t have to worry about standards. They will be coddled. How does this advance the cause of standards? If they are not confronted with their ineptitude, how do they learn the proper way?

    Jeffrey, you said:

    Sigh. It _is_ optional. I have no plans to insert it on any of our client sites. There’s no need.

    We use progressive enhancement on our sites. If a small detail works in Firefox, Opera, and Safari, but doesn’t work in IE6 or IE7, that’s not a problem to the site’s users, owners, or designers.

    Users of Firefox, Opera, and Safari may have a slightly enhanced experience. That’s okay. That’s the nature of progressive enhancement.

    If we want users of future versions of IE to also enjoy those enhancements, we’ll add the meta element to those sites. If not, we won’t bother ourselves about it. That’s what’s meant by optional. Optional. Not necessary.

    But we’re not really talking about progressive enhancement. With IE, up to this point, it’s been about bug fixes and display errors. If IE wasn’t a buggy sub par browser, it might be about progressive enhancement. If Firefox or IE or Opera supported a feature of CSS that we could exploit in one browser that the others could pick up on when they supported it, it would be about progressive enhancement. But now, at this moment in time, it’s not about a feature that IE doesn’t support. It’s about multiple display errors and bugs that have to be hacked so that IE renders correctly. This is not what we want to support. This is not what we should be supporting.

    If IE8 supports everything that FF and OP support, and even more, I will stand up and sing its praises. If it comes out of the gate buggy and just creates more headaches then I will pray for its swift demise, the way I pray for the day I no longer need to support IE5/6.

    You said, “It _is_ optional. … There’s no need.” But there will be. If I omit the META tag I am condemning IE users to a sub par experience. Even if IE8 can display everything my style sheet declares, if I omit the META declaration, IE users will get a sub par experience. When the client asks, “Why can’t we have this working in IE?” Do I explain how I object on principal to a Microsoft proprietary hack that holds my CSS hostage – do I tell the client that IE simply can’t do it (and get caught in a lie when some site with the hack in place does the very thing the client wants) – or do I just say nothing, include it, and make the client happy. Optional? Ha!

    But in 10 years time when this hack has proliferated to every corner of the web, and Microsoft no longer supports the method, or has moved on to some new method of hamstringing the web, and someone asks me what this little piece of cruft is, and why is it in all our templates, I will start the story with a wry smile.

  149. Browsers in 2000 and 2001 were already “forcing” standards-aware developers to do something extra (invoke the DOCTYPE switch) and “coddling” ignorant developers (by rendering in quirks mode if developers did not invoke the switch). This is nothing new.

    I’ll repeat this paragraph at the end of this comment. Just like a concept album!

    IE5/6 broke the web. We don’t have to hack IE7 the way that IE5/6 need to be hacked. The main reason sites broke in IE7 is that they were either coded strictly for IE5/6, or coded to standards and hacked to address the bugs and display errors of IE5/6.

    Correct. Everyone knows this.

    But we’re not really talking about progressive enhancement. With IE, up to this point, it’s been about bug fixes and display errors.

    Correct, in IE 5/6 it was about bug fixes. But from this point forward, it will be about progressive enhancement. Jeremy Keith’s example of including generated content that you know IE users (i.e. the overwhelming majority of web users) won’t see is a progressive enhancement issue, plain and simple.

    Jeremy is flabbergasted that when IE8, which will support generated content, comes out, it will render in IE7 mode unless the developer overrides this by toggling. I don’t blame him for being flabbergasted. So was I.

    It sounds crazy to anyone when they first hear it. It’s the exact opposite of the way things normally work. Today’s car doesn’t drive like yesterday’s car unless toggled by a knowledgeable user. People rightfully suspect any big inversion in the way things work. If Microsoft is the one proposing the inversion, it’s natural to be that much more suspicious.

    But Jeremy (and you and I) are viewing Microsoft’s software design decision through the lens of the forward-thinking, best-practices driven web standards pioneer (or at least the well-informed web standards practitioner).

    Well-informed practitioners are not the problem (with the exception of the standards-compliant site that broke in IE7 beta because it relied on CSS hacks that no longer worked; but if we were informed enough to write those hacks, and informed enough to test in IE7 beta, we got the site fixed by the time IE7 came out; so again, we are not the problem) and we are not the people for whom version toggling was invented.

    I don’t have any special inside knowledge about this. Nobody has confided in me. I wasn’t present for the discussions that led to the decision.

    I’m simply analyzing a decision someone else made, looking for the logic behind it.

    And the logic behind it seems clear, if you remove your “I’m an expert, why should I have to write a new tag to please Microsoft” goggles for a moment.

    The inexpert developer (whether professional or amateur) is the problem. The solution to the problem needs to work for the inexpert developer. The inexpert developer won’t participate in online discussions of version targeting, won’t add a new tag to his/her templates, won’t learn about web standards and code to them (at least, not this week). The inexpert developer is going to foist badly authored content onto the web. Microsoft, with the biggest stake in not breaking that content, has designed the toggle so it is set to IE7 by default. Presumably even the most debased, non-standards-oriented developer in the world has tested his site in IE7 and knows it works there. So his badly authored site will continue to work.

    So will yours and mine. If we choose to make them work as well in IE as they do in Firefox, Safari, and Opera, we’ll invoke the toggle.

    If I omit the META tag I am condemning IE users to a sub par experience.

    They are condemned to a sub-par experience TODAY if you use progressive enhancement techniques not supported by IE7. Yet you may go ahead and do just that.

    Because “condemned” is a pretty strong word for what is actually a very small thing. And “sub-par” is also a grotesque exaggeration for tiny differences most users wouldn’t notice or care about if they were made aware of them.

    If you’re a halfway good designer, you’ll make sure that the site looks good in IE7 with or without those extra doodads.

    My site, the one you’re reading, uses text-shadow, a CSS3 property that is only supported by Safari.

    Have I *condemned* Firefox, Opera, and IE users to a sub-par experience? Of course not.

    There’s a nice little extra detail there for people whose browsers support that detail. But the site still looks fine without it.

    If you are a good designer, you are designing a range of experiences, not just the optimal experience. If you are a good designer, your site, authored to standards, works in multiple browsers even though it will not be identical from one browser to another or one operating system to another.

    In the Mac operating system, Firefox and Safari handle text differently. I prefer Safari’s rendering, but when I use Firefox I do not feel “condemned” to a sub-par experience.

    Back to text-shadow, a CSS3 property Safari supports and other browsers do not.

    If Safari required me to add a perfectly standards-compliant meta element to the head of my web document before it would show text-shadow, I would not consider that a hardship. (It would, I agree, seem a bit bizarre.)

    But standards toggles are nothing new. We introduced them in 2000 with the DOCTYPE switch in IE5/Mac and Mozilla. IE/Windows joined the fun in 2001. Everyone reading this page, I will assume, has used the DOCTYPE switch to invoke standards-compliant behavior.

    Browsers in 2000 and 2001 were already “forcing” standards-aware developers to do something extra (invoke the DOCTYPE switch) and “coddling” ignorant developers (by rendering in quirks mode if developers did not invoke the switch). This is nothing new.

  150. So, if IE7 becomes the default rendering mode, do you imagine that it will continue with that specific behavior when a DTD is completely omitted? I fear asking over at the IE blog because the noise over there is so loud, I don’t think my honest questions would be noticed.

    My guess would be that IE8 will continue to go into quirks mode (what we’re calling IE6) when the DTD is left off, thus leaving IE8 with three main rendering modes. It sounds like it could be a nightmare long term for the IE dev team, but if they feel that is the sacrifice they need to make in order to make IE8 mode as standards compliant as they can, then I will support them in their goal.

  151. @Stephen,
    Having the end user have a toggle to switch rendering mode simply won’t work since the average end user will never think to use it. They’ll look at a site and think the developer screwed up, not that they have to push that funny new button on their browser.

    @Christopher,
    There was actually a prerelease of IE7 for developers to use, I had it for a few months before the actual release for testing. I’m not sure if it was actually announced anywhere though, I found it by random chance as a link on the sidebar of one of the msdn pages.

    @dw,
    It’s actually maybe even worse than that depending on the university you goto. When I first started getting into web design at school they were still teaching how to use dreamweaver and fireworks to draw a site and slice it up into a table layout using image maps for most of the important navigation, granted this was a few years ago so things have probably changed since then (especially since all of us graduates sent letters to the teachers informing them of the better way to code), but still teaching early 90’s style coding as late as 2005 is pretty bad.

    @Zeldman,
    The way I see it there is a difference between a doctype and the meta tag MS is proposing, that is one of them is a standard. I can goto w3.org and get the doctype list and what each one is, what it means, and it’s status. I get to goto MS and hope they’ve posted information about the meta tag. There are some blog posts about it on the w3.org site, but the most useful information on it there is that it apparently doesn’t respect the http protocol right. The doctype was also supposed to work as a switch for all browsers, but with this meta tag being introduced for just a single browser it’s like MS is saying “We screwed up, but we’re still too good for this so for us to work, *just* a doctype isn’t enough, you need to respect our meta tag too, since we’re not going to bite the bullet and admit to the world our browser was ever bad or in the wrong. We’re a monopoly which means we get to do what we want and dictate to you what you need to do to your code on top of what the W3 says.” Now I don’t really believe that’s what’s going on at MS, but it at least seems like it could happen given their past and what they’re doing now.

    Certainly at the least when ignoring the possible site breakage, if you ask an average person “When releasing a new product that works better than older versions but can still emulate them, does it make sense to have it default to an older emulation unless extra work is done to tell it to act like the version it actually is?” the answer is going to be that it doesn’t make sense.

    —-

    Also to those who read into my statements that I’m slamming the door, I’m not at all advocating a slamming of the door, just working on closing it at a speed people can keep up with until it is finally closed. I personally see IE8 defaulting to it’s own rendering mode the door actually moving as opposed to standing still with an IE7 default rendering mode.

    The longer we wait to start moving the door, the longer people remain making sites designed for IE6-7, which will one day have to break no matter how devoted MS is to backwards compatibility. It makes more sense to have the smaller breakdown now (which I think can be handled if MS can bite the bullet) than a major break later on.

  152. They are condemned to a sub-par experience TODAY if you use progressive enhancement techniques not supported by IE7.

    That’s what Standards are meant to change…

    *”Edge” should be the default, not IE7!* (That’s my new sig ;)

  153. Ben,

    It’s true that the DOCTYPE is a standard and that the meta tag is not, but MS needs a solution that standards don’t offer, since no other browser needs what MS needs. MS is creating an IE-only fix because it’s an IE-only problem. The goal is not, I think, to make people use this tag forever. It’s a transition to help put MS in a position to fully support standards without angering large corporations that don’t care about those standards. And as much as people who want progress hate to hear it, MS has to please those corporations, because those corporations are some of its biggest patrons.

    I work for Bank of America, and our intranet breaks in Firefox in many places. We still use IE6 on our machines, and I can only assume that this is because the intranet breaks in IE7, too. Eventually, BoA (and many other corporations) are going to need new computers. What happens when MS stops shipping/supporting IE6? What happens when they stop shipping/supporting IE7 many years down the line? The new computers that large corps buy will come shipped without the browser that they’ve been using before, and if MS gives them something that requires them to immediately recode the many wings of their corporate sites, there will be huge problems.

    But that won’t happen, because Microsoft will do one of two things: it will never stop shipping/supporting the legacy browser for high-profile customers, or it will come up with a way to can the old browser without ticking off the customers. They’re trying to do that now, and I think that it’s probably the best solution. It forces a standards-compliant browser into those big corporations, who will (despite the opinion of the many independent web builders out there) eventually learn that adopting those standards will save them money by providing valuable efficiency.

    Believe it or not (and I’m not talking to you, Ben, but sort of to everybody), designing with web standards will not always be the elite way of doing things.

  154. @Robin – Technically, yes. I find that most people attribute the broken box model to IE6 itself, not specifically to quirks mode though, which is where I was coming from. Perhaps that is only the case amongst people I have spoken with though. Sorry for any confusion.

    @Ben – Really? I was not aware of one. We had a version of beta prior to release, which ultimately proved every close to the retail version (none of my sites broke at least), though we had no guarantee that things would not change from that beta to final retail. I apologize if I was mistaken in there not being a developer edition. We should have looked harder. :)

  155. If the default behaviour of any future IE version is to render as ITSELF, then surely all lousy developers need to do to fix their sites is put in the required meta tag. Punishing quirky developers rather than standards-friendly developers must be a better approach?!?!

  156. @Jon Nott:

    I’d love to see you try to get lousy developers to add a nebulous meta tag to their code that magically gets it to work right. How are they going to get their heads around that, eh? Remember, they’re lousy developers. A lot of them are developing on WYSIWYG tools, are too afraid of code to dig into that kind of thing, and you’re not going to be able to broadly educate people on how to insert a frickin’ meta tag to change the way a browser renders their page! It’s already bad enough that WYSIWYG editors rarely accurately represent in their Design Views the way a page will truly render in a real-world browser.

  157. Punishing quirky developers rather than standards-friendly developers must be a better approach?!?!

    No one is being punished. Why use charged language like “punished” and “condemned?”

    We’re talking about incremental standards compliance upgrades and a standards toggle that sophisticated developers can take advantage of if they choose to do so, and unsophisticated developers (who won’t hear about it anyway) can safely ignore.

    We’re not talking about torture, war, injustice, brutality, racism, sexism, or cruelty to animals. We’re talking about an optional standards toggle for knowledgeable developers who may wish to take advantage of future capabilities of IE.

  158. “Coddled” and “condemned” – it’s hyperbole, I know, and it probably doesn’t have it’s place in this discussion.

    I also know that you are not privy to any more information about this than we are. And I appreciate the angle that we are looking at this from (expert goggles on. check!).

    The inexpert developer (whether professional or amateur) is the problem.

    Well how does the web standards movement reach them? This just alleviates the problem for Microsoft. The inexpert developer has learned to code to a broken browser, and the lack of obstacles to business as usual hasn’t taught them any differently. So why not break a few eggs? Why not have Microsoft/IE raise the banner of standards. What better way to get the idea across to the largest percentage of people. Imagine if Microsoft championed standards the way the other browser makers do.

    I understand the IE Team may be under a different mandate. And I understand that standards toggling has been with us in different forms for quite a while. but as I said before, maybe it’s an idea that has run its course.

    IE can grandfather in all those sites coded inexpertly, but those sites will be recoded eventually (hopefully by more expert developers), or simply fade away over time. And in time (a relatively short time), standards toggling may not be necessary.

    And I don’t see how standards toggling helps progressive enhancement.

    If Safari required me to add a perfectly standards-compliant meta element to the head of my web document before it would show text-shadow, I would not consider that a hardship. (It would, I agree, seem a bit bizarre.)

    True. And if IE were giving us something extra here, I think we would all have less of a problem with it. We’re (the expert developers) not gaining anything here (and I can hear you say we’re not losing anything either).

    Doing this means we’ve lost our standard behavior, in favor of the inexpert developers standard behavior, because IE can’t afford to look bad to the web at large.

    And I will ask (rhetorically of course, since I know you don’t have the answer), what happens a few versions down the line? What happens afterIE10 is released?

    Let’s start with the scenario of the expert developer who, when IE8 is released, decides that the site doesn’t display properly in IE8 (due to IE8 bugs) and decides to specifically toggle the site for IE7.

    Now IE9 comes out and fixes all the bugs in IE8. The site is not redesigned (because it was built expertly) and IE9 will show the site in great form, so the developer and the client want to show the best version to IE9 users, and give IE8 the IE7 version. Now we need two meta tags. One, potentially set to edge, for IE9, and one for IE8 so that it uses the IE7 rendering engine.

    Now along comes IE10. And lo’ and behold IE10 sucks. It’s a disaster (it could happen – happened to Netscape). It even botches the good IE9 rendering that we could have defaulted it to. And now we have 4 IE browsers in the wild all with enough market share to cause us to seriously consider them viable. Now we have to potentially serve one meta tag to IE10 to cause it to act like IE7, one meta tag to IE 9 to let it continue to act like IE9, and one meta tag to IE8 to make it act like IE7. Well how exactly do we do that? Conditional comments?

    And the inexpert developer is blissfully unaware of the development nightmare (hyperbole) that IE is becoming.

    The potential for this to be disastrous for more than just the expert developer is a real problem.

    Maybe it really is time to start sunsetting quirks mode.

    The search for hacks to get around the META idea has already begun.

    I see what your saying about looking for the logic in all this without my expert goggles, but I still wanna say, “give a man a fish, and he eats for a day…”.

  159. Zeldman, you sure this tag wasn’t tested on animals first or anything? It’s always a possibility. Down with cruel HTML testing on animals. JK.

    Actually wanted to consider the logistics of having the wysiwig editors update to auto add the opt-in to older rendering, paired with an batch or executable from MS that would run through a CSM or plain server and add the tags as well. Developers in the know can go back and take out the tags after fixing up the sites, less knowledgeable developers will just see another tag put in by their editor that they don’t know what it’s for. The mess with it and see their site break and never mess with it again. As wysiwyg editors get better they can stop automatically putting the tag in. We’ve got the Web developer CS3 suite here where I work for some of the people and I know they’ve had it update several times on it’s own. As long as most popular wysiwyg editors auto-update this could be rolled out to the public. At that point the only serious barrier is getting the batch/exe out to everyone who needs it.

    Naturally the opposite side is that wysiwig editors have to start adding the opt-in to better rendering modes as they get better themselves, which is less work in the beginning, but over time seems like it could create quite a mess all over the net. Unless they use “edge”, but until IE is close enough to compliant that updates to it’s engine have no possibility of damaging sites made to work in the past version, using “edge” isn’t a workable solution.

    Honestly neither seem like a complete solution to me, but it’s good at this point to still consider if there is another better way possible.

  160. Having WYSIWYG editors add the opt-in would defeat the purpose. The reason DOCTYPE switching is no longer reliable as a standards toggle is that tools used by people who don’t know what they’re doing inject complete DOCTYPEs, telling browsers to go into standards mode instead of quirks.

  161. But Jeffrey, this is doomed (hyperbole) to the same fate since the people who will update the WYSIWYG templates, CMS templates, etc. are the very standardistas who updated the templates with proper DOCTYPEs the first go-round.

    It won’t be long before every single one of the programs and apps we all use are updated with default templates that use this META tag to trigger standards. Likely they will all default to “edge”. It was how standards were rolled out to the unwashed masses, and this will be exactly the same thing.

  162. Yes, but eventually one would hope that the editors would get good enough to make valid sites even when the user doesn’t have a clue what they’re doing. That’s the assumption behind having the editors include the opt-in eventually, even if it’s folly and unlikely to ever happen.

    I think that having them add the opt-in to use more recent rendering options would likely stay a version or two behind IE at best probably, but at least it’s a way to start having sites be made better by making the tools better.

    Another way to go is for the editor to detect what version of IE is installed or ask them what version they want to code for when they start making a site.

    I know that at least for now wysiwyg’s can’t add the opt-in (unless it’s opting-in to IE7 rendering) but I think it’s very important to consider where we get to from each solution. Something bad in the short term could have the best results of any choice 1 year down the road, and it could very well nose-dive after that point and become the worst choice possible from that point on out. It’s also not realistic to think that we can picture 5 years down the road without accounting for advances in all our tools.

    Also, personally I don’t think that the makers of wysiwyg editors will wait till their tool is on par to add in the tag either, they’ll probably try to make it a selling point, that their tool writes to work with the latest form of IE, but with my example I gave them the benefit of assuming they’ll wait till their editor is good enough that it should add in the tag.

  163. I had an earlier comment disappear into the ether, I’m going to try to reconstruct what I believe were the salient points.

    “Coddling” and “condemned” – it’s hyperbole, I know, and it probably doesn’t have a place in the discussion. I will do my best to keep it out.

    Again, I understand the IE Team may be under a different mandate, but what better way to help inexpert developers become standards-aware than by having Microsoft themselves extol the value of standards the way the other browser makers do? Why not break a few sites. As we’ve all said, no one’s going to die. It’s just a website.

    If Safari required me to add a perfectly standards-compliant meta element to the head of my web document before it would show text-shadow, I would not consider that a hardship. (It would, I agree, seem a bit bizarre.)

    True. And if IE were giving us something extra here, I would agree. But we’re not gaining something here. We’re losing something.

    We, the experts, are losing the default, standards, forward-facing rendering model, in favor of a backwards-facing rendering model.

    Maybe for the future of the web, it’s time to break a few eggs. Maybe DOCTYPE switching in any form is an idea whose time is over.

    But another concern of mine, and I’ll ask the question rhetorically (since I know you don’t have the answer) is what happens a few version from now? What happens when IE10 is released?

    Let’s say I’ve expertly designed a site (standards, progressive enhancement, cutting edge), and then IE8 is released. And IE8 is flawed and doesn’t render my expertly designed site properly, so I add the META tag to make it default to IE7 rendering. Along comes IE9, and IE9 renders beautifully and takes advantage of a lot of the enhancements I’ve coded into the site, and both the client and myself want IE9 to display as IE9. So now I need a second META tag for IE9. One to make IE9 display cutting edge, and one to make IE8 display like IE7. Then out of the blue they release IE10 (it is after all 2010, and this coincides with the release of MS Server 2010, but I digress). And IE10 is a disaster (it could happen – it happened to Netscape). IE10 can’t even render in IE9 mode properly. And we need a way to keep users using the site, so we’ll need to add a META tag to make IE10 default to the IE7 rendering engine, which is the only thing it seems to do properly. So now I have 4 browsers in the wild and each has a significant enough market share to make them viable (IE7-10). How do I go about serving mulitple META tags to different browsers? Conditional Comments?

    The search for hacks to get around the META tag issue have already begun (and yes I know there’s some sarcasm involved, but it will happen).

    Maybe the way forward is not the way back.

    Maybe we should seriously consider sunsetting quirks mode.

  164. Ah, if only we had something like the Design Police! Yeah, the Web Standards Police! Let’s stamp every lousy website out there with rev="lousy" and build a huge database out of them. And give it for free to the IE team…

    Really, I can’t remember so much noise had been made when Microsoft introduced FAVICONs. Yet it’s a meta tag and it’s completely absent from any W3C recommendation, yet nowadays every current browser supports them, every knowledgeable developer with a bit of taste uses them and leaves ignorant ones with nothing but the standard browser’s icon–which is oh-so-XXth-century.

    Making things clean, ordered, fair, compliant has always been a battle for minorities. Like when you drive a car powered by a battery rather than pollutant fuel or like when you’re Jesus-Christ. Let’s say this meta tag is just a virtual metaphor of your will to bringing the web to the place where it’s always meant to be.

    Or else, stop using favicons right now!

  165. At first, I too was sceptical, but having read through your obviously thought out responses Jeffrey, I view the current proposal as a real way for people who want to move forward in web design / development to do so.

  166. My concern is for the future, not just this upgrade cycle. I see this ‘feature’ as solidifying Microsoft’s grip on it’s remaining marketshare by essentially forcing (or at least ‘strongly encouraging’) developers to add what amount to ‘Better in IE8′ tags into their code).

    Jeffrey, let’s assume for the moment that the feature is implemented as specified, that as time goes on and future versions of IE are released documents that do not have this meta-tag in them continue to be rendered as IE7. Eventually, IE7’s feature set (and more importantly, it’s bugset) cause just as much updrag as IE6 did.

    But, all is not lost! Developers can happily add in a ‘Better in IE8′ tag and thereafter ignore the IE7 renderer! Umm. Except for those users who are actually using IE7. Drat. And who have little incentive to upgrade because most pages look the same in IE7 anyway. Well, let’s ignore those users anyway, just for the sake of argument.

    So, developers start adding in the meta-tag to force the browser to use IE8 or IE9 or IE10, and in fact everyone has to target their pages to particular versions of IE (remember, if they do nothing they are targeting IE7 by default).

    Then Microsoft devises some new ‘advanced’ feature in IE10 implemented with some non-standard markup that conveniently gets ignored by earlier IE rendering engines (if they wouldn’t have ignored it before, they will when patched with a ‘security update’) but horribly breaks other standards-compliant browsers.

    Now other browsers have to switch their behavior based on the IE version the document claims to target.

    OK, so this is a somewhat contrived scenario. I could probably un-contrive it, but it would get longer. There are plenty of possible variations, and I suspect that behind the scenes quite a few of these have been worked out using Game Theory.

    I see this proposal as giving Microsoft some measure (exactly how much isn’t clear) of additional power over the pace of standards adoption by encouraging developers to add what amount to ‘Best in IE8′ tags, and I don’t trust them with it. They used to exert this influence via their server-side technologies, hence ASP.Net’s web-controls originally targeted recent versions of IE and served up non-dynamic HTML3 to all other browsers, even when those same controls would have easily worked. The ASP.Net Web Controls’ development team’s excuse was that they didn’t have the budget to test in anything other than IE. I think this was the status quo as recently as 3 years ago.

    My main point is, we still have no reason to trust Microsoft as an entity not to abuse whatever power they are given, and regardless of how we feel about the current standards team inside MS, they (as you pointed out) could all get fired tomorrow, and in any case there are other teams we would need to worry about.

  167. I think, if IE7 will be the standard engine from IE8 till the end of the IE (or when html5 will be released and adopted around the world and html4 will be forgotten – it’s a similar far away time scale), then the web will be a IE7 web, no web standards web anymore. The most sites will stay in its quirks status and will not use the new meta tag. When in the future will Microsoft reject the “IEx standard engine = IE7″ setting? Most sites will be in quirks status, so Microsoft will never have the reason to reject the IE7 engine.This meta tag and its opt-in is a deadlock.

  168. Thomas, most sites will *NOT* stay in quirks mode. Most sites are not in quirks mode now! Most sites render in standards mode, whether authored to standards or not. That is precisely the problem: badly authored, non-compliant sites are rendering in standards mode because the tools used to author them insert a DOCTYPE.

    The most sites will stay in its quirks status and will not use the new meta tag.

    Quirks mode is not triggered by the new meta tag. The new meta tag, if present, will compel IE8+ to render web documents even more standards-compliantly than it does today.

    If the meta tag is absent, pages will render as if in standards mode in IE7, which is quite standards compliant, unless a DOCTYPE is also absent. Almost all pages today have a DOCTYPE, whether inserted there by someone who knows what it means or not.

    If the meta tag and DOCTYPE are *both* absent, then the page will render in Quirks mode.

    This is exactly what happens in all standards-compliant browsers today.

    The only new wrinkle is that by deliberately inserting a meta element, standards-aware developers will be able to compel future versions of IE to render even more compliantly than IE7 does today.

    You need to reread Aaron’s and Eric’s articles (and maybe other articles too) if you don’t understand.

  169. The biggest question I have about this whole thing is how will it help or hinder the conversion of non-web standards developers to web standards developers. I’d be interested in hearing how this will help things in that regard. My knee-jerk reaction is that it won’t do anything positive, but I am still digesting the idea.

  170. Such an impassioned discussion over a meta tag! From reading the comments, it sounds like some people are having trouble dealing with change. Overall, it seems a reasonable proposal and a small thing to ask of standards-savvy developers and designers. Thanks, Jeffrey, for once again being the voice of reason in a sea of chaos and noise.

  171. Sorry, Jeffrey, I was unprecise. With “quirks status” I didn’t mean “quirks mode” without DOCTYPE but poor written HTML code in general. Please reread my previous comment in this sense.

    What do you think about the possibility of lock-down the web to IE7?

    Most web developers are lazy and don’t care about standards. So, for many years before HTML5 will be the most used HTML version of the whole web (in all new *and* old websites), HTML4 with DOCTYPE and without the META tag will be standard. The IE7 rendering of web sites will be standard for many years. That’s a similar situation like IE6 an its five years stagnation but without the chance of a better IE9 for all – like IE7 was compared to IE6.
    Forget the small minority of standardistas which benefit from better web standards support with IE8; we will be a small, META tag using ghetto in the IE7 rendered web.

    And what will be if authoring tools begin to insert the META tag. Will the META tag also become useless for Microsoft like DOCTYPE today?

    No doubt, I understand the reason of Microsoft’s choice absolutly. But I think it will be the better way for web standards to make IE8 the default rendering engine, release a beta of IE8 early for web developers and standardistas to test the web, and implement workaround in IE8 (such as the almost standards mode in Firefox or whatsoever) – and Microsoft should advertize the “IE=7″ tag for old intranets (like its advertising for Silverlight).
    We need a demonstration that it’s worth to lock-down the web to IE7.

  172. Given the constraints involved, I think Microsoft’s solution is a good one. Further, it has to admitted that in this world not all the responsibility for good code and compatibility rests with Microsoft.

    So, you use said meta tag, then:

    1) Write to the standard and test with good browsers, which will hopefully include IE 8.
    2) Use conditional statements as needed for backward compatibility.
    3) Bomb the Aliens back to stone.

    Well, one of those things is not like the other.

  173. @Adam Prime:
    “The biggest question I have about this whole thing is how will it help or hinder the conversion of non-web standards developers to web standards developers”

    In terms of helping, I think it gives budding standards developers time to learn the trick of the trade at their own pace, rather than suddenly finding IE 8 alters there web site’s look, and they go looking for quick dirty hacks to get it right again. If they have to opt-in, then they don’t have to worry about getting it done by xx release date. They can go away, read up on web standards, and do a decent job of it, then trigger the opt-in once they’ve learnt it.

  174. Thomas, the proposal was made to resolve a problem. The problem is an unintended consequence of the success of the web standards movement. Reversing the meta element’s proposed default behavior will prevent it from solving the problem it was primarily created to resolve.

    That’s why I respectfully disagree with Jeremy’s assessment that the default behavior of the proposed switch is “broken.”

    The meta element won’t educate developers and clients about the benefits of web standards, true; but education and social change are not a browser maker’s job. The browser maker’s job is to render content. Because of early web fragmentation, plus the W3C’s wishy-washiness when CSS and other “recommendations” were initially proposed, plus tragicomically awful designer/developer education, and so on, much of that content is not authored to spec.

    A browser must render both kinds of content: content that is authored to spec, and content that is not.

    For a long time, content that was authored to spec did not render correctly. Thanks to the efforts of The Web Standards Project between 1998 and 2001, and the complementary work of the browser engineers,
    browsers now support correctly authored content.

    But they can’t stop rendering the badly authored stuff.

    It was precisely to resolve this dilemma that Todd Fahrner of The WaSP proposed the DOCTYPE switch.

    A new switch is now needed.

    Firefox, Safari, and Opera don’t need a new switch but Microsoft does, and the need is legitimate, not manufactured.

    The need was discovered by Microsoft and not, say, Opera or Firefox, because nobody authors exclusively to the quirks of Opera’s browser or of Firefox, but many people still author exclusively to the kinks of IE — and older versions of IE were plenty kinky.

    In a perfect world, everyone who creates web content would author to spec. We’d also have peace, love, and understanding.

    Now I’m repeating myself, so I’ll stop.

  175. Wow. That was a lot to read. I was switching sides every few comments.

    In the end I think the meta is a great idea if its absence means using IE7 rendering engine and its presence means using Gecko :) Although then Microsoft could fire all the standards-friendly staff…

  176. “The problem is an unintended consequence”

    Well, fine, but it’s *Microsoft’s* problem, not ours.

    Don’t tax standards-based development and forward compatibility to pay for IE’s technical debt. That’s just wrong.

  177. I’ll respectfully disagree with you that “nobody authors exclusively to the quirks of Opera’s browser or of Firefox”. Sites have done this for Opera (and sometimes in very crazy ways like using media Queries to target Opera) although it isn’t majorly common (outside of JavaScript menus, and 3rd party scripts). It is fairly common though that sites code to quirks in Firefox. Many standards aware developers assume firefox == standards, which isn’t always the case. the event bubbling bug in Firefox’s addEventListener support was a particular nasty one that broke many sites in Opera. Luckily we have JavaScript patching so can work around many of these issues with site patching if we need to.

    It is clear that many more sites design for IE quirks though. almost all of the country of Korea does this for example. I don’t like MS’ proposal one bit though, as it means those broken sites, that have no standards path through the code, can be fixed for Ie but will remain forever broken for other browsers. This proposal only looks out for the interests of IE and none-standards aware developers. It is only logical that Ms will only look out for its own interests when it says “don’t break the web”, but you could argue that MS got into a position where many sites were designed for it and not standards in a anti competitive way. This proposal legitimises to those developers that have written broken code, that it is ok to do so into the future.

    I’m not sure what the solution is though. Opera uses site evangelism, education (we are building a beginners web design series that we will give away for free), and site patching/user agent spoofing to get around the problems we have. For sites with a standards based path, that don’t use object detection (this will solve itself) then it is trivial to flip the detection that checks for IE using patching. The biggest problem (for all browsers) is the sites that only have a IE path, and Intranet sites where it is like a black hole and we can’t see what is going on.

  178. Oh, and in case my earlier comment didn’t make that clear, I disagree that it’s an unintended consequence of the success of the web standards movement. It is, in fact, a consequence (not necessarily unintended at the time) of Microsoft’s market-share, and the multi-year hiatus between IE6 and IE7.

    Sure, it’s not fair to make the current IE team pay for the sins of their predecessors and previous management decisions, but I think it’s fair to hold Microsoft accountable as an organization, and we’re not the ones holding a metaphorical gun to the IE team’s collective head.

    What stinks worst here is the fact that, without any discussion of the alternatives, most of the folks on the ‘pro’ side have implicitly acquiesced to the false dichotomy Microsoft is presenting as a ‘take it or leave it’ ultimatum. No way am I going to accept that the only two alternatives are ‘version targeting’ or ‘no support for standards from Microsoft in the future’.

    In fact, what usually to me when presented with an ultimatum is I get stubborn. Very, VERY stubborn.

    To hell with bad browsers.

  179. @Jeffrey,

    and in fact to everyone else. There was the quirks mode and the standards mode, what if there was a super-standards mode that could be triggered by something that is:

    * not correctly or only partially supported by previous versions of IE
    * does not require proprietary metadata, such as this new header
    * is well-known by savvy developers but not to others
    * is not generated by authoring tools (or in very rare cases)

    I would be really surprised they didn’t think about it, but still it is worth mentioning that XHTML documents SHOULD–as per RFC 2119–be served as application/xml+xhtml and not text/html, stricto senso.

    According to Chris Wilson himself, IE7 doesn’t support it on purpose and it’s his endeavor that the content type will in the long run be supported for strictly compliant browsers. He also states that it is really easy to serve content as text/html for non-compliant browsers, using User-Agent sniffing techniques I suppose.

    Isn’t IE8 the long awaited strictly compliant version needed to make the switch?

  180. The more i reason with both sides of the debate, i keep coming back to the dreaded prospect of having to fix broken websites caused by the defaulting of the <newest browser rendering when they are released.

    The solution of targeting IE7’s rendering when no browser version is specified via meta or http header , is actually going to increase webstandards, by letting old, neglected websites still be viewable 5-10 years from now, hence… the web is going to be dgrading gracefully.

    Another secondary advantage to the defaulting of IE7 (or as specified by the developer at the time of development) is the ability to leave old websites online as an archive… knowing that IE will still enable them to be viewed as intended the day they were built.

  181. Wow. I’ve just been away from the Internets for a week, burying my head in the sand (well, I was in the desert for some of the time, at least). And haven’t things kicked off right royally?

    Today has been a massive catch-up day for me with all this and I will say that as an ex-WaSP (who removed himself not because oif any political differences but because he felt he was not contributing because of other commitments and didn’t want to appear to be on the list yet not actively contributing) when I read the suggestion my jaw hit the flaw and I thought WTF like so many others. I was focusing on on the same negatives as others have, but the more I’ve read in comments and the more clearly the difference between the lucid, cool arguments put forward by the likes of Jeffrey, Eric, the polite disagreements but which are still discussed as gentlemen (Jeffrey & Jeremy), and also knowing Aaron and many of the others involved, I do not believe that _any one of them_ have been sold out to Microsoft. I trust all of their instincts and beliefs, including MS’s Chris Wilson whom I don’t claim to know very well (I did talk with him over dinner once after @Media … but we talked mostly about scuba diving!).

    So I guess what I’m saying is that I’m willing to give this a chance, hoping that we can come to some agreements, hoping that others can place some trust in people involved with driving this forward to a satisfactory conclusion, but this much more likely to happen, I believe, if we have more of the calm, measured talk, and less fire and brimstone.

    The biggest problem in this, I believe, is the way that WaSP appear to have looked in this communication. NDAs are the root of the problem, and for the majority of WaSPs not being able to discuss this until after publication is the real problem.

    And with that, I shall remove the fence from the crack of my arse.

  182. This is a novice’s question, and as such, may very well be silly.

    I have the same concern as I hear from many here and in the discussions at ALA, in that I don’t see this as a lasting solution. It seems unlikely that five years from now, it will be desireable for a new website to default to being rendered in IE7, so this could wind up being just another trap for the unwary.

    That said, I do see value in continuing to render websites as the authors intended! I understand that the doctype doesn’t provide for that, both because it is sometimes inserted where it oughtn’t be and because a browser’s idea of what it means to render, say, CSS may be entirely different from our idea of what that means.

    I am wondering whether it’d be feasible to include the date a website was authored (or substantively revised) and let IE render it in whichever browser was current at that time. This seems to me to have a few advantages: it would strike a possibly more sensible middle ground between defaulting to IE7 and defaulting to “edge”; it might be a little more intuitive a behavior; it might be easier for other browsers to make use of; and it would be less obviously a work-around specifically included for Microsoft’s benefit. (I am trying not to react based on that last, as I don’t think it’s very useful for it to be the primary basis for an opinion on this, but I must admit I object on aesthetic grounds.)

    I would adore feedback on why using the date for this would be impractical, as I can’t imagine that an idea like this was not considered.

  183. All my apologies if this comment appears twice, it is likely that Akismet thinks I do spam–actually I invite anyone to tell me if I talk nonsense. That being said:

    @Jeffrey,

    and in fact to everyone else. There was the quirks mode and the standards mode, what if there was a super-standards mode that could be triggered by something that is:

    * not correctly or only partially supported by previous versions of IE
    * does not require proprietary metadata, such as this new header
    * is well-known by savvy developers but not to others
    * is not generated by authoring tools (or in very rare cases)

    I would be really surprised they didn’t think about it, but still it is worth mentioning that XHTML documents should be served as application/xml+xhtml and not text/html, stricto senso.

    According to Chris Wilson himself, IE7 doesn’t support it on purpose and it’s his endeavor that the content type will in the long run be supported for strictly compliant browsers. He also states that it is really easy to serve content as text/html for non-compliant browsers, using User-Agent sniffing techniques I suppose.

    Isn’t IE8 the long awaited strictly compliant version needed to make the switch?

  184. The reading here has been fascinating, we are all so passionate about validation and web standards, very cool. Thanks for sharing.

    So do I understand this correctly?
    Omitting the meta tag turns IE8 into IE7 more or less.
    I have to use the tag so that IE8 will behave like IE8

    If that is true then fine. No sweat. This is a simple regressive fix. I wonder why no one has mentioned regression testing, so what this jem of tag does is run a regressive test every time a page loads.

    This tag ignores the complex social situation that is encountered when
    people author a declarative language and allows those trapped in a imperitive environment to be regressive by default.

    One line of code that does so many things. Way cool.

    So like me, you will still have use conditional statements in IE7 to achive parity with CSS compliment browsers.

    But this isn’t about us. (I find myself saying that alot lately)

    THX to the IE team for applying regression correctly. They are taking
    a huge leap here.

  185. May,

    Your proposed solution actually interests me quite a bit, and it feels (in an abstract way at the moment, perhaps I can grab at it better over time) like it is a good bridge over the gap separating the two sides here. The only potential arguments against that I can see is that people don’t always code websites to the current browser, and so date-based rendering could misinterpret the intent of the author.

    Of course, another argument could be that your solution is just masked version-targeting, which it is, in a sense, but less specificly so.

    It’s a tough idea with which to reconcile, but I think that the reason I like it is because a date-of-authoring is just so darned semantic, too. It would function as more than a rendering instruction, and I think that could be easier to live with for a lot of people. But then, it isn’t really the version-targeting that most people have a problem with; rather, it is Microsoft’s chosen default.

  186. Brian Warshaw-

    Thank you for your encouragement!

    While there are cases where people don’t code to the current browser, I think they are the exception. Thus, defaulting to what was the current browser at the date-of-authoring seems like it would match the author’s intentions much more of the time than defaulting to IE7 regardless of the date a website was authored.

    I am pondering extensions of this idea which might make it unwieldy, but here goes: perhaps Microsoft’s plan would work well in combination. That is, if you want a version of IE other than the current one as of date-of-authoring, you add the handy little Microsoft-approved hack. In addition to meeting Microsoft’s goals, that would allow people who want nothing to do with such things to steer clear without it meaning that all their future websites stayed in IE7. It would also allow developers to choose to wait to roll out the IE8 version until their desired audience had largely made the switch to IE8. While that latter might displease some, it might also be a good tool to have available in some situations, and I always prefer to have as many options as possible.

  187. @May

    Perhaps I’ve misunderstood your suggestion, so apologies if that is the case, but the issue I see with that is that web site developers the world over have all sorts of different times and dates that they moved over to a standards based coded web site, with each page potentially having vast ranges of creation / revision dates.

    The BBC (here in the UK), for example, have had their current news web site layout for quite some time, and it current renders in quirks mode in Firefox (as so to in IE I would guess) which is naturally template based, with news stories old and new, and constantly updated when new stories hit. They have pages that were created and modified years ago, and pages that are created and modified yesterday, today, tomorrow, etc, all based on the same template system.

    If IE were to implement a date switch, you could find that some pages look and act differently as you browsed them, because IE would be selecting different rendering modes in the background, all depending on the date.

    Again, apologies if I miss-interoperated your suggestion.

  188. Chris-

    Well, that is a big flaw in my idea, but maybe not quite in the way you interpreted it.

    When I said “the date a website was authored (or substantively revised)” I was envisioning that date remaining the same except when a major overhaul took place. That is, if you were reworking things from the ground up, or converting to XHTML, or such things, you would alter the date-of-authoring. Templates ought to contain the date and pass it on to newly created subsidiary pages.

    However, as I began to think of a response to your comment, I realized that it is indeed an important flaw. It would be likely to suffer from a similar problem to one that DTDs have, with WYSIWYG editors adding the current date to pages only intended as small additions to a site tested on a previous browser. I had imagined this as being a very intentional, “I’ve tested this site in all of the browsers I’m interested in on January 28th, 2008. Please render it as you would have then,” but expecting that sort of intentionality out of unsupervised software is a bit ludicrous.

    Is my original idea making better sense now, and have you any thoughts on whether it could be redeemed despite the bad behavior I’m forecasting on the part of WYSIWYG editors?

  189. so here’s a question…

    Say you have a document that lacks a DTD, but *includes* the metatag. What mode do you get? (Jeffrey, care to give us a guess?)

    The lack of a DTD triggers quirks mode, but the metatag would trigger IE8. What should it be? Will the lack of DTD continue to trigger quirks mode, or will the new metatag *replace* the need for a DTD in IE. What will this do to/for the other browsers? (Do i hear the word “break”…?) What does this do for W3C Standards? It’s a slippery slope, and the very real fear and concern being expressed is not completely unfounded.

  190. May I remind, text-shadow is a CSS2 property.

    The problem is of MS. Others have no interest (and indeed no need, being much more compliant already) in supporting it.

    “Things should be simplified as much as they can be, but not beyond that.” – Albert Einstein. I do believe that making life easier for those who can’t afford (because of having at the moment too little money, time, knowledge, whatever) upgrading large quantities of HTML+CSS to standard compliance quickly enough is a right thing. The proposal with edge as the default will do just this. All their burden is minimised to a single line of HTTP (or its meta emulation). This can be automated very easily. Scripts that process recursively a directory on a server, server configuration files enabling the HTTP header by default and other one-off solutions will proliferate. People will insert the header, because it’s easy, and they’ll care (will be urged by their clients) to keep the rendering which relies on quirks. Of course, doing nothing is even easier. But why should we (not MS, of course) be willing to spare them any effort whatsoever? The benefits of the default of standards compliance already mentioned by others already outweigh those of any group (ultimately even the lazy HTML authors; perhaps only not MS) in the opposite case. So I’ll mention just one in addition. The side which ends up required (de facto) to use a switch will be labelled as non-standard (in the usual meaning). And it really should coincide with non-compliance to Web standards. Everybody inserting or seeing this switch can immediately tell that something imperfect has been produced. Otherwise the mainstream remains frozen virtually forever and we’re placed in a ghetto.

    And finally, if the evil one, wrong (in my opinion) default prevails, this is how I’m going (sometimes, when I’m required to cater specially for IE) to wall the ghetto wall:

    Note 1: No closing slash for the empty element tag. It’s HTML 4.01. (And don’t mention that heretical ;) HTML5.) In XHTML (and hopefully in all XML) the default is going, as Chris Wilson says, to be the right one.
    Note 2: Acid2 hasn’t got it, so IE8 is going to fail it. Is anybody advocating to include the switch in Acid3 (Ian Hickson’s cup of tea, and he’s definitely not a fan of this idea)?

  191. The code snippet missing from the above:
    lt ! – – [if IE] – – gt lt meta http-equiv=”X-UA-Compliant” content=”IE=edge” gt lt ! – – [endif] – – gt
    IE-only thing shall not pollute my Infoset, DOM, CSS matches, etc.! (Comments used for such purposes are a mild form of pollution. We’ve already learned to live with that, also in programming languages.)

  192. @May

    I understand more-so now, thank you. I think your theoretical idea is a very good one, and if the web was still in it’s infancy, would be a very good implementation, but I think in practice, considering the vastness of the web today, and the many ways that people, templates and WYSIWYG editors put all sorts of different code combinations together, that there would still be too many things to consider, and that there would never be an easy way to implement this within Internet Explorer.

  193. hi, just wanted to say hang in there.

    i’d point to a University study right now if i had one about “Feedback always skewed negative because they are the most inclined to give it”.

    Rest assured there’s a few of us out here that have taken in the whole situation, and end up in agreeing with you :)

    so yeah, nice work.

    cheers, pete

  194. Chris-

    Well, but there’s the thing I’m not understanding. Why would it be more difficult to implement what I’ve suggested than the current plan? There’s plenty of room to mess up either one; for instance, there’s already been much speculation on whether WYSIWYG editors will helpfully set it to “edge” just as they’ve helpfully tucked doctypes into flawed code. I’m not yet seeing the added difficulty of what I’ve suggested.

  195. I understand that Microsoft wants to avoid “breaking the web” for end users… They aren’t, after all, able to do much if the web site is broken.

    However, if the only reason Microsoft wants to go this way is to avoid complaints, then it’s completely bogus.

    Ever hear of facing up to your mistakes?

    A better approach, but more embarassing to MS, is to default to standards mode and to allow the user override the engine used.

  196. From a pragmatic standpoint, I’m increasingly behind this proposal, for a reason that I’m not sure if anyone else mentioned (reading through hundreds of comments is just not going to happen).

    The reason is simple, and a twist on what Andy Budd is saying: not only might this marginalize Internet Explorer, but I think that it will ultimately marginalize non-standards compliant developers. While they’re still working with old not-fully-implemented (or understood) CSS 2 standards, we’ll be blazing ahead with the CSS 3 and HTML 5 specs as they’re implemented, producing far superior sites to the inept developers who don’t have a clue how to opt-in.

    This is giving standards-based developers and designers a huge competitive advantage that I, for one welcome. A little bit of standards-based natural selection methinks.

    Anyways, cheers to you Zeldman for leaving the comments open for so long and enduring the low signal to noise ratio in here.

  197. Hello Jeffrey,

    You argue that MS chose the standards aware developers as their target audience for this switch instead of the ignorant developers because the latter simply wouldn’t know about the switch.

    Well , maybe I have an alternative solution then. It may come off as being a little naive, but… well, anyway.
    MS has the perfect channel to target the ignorant or careless developers that only develop websites for IE. This channel is, of course, IE/Windows.

    Why?
    Because developers that develop only for IE must use IE and IE runs on Windows only (well, the current versions do at least and those are the ones this discussion is about) and Windows is the OS from MS and it has the posibility of automatic updates.
    MS can address their users through these automatic updates. I believe they’ve done so before.

    If MS promisses to point the IE-only developers to the right information on how to insert the switch into their IE-only pages and we, as standards aware developers, promise to do the same anytime we encounter a site that is still broken, then there’s no need to add a new switch into new pages that will probably cause problems again in the future. IE7 mode will be the only ‘old mode’ that needs to be supported in future IE releases, instead of all the IE7+ versions and the info may trigger some standards awareness amongst those that are currently unaware of web standards.
    And for the developers who are just careless… well why should we and/or MS care if they don’t?

    As I said it may be a little naive. But wouldn’t it be great if this switch, just like the problem it tries to fix, would be a thing of the past and not of the future?

    Listen, birds start singing…. oh life can be wonderful ;-)

  198. If IE were to stop supporting standards, standards would stop working.

    That seems unlikely in today’s world. More likely people would simple stop using Internet Explorer, and use Firefox and other browsers instead.

    I’m not sure why we should help Microsoft maintain market share, and help it maintain broken approaches to building their rendering engine. You’re asking us to break everything, just because MS can’t fix their shit.

  199. It seems the “super duper standards mode” has gained some attention on the IE blog:

    of course, for content that we don’t have backward compatibility concerns for (a new DOCTYPE or MIME type, e.g.), we can automatically opt in

    To say that XHTML is an XML dialect and should be served with a proper mime type is nothing but the strict reality.

    Not that this would make the meta header useless but at least it gives the idealistic another reason to hear the birds singing.

    Yeah!

  200. James Bennett has written an interesting article where he concludes:

    “1. The X-UA-Compatible behavior will have a net negative impact on designers and developers.
    2. The X-UA-Compatible behavior will not solve the problem Microsoft says it’s worrying about.”

    His articles appear to be well thought out and explained so take a look.

  201. On my last comment: let’s say both solutions co-exist, which seems to be what’ll happen according to cwilson, the bottom line for them is exactly the same.

    * they need extra effort from the developer’s perspective;
    * we can’t predict right now how they will affect javascript libraries, plugins, etc.;
    * they’re necessary because a line has to be drawn for us to progress without disturbing the rest of the Web;
    * they’re optional

    Whatever the solution, MS and the WaSP has just come to the conclusion that a new switch is necessary — other browser vendors must be fair and accept this is a very good opportunity for them too.

  202. @Matt Wiebe

    I don’t really see this marginalizing bad developers. I think that what will happen is all the wysiwyg editors will start adding in this meta tag, they’ll flounder for a bit figuring out how to work in IE8, and then proceed to make unimpressive sites that at least now work on every browser instead of just IE. There’s always going to be a market for cheaper but lower quality goods so they’ll still be around, making sites that may or may not continue working each time IE updates depending on what tag their tool adds and how bad they really code.

    Also, unless you’re outright declaring everyone who doesn’t agree with you and Zeldman as noise I don’t think the ratio is that bad. Yeah, it’s not the best, but I don’t think it’s worth commenting on at present, especially with how on topic the recent comments have been.

  203. @Ben:

    I don’t think that we need to be nearly so fatalistic about things. If we can get Adobe on board to ensure that any time it inserts the IE=8 meta tag in Dreamweaver that it only produces non-presentational (X)HTML markup, then we’ve still come a long way towards a better web. Of course, I’m probably being a strange and incompatible mix of idealist and pragmatist right now…

    As for the signal to noise ratio, I was basing it on the first ~100 posts that waded through. It’s possible that things have improved later in the game. There have been some excellent points in opposition raised, such as beyond-IE8 behavior, scripting issues, the relative merits of default behavior, and certainly the possibility that wysiwyg editors will set IE=edge and keep spitting out crappy code.

    So, no, not everyone who disagrees is noise. I certainly understand that there are problems everywhere when it comes to IE development, and I’ve simply decided that, from where I’m standing, this seems to be the best of a bunch of crappy options.

  204. @Matt Wiebe

    Good to hear we’re not noise, the beginning was rocky but it did get better and real conversation on the subject started up.

    I don’t think anyone’s really fatalistic about this, there’s just the feeling that like doctypes, the wysiwyg editors will add this in without fixing their tool enough to properly use it. They’re also likely to move to the html5 doctype before they’re ready for it, causing more issues since they’re just as likely to set an arbitrary IE number as they are to use edge on the meta tag. In the end the developers who use wysiwyg editors who have no real clue what they’re doing will probably wind up making a hodge-podge of sites that render in some random form of IE, maybe broken, maybe functioning, and all of them will be confused at best.

    The alternative is that we not only add in this tag ourselves to our sites, but we also put enough pressure on the wysiwyg editor companies that they don’t add in a very marketable feature, which will take a lot of work, or hope that the programmers remain ignorant of the meta tag. We already know from doctype that they like to add this stuff in before their tool is ready for it, so it’s a safe assumption that they’ll do it again unless something forms to stop them. The onus of fixing IE’s past mistakes then falls more heavily on us in more than just a tag, unless the IE team plans on stepping up and working to prevent the wysiwyg creators from messing things up.

    I agree that if the tools were fixed before they started adding the tag that it could be good for now, but it didn’t happen in the past with doctype and history tends to repeat itself.

  205. “If IE were to stop supporting standards, standards would stop working.”
    Uh, well as far as I could see IE6 was about as standards compliant as a “brick to a webdesigners face” and yet standards made it through just fine. Infact that was when Firefox started and Safari was introduced. Perhaps you should rethink that bullet point. I think that the opposite may become true. If IE we to stop supporting standards, IE would stop working. The new generation of web users are using either Firefox or Safari (especially safari on the iphone/touch). IE will soon be marginalized to the elderly or uninformed.

  206. I don’t like this for a lot of reasons. Many of them already stated by others.

    But if there is no stopping this on the whole, I’d like to suggest it be a switch that could be placed inside a CSS file, and not in the HTML.

    I have sites that have a lot of template files/master pages, and these would all have to be updated, however CSS files are few, and there is usually a single master (or could be!) that could contain this switch.

    This would make testing/QA easier since I would only need to update one file to test an entire site. It could be as simple as:

    html { filter: XUACompatible.Microsoft.RenderMode( ie=’8′); }

    It would also give us a way to target previous/future browsers.

    I could have a ‘*rendermode.css*’ file with this in it, and simply import it into my global.

    In a different scenario developers could also do:


    html { filter: XUACompatible.Microsoft.RenderMode( ie=’8′ ); }


    html { filter: XUACompatible.Microsoft.RenderIEMode( ie=’edge’ ); }

    But like I said, I’m against having to put this in the HTML – this however would simply be an alternate. Right now there is only the META tag. I prefer having more options.

    The last thing I think this might prevent is mass proliferation. CSS files are not typically CMS/application templates, so this being built in by default is less of a possibility (it could still happen though, I’m sure). It could certainly be a code snippet, but only the developers who know what it is would use it.

  207. The good thing about putting it in the CSS is that it would keep a presentational directive in a presentation-layer file. It also wouldn’t be a whole lot different than the current practice of inserting CSS hacks for current IE limitations.

  208. Ultimately it’s Microsoft that has to suffer the most. As difficult or annoying as it may be to add that dinky Meta tag to every page (even though, I believe we shouldn’t have to), Microsoft is the kind of company that values backwards compatibility over innovation.

    Now, that’s not necessarily a bad thing. Mom and Pop PC owners know that they can buy a computer and use it for the next 7 years without having to touch it once. Some companies like that as well. But, the fact of the matter is that this clearly prevents Microsoft from ever being cutting edge on anything in their mainstream product line. Sure, they have development labs working on multi-touch and what not, but it’s going to be a long time, if ever, before it’s ever folded into a Windows-based product out of the box.

    By the way, it looks as though Microsoft is currently scheduled to release Windows 7 three years from now. That means that there probably won’t be an upgrade to Vista until 2011! So, as you can see, Microsoft takes a long time to catch-up innovate. I believe that their commitment to backwards compatibility is what delays their products so much and keeps them so far behind the curve.

    So, sure we can complain all we want about how awful this Meta Tag is. But, I believe the best thing we can do, to further our cause, is to promote Firefox and other alternative browsers like Opera and Safari to those who don’t know any better. The less market share that IE has, the better off we all will be.

  209. While I think this is a dumb idea, It doesn’t really bother me too much.

    I’m probably not going to be bothered adding the element (especially retrospectively) to all the sites I;ve made, so IE8 users are just going to get the same experience they would were they using IE7.
    It’s their loss, whether they’re aware of it or not.

    Besides, I barely ever hack for IE (any version) anyway (I like to keep my code simple), so it’s almost a non-issue.

  210. If IE were to stop supporting standards, standards would stop working.

    That is so wrong as to be completely ludicrous. Yes, the W3C standards process require multiple implementation proofs before candidate drafts become standards, and yes MS as one of hundreds of consortium menbers has been providing those implementations, albeit flawed. Yet, if MS disappeared today, other broswer writers would provide the implementations needed to satisfy the W3C processes and we would still have standards. Standards would continue to work and evolve, leaving MS behind (as they were for all the ears they were complacent with IE 6).

    So, after years of not supporting standards, they’re now going to support them by using proprietary markup. SWEET!

  211. Microsoft was not left behind while IE6 was out. By the time 7 came out, 6 had the largest market share by a landslide.

  212. Yet, if MS disappeared today, other broswer writers would provide the implementations needed to satisfy the W3C processes and we would still have standards.

    No one is talking about Microsoft disappearing. The statement was, if Microsoft supported standards, standards would stop working. This is indisputably true. I assume you remember the web before browsers committed to accurately and completely supporting standards. It was fragmented and in danger of becoming Balkanized.

    If *any* browser maker were to stop supporting common standards, then the support of all would come into question. If a browser with a small market share did this, it would be disastrous. But were a browser with a huge market share to do it, the re-balkanization would come that much faster.

    So, after years of not supporting standards,

    Not supporting them to your satisfaction, perhaps; not supporting them at the same level as Gecko and Webkit, especially before IE7. Those claims you can make. But to say that Microsoft did not support standards is a ludicrous oversimplification that betrays profound bias, deep ignorance, or both.

    I’ll remind you that IE supported CSS years before Netscape did; that IE’s initial CSS implementations, however wretched they may have been when compared the actual specification, were far in advance of Netscape’s for years. I’ll remind you that DOCTYPE switching, scalable fonts, a cross-platform font size, and many other elements of standards support we take for granted today debuted in a Microsoft browser: IE5/Macintosh, whose development was led by Tantek Celik, who has since cofounded microformats.org.

    I’m not saying Microsoft is a blameless and wonderful company that makes the best browser in the world; I’m just partially refuting your colossally wrong statement that Microsoft spent “years … not supporting standards.”

    You hurt the case you are trying to make when you lie outright (or else betray deep ignorance of the facts).

    they’re now going to support them by using proprietary markup.

    It’s a valid meta element, and they offer it as a toggle for developers who know what they’re doing and wish to take advantage of standards improvements in future versions of IE.

    Put another way, and more to the point, the absence of the toggle leaves the browser at its current level of standards support and protects inept developers from the consequences of their lack of knowledge.

    Alas, not every form of ignorance is so easily worked around.

  213. Profound bias: maybe.
    Deep ignorance: probably not as deep as believe.
    Consider two points of fact.
    1) While MS was doing all the great innovation you’re boasting about, MS left the W3C CSS Working Group. They had monopolistic market share locked down and no longer needed to support standards … not until FF and Opera came along and showed what standards could look like. MS literally stopped supporting standards during the IE6 era and standards did not stop working. Witness FF and Opera. Yes, Chris’s name was still on the Working Group’s list, but MS was a no-show for a couple of years. Confirm with other CSS WG members if you please.
    2) It IS proprietary markup! Yes, http-equiv is a valid attribute, but of all of the documented values available for http-equiv, “X-UA-Compatible” is NOT in the specs. It’s NOT standard! It’s proprietary, proposed by one vendor, for their own singular purpose, and so far renounced by nearly every other browser vendor.
    BTW, is it your common practice to call people who have other opinions ignorant? Why do you want to call names and publiclly judge other people’s intelligence. You’ve lost it Mr. Z. I guess it makes you feel better about the fact that so many people here don’t agree with your support of this idea.

  214. Bob:

    My statement, which you called ludicrous, was that keeping IE on a standards track was a good thing, and that standards only work if all browsers support them.

    Bob, explain to me how W3C standards would remain relevant if Microsoft were to stop supporting them.

    Please do that now, in a convincing and practical way.

    Tell me how you, as a web developer, would develop websites for clients if IE were no longer to support CSS, HTML, and the DOM.

    If you were a professional developer, would you make standards-compliant sites that only worked in Firefox, Safari, and Opera?

    Would you tell your clients that the 70% or 80% of their readers/members who use IE/Windows could go take a hike? Would you tell your clients that eventually Firefox would eat into IE’s market share, and only 60% of their users would have a bad experience?

    Maybe you would do that, Bob. Would all developers do that? Or would some developers start coding IE versions as well as “standards” versions?

    Would other developers support IE only, because of its market dominance?

    You know they would. That’s what too many developers already do!

    If IE no longer supported standards, the market would fracture, and we would be back in 1998, with W3C recommendations an irrelevance.

    Standards only work if all browsers support them.

    That’s what I meant by that simple statement. I’m sorry if it wasn’t clear to you.

    If a browser with a small market share were to stop supporting standards, people would probably stop using that browser (because well-authored sites wouldn’t work in it).

    But if a browser with a huge market share stopped supporting standards, it’s standards, not that browser, that would be hurt.

    Had no idea you were a member of the W3C CSS working group. Surprised that, as a member of said group, you would use absolutist language like “stopped supporting standards,” but now I understand better where you’re coming from — and I also know that you know what you’re talking about. It was your use of that kind of language, and not our disagreement, that made me use the word “ignorant.”

    BTW, when you say that Opera and Firefox arose after IE “stopped supporting standards,” your history is way off.

    Surely you know that Gecko (the basis of Firefox) was around long before IE6 came into being and froze. We at The WaSP wrote the petitions in 1999 that helped persuade Netscape not to patch its old rendering engine one more time, but to embrace compliant Gecko instead.

    You may also remember that several years passed between Netscape’s announcement that it would abandon the old rendering engine that powered its appalling (but market-dominant) 4.x browser, and the eventual release of buggy Netscape 6, whose Gecko engine, freed by open source, would come to power Firefox. When you talk about Microsoft freezing IE, don’t forget that Netscape also wandered the desert for several years before finally issuing Netscape 6.

    In any case, it’s hardly the fact that Opera and Firefox arose after IE “stopped supporting standards.”

    The fact is that Opera supported standards from its beginning, and was around when IE had barely any market share at all.

    The fact is that Firefox is Gecko-based, and Gecko precedes IE6.

    So, you know, check your facts before you dish.

    By the way, is it common practice to call differing opinions ludicrous?

  215. Debating the guy who owns the printing press is often futile. He can write as much as he pleases and turn off comments whenever he pleases.
    It’s a red herring deflecting attention to the first Mozilla developer that wrote the first line of code and trying to cite that history. The point I was making is indeed from a different perspective. At the time that MS quit attending standards meetings, declared IE6 stable, and ignored the web development community other standards oriented activities were successful. Mr. Z published 2 books on the subject. The WASP drew great attention to the cause. Hundreds of leading web developers led thousands of others to the standards path. Two leading browsers emerged (no matter when they were first started) as far more compliant than IE. Standards worked while MS slept. Those standards didn’t come into popular use because IE was compliant. We all know how much we had to work around IE bugs. The point I’m making is MS mostly ignored standards (except for the very brief time Tantek was there), blatently ignored standards during the IE6 era, … and we didn’t abandon standards. MS and IE compliance was not essential to standards working.
    Suffice it to say we have differing opinions. I’ll leave with a quote from Eric

    … if you feel the need to impugn the integrity or intelligence of another person to oppose an idea, you’re undercutting yourself, not your target nor the thing you oppose.

    I never accused you, Jeffrey, of being ignorant.

Comments are closed.