The announcement that the code for IE8 now passes the Acid2 test is a very big deal. We have a strong indication that Internet Explorer 8.0 will offer far stronger support for web standards than prior versions of IE, and perhaps even better compliance that competing browsers.
The folk at Microsoft on the Internet Explorer team have done a great thing. At the same time they now have a problem. The problem comes if the changes in IE disrupt existing web applications. Certainly significant change in IE behavior will disrupt at least some web applications. Given the very wide use of IE, the number of people effected by even a few disrupted applications will be large.
Worth watching is the video from the article IE 8: On the Path to Web Standards Compliance - ACID 2 Test Pass Complete. About 10 minutes in you will hear the IE folk reflecting on the troubles caused by improvements in IE7.
Microsoft needs a way to enable the new more-standards-compliant behavior without risk of disrupting existing applications. The DOCTYPE switch is the existing and best way to enable changes in browser behavior. Web pages written to the most current web standards will use the DOCTYPE:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
These pages by and large work now. Likely the developer had to put in extra effort to make the pages work in IE6. Some of those pages will not work as well when IE8 better implements the HTML 4.01 standard.
In theory what the DOCTYPE was meant to indicate was strict compliance with a particular web standard. In reality what the DOCTYPE invokes is each browser’s approximation of the web standard - at the time. For the majority of the 4.01 pages, this means web developers wrote for IE6.
What web developers need is a DOCTYPE that declares the better approximation as offered by IE8. This has to be a new DOCTYPE. The simplest possible answer is to use:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.02//EN">
Where “HTML 4.02” simply indicates a better implementation of the HTML 4.01 standard. What the browser vendors will actually do I cannot say, but this is one solution.