When successful, the Acid3 test displays a gradually increasing percentage counter with colored rectangles in the background. The percentage displayed is based on the number of sub-tests passed. In addition to these the browser also has to render the page exactly like the reference page as rendered in the same browser. Like the text of the Acid2 test the text of the reference rendering is not a bitmap in order to allow for certain differences in font rendering.
Acid3 was in development from April 2007, and released on 3 March 2008. The main developer was Ian Hickson, who also wrote the Acid2 test. Acid2 focused primarily on Cascading Style Sheets, but this third Acid test focuses also on technologies used on modern, highly interactive websites characteristic of Web 2.0, such as ECMAScript and DOM Level 2. A few tests also concern Scalable Vector Graphics (SVG), XML and data: URIs. It includes several elements from W3C CSS3 working drafts that have not made it to candidate recommendations yet.
Acid test was "the" test of the time, since it was decisive, immediate, cheap and extremely simple to perform. An analogy is drawn from this historical test to the modern test - if a browser passes the acid test it is approved, very much in the same manner that if a metal passes the acid test it is accepted.
]The compliance criteria requires that the test is run with a browser's default settings. The final rendering must have a 100/100 score and must not only be pixel-identical with the reference rendering, including the favicon (or more accurately, its desired absence; a favicon is not supposed to show up in a 100/100 render), but the animation has to be smooth (taking no more than 33 ms for each subtest on the top-of-the-line Apple laptop) as well.
As the test is run, rectangles are added to the rendered image; the color of the rectangles is decided by the number of sub-tests passed in the bucket. If all subtests fail in a particular bucket, its associated rendered rectangle will be invisible. If some subtests are cleared the color will change in four steps:
After the Acid3 test page is completely rendered, the capital A in the word Acid3 can be clicked to see an alert (or Shift-Click for a new window) explaining exactly which subtests have failed, and what the error message was.
In order to render the test correctly, user agents need to implement the CSS 3 Text Shadows and the CSS 2.x Downloadable Fonts specifications, which are currently under consideration by W3C to be standardized. This is required as the test uses a custom TrueType font, called "AcidAhemTest" to cover up an "X" on fuchsia colored background. The glyph, when rendered by the downloaded font, is just a square, made white with CSS, and thus invisible.
In addition, the test also uses Base64 encoded images, some more advanced selectors, CSS 3 color values (HSLA) as well as bogus selectors and values that should be ignored.
The following developers contributed to the final test through this competition:
Even before its official release, Acid3's impact on browser development was dramatic. WebKit in particular made progress; in less than a month their score rose from 60 to 87.
The test was officially released on March 3, 2008. A guide and commentary was expected to follow within a few months, however, as of September 2008 it has not yet been released. The announcement that the test is complete means only that it is to be considered "stable enough" for actual use; if problems and bugs are found, it will still be modified to fix it. The test has already been modified to fix several issues including issues regarding to sub-pixel positioning, SVG surrogate pairs and performance. On March 26, 2008—the day both Opera and WebKit teams announced a 100/100 score—developers of WebKit contacted main Acid3 developer Ian Hickson about a critical bug in the Acid3 that presumably may have forced a violation of the SVG 1.1 standard to pass; thus Hickson proceeded to fix it with the help of Cameron McCormack, member of W3C's SVG Working Group.
By the end of March 2008, early development versions of the Presto and WebKit layout engines scored 100/100 on the test and rendered the test page correctly. Presto still has performance issues in producing a smooth animation in the test, thus it has not passed the Acid3 test yet. As of build r36882, WebKit produces a smooth animation on the reference hardware, and thus passes the Acid3 test. Firefox developers had been preparing for the imminent release of Firefox 3, as a result they had focused on stability rather than passing the Acid3 test. Microsoft, developers of the Internet Explorer browser, said that Acid3 does not map to the goal of Internet Explorer 8 and that IE8 will improve only some of the standards being tested by Acid3.
On April 22, 2008, Hickson again fixed a bug in the Acid3 test discovered by a Mozilla developer. This change possibly invalidates the previously reported scores of 100/100 for development versions of Presto and WebKit. On September 29, 2008, David Baron raised an issue with the CSS Working Group concerning media queries that might cause the test to change again.
| Layout Engine | Major Browsers | Screenshot of Stable Build at Time of Acid3 Release | Latest Stable Build Screenshot | Development Build Screenshot | Notes |
|---|---|---|---|---|---|
| Gecko | Firefox, Flock | Firefox 2.0.0.12 | Firefox 3.0.3 | Gecko/try-836bb85189e Minefield/3.1b1pre | |
| KHTML | Konqueror | Konqueror 4.0.2 | Konqueror 4.1.2 | Konqueror snapshot r816030 | |
| Presto | Opera | Opera 9.25 | Opera 9.60 | WinGogi Acid3 build | |
| Trident | Internet Explorer | IE 7.0 | IE 7.0 | IE 8.0 Beta2 | |
| WebKit | Safari, Google Chrome, OmniWeb, Midori | Safari 3.0.4 | Safari 3.1.2 | Safari 4 Developer Preview, also Chromium (Google Chrome) build 2778 | . |
| Layout Engine | Major Browsers | Screenshot of Stable Build at Time of Acid3 Release | Latest Stable Build Screenshot | Development Build Screenshot | Notes |
|---|---|---|---|---|---|
| Gecko | Fennec | ||||
| Presto in Opera Mini | Opera Mini | Opera Mini 4.1.1.11320 | |||
| Presto | Opera Mobile | Opera Mobile 8.65 | Opera Mobile 8.65 | Opera Mobile 9.51 | |
| NetFront | NetFront | NetFront 3.5 | |||
| WebKit | MobileSafari | iPhone firmware 1.1.4 | iPhone firmware 2.1 |