End of line Internet ExplorerTuesday, January 22, 2008
The biggest barrier to Microsoft adopting web standards is Microsoft's own clients, or rather Microsoft's promise to them of backwards compatibility. They have a plan to solve this, but it demands that web developers sacrifice the future compatibility of their sites.
Microsoft's proposal is for web developers to opt-in to Internet Explorer 8's standards mode by adding in a new meta tag (or HTTP header). The benefit to Microsoft is that their clients haven't got to do a single thing - but web developers using web standards have to update all their pages to take advantage of standards compliance in Internet Explorer 8. (and again and again when any new version of a browser gets released with this 'feature').
One of the benefits of web standards is that you author a page once, and it never has to change again for the rest of its lifetime. When a new browser is released, the pages on the Web continue to work. That is why we use web standards. Its a fundamental component of the web - and it should never be betrayed.
Microsoft's approach is to promise their customers backward compatibility regardless of the quality of their markup. From their perspective, allowing already broken pages to appear broken in a new browser is unacceptable.
Microsoft have no one to blame but themselves for the predicament they find themselves in. Many software products have gone down in history for the abysmally low quality of markup it generates. Unfortunately for Microsoft, their browser has had to seamlessly handle the bad markup generated by their own web publishing tools.
Three and a half years ago I wrote about the cost of supporting non-standards, pointing out that Microsoft could not continue building on top of its existing Trident rendering engine. Their Program Manager noted that major standards changes to the Trident engine would be prohibitively expensive because of the levels of regression testing needed to ensure that the rendering engine would not break on their self-inflicted markup swamp.
At a point in the future, Microsoft will realise the folly of continuing development of the Trident rendering engine, and realise that it will not be economically sustainable. They will realise that to support web standards properly, to the current levels of Firefox, Safari and Opera, they will need to wipe the slate clean and start a new code base.
Our documents will work on this new code base - if Microsoft's commitment to open standards is to be believed.
The Netscape plan
Netscape Navigator 5 is the browser that everyone was waiting for, but never arrived. It would be the pinnacle of browser development. It would be the death blow of Microsoft's Internet Explorer.
Except it never arrived. It died a prolonged death. It died because the code base - like IE's codebase today - was so full of cruft in trying to deal with horrible markup, it proved insurmountable in developing the next browser version.
Netscape killed Netscape Navigator 5, and in its place created the foundation of what we know as Firefox. They started from scratch, built in support for web standards from the very beginning. The product matured from Mozilla milestones to official Mozilla releases, to skunkworks projects, to Phoenix, to Firebird, to Firefox.
Firefox lead the way. It inspired web developers and practically encouraged web standards. It rejuvenated the web, made it fun again.
As Firefox grew, Internet Explorer 6 was in stasis. Microsoft had crashed into the wall which was the prohibitive cost of continued development of their browser.
Firefox forced Microsoft to reinvest in Internet Explorer. It forced Microsoft to compete, forced it to play catchup. Firefox was a direct threat to Microsoft's hold on the web. It forced Microsoft to compete on the basis of web standards compliance. Four years later and Microsoft are still playing catchup.
There's a lesson for Microsoft to learn in there.
Microsoft would do well to learn the lessons of Netscape and realise that Internet Explorer is functionally incapable of both preserving backwards compatibility for its half a billion clients, and supporting web standards. Something has to break.
Microsoft need to put Internet Explorer into maintenance mode.
Microsoft have got themselves into this mess by their own misguided strategy. By promising backwards compatibility, they've compromised the future direction of the browser. They've compromised Internet Explorer's capability of challenging Firefox in any meaningful way.
What particularly annoys me from today's news about Internet Explorer, is Chris Wilson's blame shifting. He puts the blame for Internet Explorer's failings on web developers. For example:
The answer is that developers of many sites had worked around many of the shortcomings or outright errors in IE6, and now expected IE7 to work just like IE6. Web developers expected us, for example, to maintain our model for how content overflows its box, even in "standards mode," even though it didn't follow the specification - because they'd already made their content work with our model.
We web developers are now being directly blamed for supporting Internet Explorer! Microsoft released an inadequate browser and left us to deal with the problem on our own. Now Chris Wilson has the audacity to criticise us for trying our best to sort out the mess his team created.
We realized that "Don't Break the Web" should really be translated to "Don't change what developers expect IE to do for current pages that are already deployed."
It seems that Microsoft's promise of backwards compatibility is an empty one.
Heaping the blame on web developers is unfair. This situation is entirely of Microsoft's own doing. And they did nothing about it until Firefox became a serious threat.
What those two quoted statements really say is that web cannot rely on Microsoft for standards compliance, backwards compatibility or future compatibility.
And that alone, is sufficient reason to reject their meta tag proposal.
With those elements in a site, you've effectively opted into a standards compliant universe.
Microsoft have now put a tollbooth on the web standards compliant road. The payment is a meta tag that says, "Yes, that is a webstandards compliant page, I really really really do mean it". And that meta tag is only useful for Internet Explorer 8.
Effectively you have to ask Internet Explorer 8 for permission to render your standards compliant page in a web standards compliant rendering.
Microsoft's customers, after years of emitting heaps and heaps of malformed and ill-informed markup have to do absolutely nothing.
Microsoft are demanding that we web standards developers favour them with time, cost and effort, while they continue to abrogate their responsibilities to their half a billion clients.
The meta tag triggers off a behaviour in Internet Explorer 8. That's a form of browser sniffing - a piece of code that triggers off a certain reaction based on the user agent.
We've already realised the massive cost and downsides of browser sniffing, and there's only one answer worth giving for these techniques: Never.
Contract and Responsibilities
Web standards is a contractual responsibility. Its a promise from web developers to write pages that conform to the W3C Recommendations. Its also a promise from browser vendors to render pages that meet those standards in the correct way according to the meanings and justifications of those standards.
Its a clear separation of responsibilities, and one that has been working well with Firefox, Safari and Opera.
Microsoft on the other hand are now expecting us web developers to carry the burden of their responsibility. Instead of Microsoft abiding by the responsibility of rendering pages according to the open defined standards, Microsoft are intent on making standards-based pages second class citizens.
Standards compliant pages must always carry a Microsoft passports that identify the holder as a standards compliant page. Sounds like a ghetto to me.
That's what we are being asked to do. We're segregated from the rest of the Web, and forced to carry identity documents that prove we are standards compliant, and earn the dignity to be rendered in a standards compatible way.
If you have a low quality website, you have to do nothing.
Web developer benefits
What are the web developer benefits? I don't see any. I see us sacrificing the benefit of future proofed pages. I see us struggling under the weight of updating all our pages on all our sites every time a new browser is released that supports this meta tag nonsense.
We've been summoned to fall into line for the benefit of Microsoft. And there's no corresponding benefit for the web, for the openness of standards, or for the future viability of the web.
There's no benefits to be seen here.
Microsoft's commitment to backwards compatibility has compromised any ability to adopt modern open web standards. We web developers should not be paying for Microsoft's mistakes.
I was patient, and praised, the launch of Internet Explorer 7. I encouraged Chris Wilson and his team to keep up the sterling efforts.
In return I, as a web developer, have been directly blamed for Microsoft's failings. I'm expected to accept my new status as a second class web developer.
I believe this meta tag idea is Microsoft's last throw of the dice before finally admitting that Internet Explorer is dead in the water. Its clear the cost and complexity of development seriously outweigh the perceived value of adding in support for web standards.
It seems evident that if we, as web standards supporting web developers, stand up now and categorically reject Microsoft's proposal we stand a chance of effecting some badly needed change in Microsoft. They need to embrace open web standards unconditionally. They need to live up to their responsibilities as a browser vendor.
As to their demand of blind obedience: I don't think so. I have a better idea - end of line Internet Explorer.
End of line Internet Explorer
Cease all new development on Internet Explorer and put it in a permanent maintenance cycle. End of line it. That will ensure that all your clients continue to benefit from the backwards compatibility Microsoft is supposedly promising. You can leave that browser as part of the operating system.
If Microsoft is at all interested in supporting open web standards it should start a brand new project, with a brand new name, which will create a standards supporting browser from scratch. That browser can then be used to show Microsoft's true commitment to open standards.
This approach will neatly solve the conflict and avoid the compromising that has so plagued Internet Explorer 7 and 8. When the new browser project matures in four or five years, and when your clients have updated to modern, web standards compliant publishing tools, then gradually switch over your clients to the new browser.
An alternative proposal
I also have a second idea, which is perhaps more in keeping with the ethos of web standards. Its not a new idea, and credit goes to Shelley Powers for standing up and doing the right thing. I encourage all web developers who believe in web standards and what it means to be open to join me in this pledge.
Full spec support by 2010
I will no longer compensate for limited or broken specification support in browsers after January 1, 2010. This gives IE, and the other browsers, time to fully implement all of the specifications that have been out as recommendations for years now. This includes support for XHTML 1.1, CSS 2.1, SVG 1.1, in addition to any other specification not listed. This isn't part of a movement, and there is no badge. This is just my personal choice that I will no longer compensate for browsers not implementing standards, beginning January 1, 2010.
Its time to stand up for the web standards we hold dear. Its time to protect our web. Its time to say enough is enough. Its time for Microsoft to take responsibility for failing their clients over and over again. Its time for Microsoft to clean up its own mess.
I reject Microsoft's proposal. It undermines the spirit and the purpose of the World Wide Web.
- WaSP: Microsoft's version targeting proposal
- Shelley Powers: Bobbing Heads and the IE8 Meta Tag
- Anne van Kesteren: The Internet Explorer lock-in
- Chris Wilson: Compatibility and IE8
- Jeremy Keith: Broken
- Mark Pilgrim: Microsoft koan