So Microsoft, in conjunction with some of the folk at WaSP, has announced its intention to include the quirks mode that beats all quirks modes in the forthcoming Internet Explorer 8 in an article on A List Apart: Beyond DOCTYPE: Web Standards, Forward Compatibility, and IE8.

This has proved to be quite a controversial idea. It was not long before WaSP issued a release hinting that many WaSP members do not support the idea. Speaking in favour of the scheme we have:

And against, we have:

And roughly neutral:

(Interesting affiliations are shown in parentheses, but these people's personal blogs may not reflect their employers' views.)

I can see the attraction of such an idea from a practical point of view. Once you've produced a web page, you need never touch it again. Whatever changes new browser versions bring can simply be ignored -- your page will continue to work.

But the realist in me makes me sceptical of that idea -- will future versions really guarantee to render the page exactly the same? It seems simple enough: bundle historic rendering engines and have the browser switch rendering engines depending on the contents of a <meta> element, but on careful consideration this presents several problems:

  1. Successive versions of the browser will become increasingly bloated, taking up more disk space and using more memory.
  2. Rendering engines are often a source of security issues. The more rendering engines you include, logically the more security issues are likely to arise.
  3. Fixing a security issue will necessarily involve tinkering with a historic rendering engine. It is possible that you'll introduce incompatibilities accidentally, or you'll be required to deliberately introduce an incompatibility to solve the security problem.
  4. In a site using frames, potentially each frame will be rendered by a different engine. Javascript on framed pages can potentially communicate and manipulate each others' DOMs via Javascript.

In terms of the browser "ecosystem" it's bad news too. Non-Microsoft browser makes often feel compelled to emulate particular quirks of Internet Explorer. If they have to emulate several different rendering engines, it may slow down development significantly. It may also harm take-up of future versions of Internet Explorer -- after all, why would someone want to upgrade if they will not see any improvements on 99% of the pages they visit, because they're not using IE=edge.

The last issue is simply the vast quantities of annoying cruft that Microsoft foists upon web developers who just want to switch off their "features" -- to get back to the status quo.

The Tao

Other browser makers should respond to this by phasing out quirks mode and always using their highest quality rendering mode. After all, what's quirks mode for apart from offering compatibility with IE 5, which is dead and buried in 2008.