Dean Hachamovitch, General Manager of Microsoft’s Internet Explorer team, recently announced that the latest build of IE8 has passed the Acid2 test.
Acid2 is a web page rendering test, designed to measure the capabilities of web browsers to render code correctly as well as handle incorrect or invalid code, focussing specifically on CSS, alpha transparency, object elements and hovering effects. The test was released by the Web Standards Project (WaSP) on April 12th 2005, and updated with a bugfix on April 23rd.
The test is purposefully not written to W3C CSS specifications – WaSP isn’t a body which defines web standards, but rather an advocacy group for web interoperability and feature support. As such, the Acid2 test isn’t a compliance test in the true sense, but rather a benchmark for determining a browser’s rendering capabilities. As such, passing the test isn’t the be-all and end-all of determining what makes a good browser, but it’s definitely a desireable goal.
Acid2 on IE8
The first officially-released browser to pass the Acid2 test was Safari 2.02, released with Mac OS X 10.4.3. Most popular browsers (and even some less popular ones) pass the Acid2 test, like Opera, Konqueror and iCab. The most notable exceptions are Mozilla Firefox and Internet Explorer. Firefox’s inability to render the Acid2 test is actually due to the underlying Gecko engine, and as such Firefox, Camino and SeaMonkey all fail the test. However Gecko 1.9 will support the necessary rendering functions, and Firefox 3 Beta 2 passes the Acid2 test.
Acid2 on IE7
IE8’s new-found standards compliance does come with a “but”. IE8 has a feature called “IE8 standards mode” which has been introduced to bridge the gap between web pages coded to expect IE6-compatible behaviour and those anticipating the new standards. It seems that Microsoft has determined it best that IE8’s default behaviour should be backwards-compatibility, and so standards mode is not the default rendering engine. Web developers wishing to make use of IE8’s enhanced rendering support need to insert an optional flag which will instruct the browser to enable standards mode.
This situation is nothing new – Microsoft always has a responsibility to support the environment created by prolonged use of its own products, but it does raise an interesting (albeit highly pedantic) technical point. As standards mode isn’t enabled by default, IE8 won’t actually render the Acid2 page properly as it doesn’t contain the flag to enable the compliant rendering engine, and therefore an argument could be made that it actually fails the test. If IE8 hits a page which it could render properly but which doesn’t contain the flag, it will render it using IE6-compatible behaviour. This might seem a very minor point, but previous builds of iCab and Konqueror have in the past technically failed the test on equally minor grounds.