Acid3
Acid3 is a test page from the Web Standards Project that checks how well a web browser follows certain web standards, especially relating to the DOM and JavaScript.
It was in development from April 2007,[1] and released on 3 March 2008.[2] 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, XML and data: URIs. Only elements from specifications as of 2004 are included.[3]
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.
On March 26, 2008, Opera was the first browser announced to score 100/100 on the Acid3 test,[4] but hasn't passed the test yet, because there is still one small rendering glitch.[5] No public builds were released that passed the Acid3 test.
On March 27, 2008, Ian Hickson changed the ACID 3 test again, because of exact SVG specs.[6] That could reduce the score on browsers near the 100/100 score like Opera and Safari. On the same day, WebKit announce that their engine passed Acid3. This can be seen in publicly available nightly builds.
The test
The main part of Acid3 is written in JavaScript, and consist of 100 subtests, in six groups, called "buckets", plus four special tests (0, 97, 98, and 99).[7]
- Bucket 1: DOM Traversal, DOM Range, HTTP
- Bucket 2: DOM2 Core and DOM2 Events
- Bucket 3: DOM2 Views, DOM2 Style, CSS 3 selectors and Media Queries
- Bucket 4: Behavior of HTML tables and forms when manipulated by script and DOM2 HTML
- Bucket 5: Tests from the Acid3 Competition (SVG,[8] HTML, SMIL, Unicode...)
- Bucket 6: ECMAScript
The test page explains compliance in its text:
To pass the test, a browser must use its default settings, the animation has to be smooth, the score has to end on 100/100, and the final page has to look exactly, pixel for pixel, like this reference rendering.

If all subtests fail in a particular bucket, its associated rendered square will be invisible. If some subtests are cleared the color will change in four steps:
- 1-5 subtests passed: Black square.
- 6-10 subtests passed: Grey square.
- 11-15 subtests passed: Silver square.
- All 16 subtests passed: Colored square (red, orange, yellow, lime, blue, purple - for each of the six squares, in order.).
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.[citation needed]
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.
Development and impact
As stated above, Ian Hickson started working on the test in April 2007, but it progressed slowly. In December 2007 the work restarted and it received public attention on 10 January 2008, when it was mentioned in blogs by Anne van Kesteren[9] and Dustin Brewer.[10] At the time it resided at an URL clearly showing its experimental nature: "http://www.hixie.ch/tests/evil/acid/003/NOT_READY_PLEASE_DO_NOT_USE.html" That did not stop the test from receiving widespread attention within the web development community. At this time only 84 subtests were done, and on 14 January Ian Hickson announced a competition to develop the missing 16.[11]
The following developers contributed to the final test through this competition:
- Sylvain Pasche. Test 66-67 (DOM).
- David Chan. Test 68 (UTF-16).
- Simon Pieters and Anne van Kesteren. Test 71: HTML parsing.
- Jonas Sicking and Garret Smith. Test 72: dynamic modification of style blocks' text nodes.
- Jonas Sicking. Test 73: Nested events.
- Erik Dahlström. Test 74-78: SVG and SMIL.
- Cameron McCormack. Test 79: SVG fonts.
The impact of the test on browser development was dramatic, already before its official release. Webkit in particular made progress; in less than a month their score rose from 60 to 87.[12]
The announcement that the test is complete does not mean that it may not be subject to change. If browser developers find faults in it, trying to fix their bugs, it may be changed. It is to be considered "stable enough" for actual use. A guide and commentary is expected within a few months.[12]
Non-compliant applications
The test was deliberately written in such a way that it failed in every web browser on its release. Many of the browser teams are actively working to improve test results.
Template:WebSlice-begin{| class="wikitable" style="width: auto; table-layout: fixed;" |+ Layout engine progress for the Acid3 test |- ! style="width:10%" | Layout Engine ! style="width:25%" | Stable Build Screenshot ! style="width:25%" | Development Build Screenshot ! style="width:40%" | Notes |- |- |Trident
|

|

|Trident is used by Internet Explorer. Microsoft has made no comment on their plans for passing Acid3. |- |KHTML
|
| |The KHTML engine is used by Konqueror. The tracking bug for Konqueror was filed on 30 January 2008.[13] |- |Gecko
|

|

|The team that develops Gecko, the rendering engine used in Mozilla Firefox, has a tracking bug[14] and a public spreadsheet[15] for the status of their work regarding this test. |- |WebKit
|

|

|The team that develops WebKit, used in Safari, has a tracking bug.[16]. WebKit build r31342 released 26/04/2008 is the first public beta to reach 100/100, though there are still some minor issues to fix before a PASS grade can be awarded.[17] |- |Presto
|

|

|Presto is used in Opera browsers. The latest snapshot build of Opera 9.5 contains eleven new bug fixes that improve its Acid3 score to 77/100.[18] An internal post-9.5 build scored 100/100, but still has issues that remain to be fixed.[4] A fix to a bug in the Acid3 tests will cause Opera will only achieve 99/100 now[6]. |}Template:WebSlice-end
See also
References
- ^ "HTML5 IRC logs: freenode / #whatwg / 20070422". Retrieved 2007-12-28.
- ^ "Acid3: Putting Browser Makers on Notice, Again. (WaSP Press Release)". Retrieved 2007-03-04.
- ^ "HTML5 IRC logs: freenode / #whatwg / 20071228". Retrieved 2007-12-28.
- ^ a b Tim Altman (2008-03-26). "Acid3: Opera and the Acid3 Test". Retrieved 2008-03-26.
- ^ Ian Hickson (2008-03-26). "WHATWG IRC logs 2008-03-26". Retrieved 2008-03-26.
- ^ a b Ian Hickson (2008-03-27). "Last minute changes to Acid3". Retrieved 2008-03-27.
- ^ Hickson, Ian. "Comments in the source code of the test page". Retrieved 2008-02-16.
- ^ Dahlström, Erik (2008-01-22). "Getting to the core of the web". Retrieved 2008-02-16.
{{cite web}}
: Check date values in:|date=
(help) - ^ van Kesteren, Anne (2008-01-10). "Acid3". Retrieved 2008-03-04.
{{cite web}}
: Check date values in:|date=
(help) - ^ Brewer, Dustin (2008-01-10). "Developers are working on ACID3 test". Retrieved 2008-03-04.
{{cite web}}
: Check date values in:|date=
(help) - ^ Hickson, Ian (2008-01-14). "The competition for you to come up with the best test for Acid3". Retrieved 2008-03-04.
{{cite web}}
: Check date values in:|date=
(help) - ^ a b Hickson, Ian (2008-03-04). "Moebius (announcement of the completion of the test)". Retrieved 2008-03-04.
{{cite web}}
: Check date values in:|date=
(help) - ^ "Bug 156947: Konqueror 4 fails Acid3 test". Retrieved 2008-03-02.
- ^ "Bug 410460 (acid3) – Acid3 tracking bug". Retrieved 2008-02-16.
- ^ "Google document - Acid3 spreadsheet". Retrieved 2008-02-18.
- ^ "Webkit tracking bug". Retrieved 2008-02-18.
- ^ Maciej Stachowiak (2008-03-18). "WebKit achieves Acid3 100/100 in public build". WebKit Blog. Retrieved 2008-03-18.
- ^ Claudio Santambrogio (2008-03-18). "Happy Easter - Desktop Team". Opera. Retrieved 2008-03-18.