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]