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
Filed under: A List Apart, Microsoft, Standards, eric meyer
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.
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!
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.
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.
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).
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.
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
Not so. I clearly stated that
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.
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?
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.)
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.
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.
“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”?
Aaron said:
Not so. I clearly stated that
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:
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.
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.
“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.
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
“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.
DavidOne (above) says:
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.
in one of the early comments, DW says:
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).
Gareth Rushgrove said:
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.
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…
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
…and as we all know, the last thing Microsoft needs is another jerk-off.
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!
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.
Sorry, but IE8 fails, MS fails, and you fail.
The worst thing is that you know that.
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.
Oh, yeah, the second thing that bothers me is the lost opportunity. Just in case you were left wondering :)
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…
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?
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.
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.
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.
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.
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)… :)
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.
Jeffrey:
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?
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.
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.
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”.
No less an authority than PPK will be writing about the consequences for DOM scripting in an upcoming issue of A List Apart.
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.
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….
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.
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…
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.
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-Compatibleareperfectly aware of its purpose, I don’t see why this feature is dangerous. It
is just a marked up translation of
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!
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?
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.
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.
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.
I’m still not convinced this is a good idea.
It feels like a step backwards and goes against the ‘device independent’ goal of the web and the concept of progressive enhancement. Remember all the fuss about the .mobi domain? (http://www.w3.org/2004/07/dotmobi_diwg.html)
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.”
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.
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?
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?
“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???
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.
“… 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
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. :)
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
headof 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.
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.
No, I’m acting on the assumption that *some* developers are not aware of web standards. But please carry on.
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…
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.
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?
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.
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!
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.
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
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.
@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.
So if doctype switches are old hat, why will (according to cwilso no less) IE8 switch into standards mode when it sees ?
Régis, in this very post (above) Mr. Zeldman writes:
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:
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?
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.
Bless you, Régis.
Régis said:
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.
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.
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.
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!
My doctype got eaten - “!doctype html” was what I was trying to write. Also, cwilso’s statement that HTML5 will be supported by this doctype switch.
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?
@Jeffrey:
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 i