Categories
Standards

Bobbing heads and the IE8 meta tag

Recovered from the Wayback Machine.

I was astonished to read the A List Apart article Beyond DOCTYPE: Web Standards, Forward Compatibility, and IE8 and even more astonished to read compliance with the message from Eric MeyerMolly Holzschlag, and the WaSP organization.

How the mighty have fallen is so very cliché but, oh, how appropriate.

According to Aaron Gustafson, who wrote the ALA article, the plan is rather than depend on DOCTYPE to trigger quirks and standard mode for page rendering–a necessity first generated by Microsoft’s IE5/Mac by the way–we all add a meta tag to our pages that locks the page into a specific browser rendering. For instance, the following would lock a page into IE8 rendering:

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

IE will then render the page within some form of IE8 compliant mode. Needless to say, as for the old wish for progressive enhancement where if we design our pages to working with released standards, ensuring that they’ll be future proof, well, we must abandon this along the road:

As much as it pains me to lose this particular aspect of progressive enhancement, this behavior is honestly the best thing that could happen, especially when the site concerned is public-facing. After all, we shouldn’t make assumptions about how browsers will behave in the future. If a change in IE9 would break the layout of our site or the functionality of one of our scripts, that could be disastrous for our users, sending our team into a mad scramble to “fix” the website that was working fine before the new browser launched (which is pretty much the boat we’re in now). Version targeting gives our team the ability to decide when to offer support for a new browser and, more importantly, gives us the much-needed time to make any adjustments necessary to introduce support for that new browser version.

I would say that if a change in IE9 would break our standards-based pages, the problem lies with IE, not the pages. The whole point on standards is that by using them we ensure a consistency of access for our pages, now and in the future. When a browser states it supports CSS 2.1 or XHTML 1.1, we know what to expect. Obviously support for standards is not important or part of any plan for Microsoft. Indeed, it would seem that Microsoft has, by supporting (encouraging, funding) this concept, decided to maintain its own path from now into the future, smug in the assurance that it will always manage to lock people into using IE. Frankly, I’m not surprised at Microsoft, but I have to wonder at WaSP, ALA, et al.

This new meta tag is not a browser switch according to PPK, who writes:

A browser detect is a piece of JavaScript or server side code written to parse the user agent string of a browser and take action based on the results of that parsing—typically by denying users of the “wrong” browser access to a page.

The new versioning switch does something completely different. In IE, it starts up a certain mode, such as Quirks Mode, Strict Mode, or the upcoming IE8 mode. In all other browsers it does nothing, since these browsers are not programmed to recognise the meta tag.

Therefore, if a non-IE browser encounters the switch, nothing happens. The browser ignores the meta tag, reads the HTML, CSS, and JavaScript as always, and allows its own rendering engine to interpret it.

In other words, the versioning switch does not have any of the negative effects of a browser detect.

There’s a second difference: the versioning switch is a contract. The IE team tells people what will happen if they insert the meta tag in their pages, and it’s up to individual web developers to decide whether they want to use this contract or not.

Bully for Microsoft. I used to think commitment to standards was a contract. Evidently, my interpretation was incorrect. How gauche of me.

In comments at the IE blog, James Schwarzmeier wrote:

Unlike the majority of other posters here, I have to say that I agree with this approach. I currently wok on a team that maintains a suite 20 large web-based applications. If I had to guess, I would say there’s serveral (if not 10s) of millions of lines of code. If the layout engine radically changed, it would literally take years to fully test everything and update everything to be compatible. It’s not that we’re lazy or “behind the times” — it’s just that the sheer volume of code makes it impossible to simply turn on a dime.

What an absurd statement to make. What Schwarzmeier is saying is that each page in these 20 major applications is hand coded, not using standards, not using a template, and that individual changes need to be made, one page at a time. Frankly, any large site or application in this shape should seriously consider firing its existing team, and starting over.

The days when each web page is hand crafted are over. They’ve been over for years. I can’t believe that there are any major web sites that don’t use some form of templated system now. Templates and CSS.

In fact, I would say that most hand crafted pages now probably wouldn’t work with IE8, or even IE7 or IE6. I find it likely they still have the silly little icon for requiring IE 4.x. They definitely wouldn’t be adding in the meta tag. The creators probably won’t even hear of these discussions.

The argument for this tag is actually the number one argument against this tag: those people with hand crafted pages are not going to be willing to hand edit each page to make it standards compliant–why on earth would they hand edit each of these pages to add this tag? As for being able to test a site against a version of a browser–this site looks good in IE7, but not IE8, or some such nonsense–when are we finally going to actually commit to standards? Not just as browser vendors, but as web page designers and developers? More importantly, as people who use browsers to surf the web?

I am not writing this because I work for Opera or Mozilla. I am not writing this because I’m unaware of the challenges facing web page designers. In fact, in my books I warn people about being aware of their audiences and the browsers that they use. It would be irresponsible for me not to cover these topics.

However, I no longer buy into the stories of millions of charities, schools, or libraries with old computers that can’t run anything but Win95 and IE 5.x.

I no longer buy into the stories of web sites with millions of lines of code, each of which has to be tweaked any time a new standard or browser is released.

I no longer buy into a web where we continue having to add foolishness into our pages in order to satisfy a company who can’t even be trusted to provide an upgrade path for IE 6 on older, but still popular, operating systems like Windows 2000.

Nothing will stop Microsoft from adding its little IE-specific tags here and there. If the company were truly concerned about breaking the web, though, such tags should be opt-in. In other words, Microsoft should render a page in standards mode if this stilly tag is not added to the page–not force all of us to redefine the web just because Microsoft has seemingly brainwashed the WaSP, ALA, et al.

I will not add this tag to my web pages–no, not even using some twisty tech method–and the company had better determine how it is going to render sites like this one, which serves up good, honest, standard XHTML 1.1.

Update

Over at Anne’s the following comment from another member of WaSP:

Just to be clear Anne, the members of the Web Standards Project in general were not informed about this article and Microsoft’s proposal/plans until it was announced on A List Apart. Any Web Standards Project members who consulted with Microsoft did so as individuals and not as representatives of WaSP.

I am sure that I am not the only WaSP member (and web designer/developer) who is unhappy with these proposals on first reading.

I think it’s time for the WaSP to get its ducks in a row. I think it’s also important that members of WaSP, and perhaps the ALA, also, to publicly declare their financial dealings with any of the impacted browser companies, including Microsoft.

Second Update

Jeremy Keith writes of meta-blackmail:

But—and this is a huge “but”—if you don’t include a X-UA-Compatible instruction, you are also condemning your site to be locked into the current version: IE7. This is a huge, huge mistake.

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.

There’s another option: continue as we are.

Last update

Who is this man and what has he done with the real Zeldman? I will say one thing: such prissy, looking down one’s nose arrogance will not win adherents to this approach.

I feel like I’ve walked into an episode of the Twilight Zone.