TheAcid3test is a web test page from theWeb Standards Projectthat checks aweb browser's compliance with elements of variousweb standards,particularly theDocument Object Model(DOM) andJavaScript.

Acid3
The reference rendering for Acid3
Type of site
Web standardstest
Available inEnglish
OwnerTheWeb Standards Project
Created byIan Hickson
URLacid3.acidtests.org
CommercialNo
RegistrationNo
LaunchedMarch 3, 2008;16 years ago(2008-03-03)
Current statusOnline

If the test is successful, the results of the Acid3 test will display a gradually increasing fraction counter below a series of colored rectangles. The number of subtests passed will indicate the percentage that will be displayed on the screen. This percentage does not represent an actual percentage of conformance as the test does not really keep track of the subtests that were actually started (100 is assumed). Moreover, the browser also has torenderthe page exactly as the reference page is rendered in the same browser. Like the text of theAcid2test, the text of the Acid3 reference rendering is not a bitmap, in order to allow for certain differences in font rendering.

Acid3 was in development from April 2007,[1]and released on 3 March 2008.[2]The main developer wasIan Hickson,a Google employee who also wrote the Acid2 test. Acid2 focused primarily onCascading Style Sheets(CSS), but this third Acid test also focuses on technologies used on highly interactive websites characteristic ofWeb 2.0,such asECMAScriptandDOM Level 2.A few subtests also concernScalable Vector Graphics(SVG), Extensible Markup Language (XML), anddata URIs.It includes several elements from theCSS2recommendation that were later removed inCSS2.1,[citation needed]but reintroduced inWorld Wide Web Consortium(W3C)CSS3working drafts that have not made it to candidate recommendations yet.

By April 2017, the updated specifications had diverged from the test such that the latest versions ofGoogle Chrome,SafariandMozilla Firefoxno longer pass the test as written.[3]Hickson acknowledges that some aspects of the test were controversial and has written that the test "no longer reflects the consensus of the Web standards it purports to test, especially when it comes to issues affecting mobile browsers".[4]

Test

edit

The main part of Acid3 is written inECMAScript(JavaScript) and consists of 100 subtests in six groups called "buckets", including four special subtests (0, 97, 98, and 99).[5]

  • 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[6]
  • Bucket 4: Behavior ofHTMLtables and forms when manipulated by script and DOM2 HTML
  • Bucket 5: Tests fromthe Acid3 Competition(SVG,[7]HTML,SMIL,Unicode,…)
  • Bucket 6: ECMAScript

The compliance criteria require that the test be run with a browser's default settings. The final rendering must have a 100/100 score and must be pixel-identical with the reference rendering.[8]On browsers designed for personal computers, the animation has to be smooth (taking no more than 33 ms for each subtest on reference hardware equivalent to a top-of-the-lineApple laptop) as well,[9]though slower performance on a slow device does not imply non-conformance.[10]

Acid3 rendered byFennec1.0 alpha 1. Buckets 2, 4, and 6 pass all 16 subtests, buckets 1 and 3 pass more than 10 subtests while bucket 5 passes more than 5 subtests.

To pass the test the browser must also display a genericfaviconin the browser toolbar, not the favicon image from the Acid3 web server. The Acid3 server when asked forfavicon.icogives a404response code, but with image data in the body. This tests that the web browser correctly handles the 404 error code when fetching the favicon, by treating this as a failure and displaying the generic icon instead.[11]

When the test is running, the rectangles will be added to the rendered image; the number of subtests passed in the bucket will determine the color of the rectangles.

  • 0 subtests passed: No rectangle shown.
  • 1–5 subtests passed: Black rectangle.
  • 6–10 subtests passed: Grey rectangle.
  • 11–15 subtests passed: Silver rectangle.
  • All 16 subtests passed: Colored rectangle (left to right: red, orange, yellow, lime, blue, purple).

Note that Acid3 does not display exactly how many subtests passed in a bucket. For example, 3 subtests passing and 4 subtests passing in bucket 2 would both render a black rectangle.

Detailed results

edit
Acid3 rendered by Internet Explorer 8.0 (before theSeptember 2011 updateof the Acid3 test). 20/100, test failed.
The Acid3 test result on Safari 3 (above, failure) and Safari 4 (below, success)

After the Acid3 test page is completely rendered, the letter '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 case one of the 100 tests passed but took too much time, the report includes timing results for that single test. The alert reports the total time of the whole Acid3 test.

Screenshot of Chromium 71 running the Acid3 test as of December 2018

In order to render the test correctly, user agents need to implement theCSS 3 Text Shadowsand theCSS 2.x Downloadable Fontsspecifications, which are currently under consideration byW3Cto be standardized. This is required as the test uses a customTrueTypefont,called "AcidAhemTest", to cover up a 20x20 red square. Supporting Truetype fonts however is not required by the CSS specification. A browser supporting onlyOpenTypefonts with CFF outlines orEmbedded OpenTypefonts could support the CSS standard, but fail the test in the Acid3 test. Theglyph,when rendered by the downloaded font, is just a square, made white with CSS, and thus invisible.[12]

In addition, the test also usesBase64encoded images, some more advanced selectors, CSS 3 color values (HSLA) as well as bogus selectors and values that should be ignored.

Development and impact

edit

Google employee Ian Hickson started working on the test in April 2007, but development progressed slowly. In December 2007, work restarted and the project received public attention on 10 January 2008, when it was mentioned in blogs byAnne van Kesteren.[13]At the time the project resided at a URL clearly showing its experimental nature: "http://www.hixie.ch/tests/evil/acid/003/NOT_READY_PLEASE_DO_NOT_USE.html" Despite the notice in the URL, the test received widespread attention in the web-development community. At that time only 84 subtests had been done, and on 14 January Ian Hickson announced a competition to fill in the missing 16.[14]

The following developers contributed to the final test through this competition:

  • Sylvain Pasche: subtests 66 and 67: DOM.
  • David Chan: subtest 68:UTF-16/UCS-2.
  • Simon Pieters (Opera) and Anne van Kesteren (Opera): subtest 71: HTML parsing.
  • Jonas Sicking (Mozilla) and Garrett Smith: subtest 72: dynamic modification of style blocks' text nodes.
  • Jonas Sicking (Mozilla): subtest 73: Nested events.
  • Erik Dahlström (Opera): subtests 74 to 78: SVG and SMIL.
  • Cameron McCormack (BatikSVG library): subtest 79: SVG fonts.

Even before its official release, Acid3's impact on browser development was dramatic. In particular,WebKit's score rose from 60 to 87 in less than a month.[15]

The test was officially released on 3 March 2008.[2]A guide and commentary was expected to follow within a few months,[15]but, as of March 2011, only the commentary had been released. The announcement that the test is complete means only that it is to be considered "stable enough" for actual use. A few problems and bugs were found with the test, and it was modified to fix them.[16][17]On 26 March 2008—the day bothOperaandWebKitteams announced a 100/100 score—developers of WebKit contacted Hickson about a critical bug in Acid3 that presumably allowed a violation of the SVG 1.1 standard to pass. Hickson fixed the bug with the help of Cameron McCormack, a member of W3C's SVG Working Group.[18][19]

Chrome, Presto and WebKit based browsers

edit

In 2008, development versions of thePresto[20][21]andWebKit[19][22] layout engines(used by Opera and Safari respectively) scored 100/100 on the test and rendered the test page correctly. At the time, no browser using the Presto or WebKit layout engines passed the performance aspect of the test.[23][24]

Google Chrome andOpera Mobile[25]displayed a score of 100/100.[26] Security concerns over downloadable fonts delayed Chrome from passing.[27]

Version 68 and later of Chrome gets a score of 97/100.

Firefox

edit
Acid3 done on Firefox 67.0.2.

At the time of Acid3's release,Mozilla Firefoxdevelopers had been preparing for the imminent release ofFirefox 3,focusing more on stability than Acid3 success. Consequently, Firefox 3 had a score of 71.[28]Firefox 3.5scored 93/100, andFirefox 3.6scored 94/100. Initially,Firefox 4scored 97/100, because it did not support SVG fonts. Later, Firefox 4 scored 100/100, because the SVG font tests were removed from Acid3.

According to Mozilla employee Robert O'Callahan, Firefox did not support SVG fonts because Mozilla consideredWOFFa superior alternative to SVG fonts.[29]Another Mozilla engineer, Boris Zbarsky, claimed that the subset of the specification implemented in Webkit and Opera gives no benefits to web authors or users over WOFF, and he asserted that implementing SVG Fonts fully in a web browser is hard because it was "not designed with integration with HTML in mind".[30]

On 2 April 2010, Ian Hickson made minor changes to the test after Mozilla, due to privacy concerns, altered the way Gecko handles the:visitedpseudo-class.[31][32]

Firefox 51.0a1 made a regression from 100 to 99 on 14 September 2016; Firefox 55.0a1 further regressed to 97 on 1 May 2017.[33]In Firefox Quantum versions, 63.0 received 97/100; 64.0 got 96/100, 68.1.0esr and later[34]got 97/100. Firefox versions 105.0 received 99/100 while 109.0 clocked in at 97/100. As of 121.0 it scored 97/100 on the test.

Internet Explorer

edit

Microsoftsaid that Acid3 did not agree with the goal ofInternet Explorer 8and that IE8 would improve only some of the standards being tested by Acid3.[35]IE8 scored 20/100, which is much worse than all relevant competitors at the time of Acid3's release, and had some problems with rendering the Acid3 test page. On 18 November 2009, the Internet Explorer team posted a blog entry about the early development ofInternet Explorer 9from thePDCpresentation, showing that an internal build of the browser could score 32/100.[36]

Throughout 2010, several public Developer Previews improved Internet Explorer 9's test scores from 55/100 (on 16 March[37]) to 95/100 (as of 4 August).[38][39][40]Dean Hachamovich, general manager of the IE team, argued that striving for 100/100 on the Acid3 test is neither necessary, nor desirable. He claimed that the two Acid3 failures related to features (SVG fonts and SMIL animation) that were "in transition".[41]

InInternet Explorer 11,it scores a 100/100 on the Acid3 test.Microsoft Edge,which uses theBlinkbrowser engine, displays a score of 97/100 under version 109.

Criticism

edit

Early iterations of the test were criticized for being a cherry-picked collection of features that were rarely used, as well as those that were still in a W3C working draft.Eric A. Meyer,a notable web standards advocate, wrote, "The real point here is that the Acid3 test isn't a broad-spectrum standards-support test. It's a showpiece, and something of aPotemkin villageat that. Which is a shame, because what's really needed right now is exhaustive test suites for specifications—XHTML, CSS, DOM, SVG. "[42]

"Implementing just enough of the standard to pass a test is disingenuous, and has nothing to do with standards compliance," argued Mozilla UX lead Alex Limi, in his article "Mythbusting: Why Firefox 4 won't score 100 on Acid3." Limi argued that some of the tests, particularly those for SVG fonts, have no relation to real usage, and implementations in some browsers have been created solely for the point of raising scores.[43]

September 2011 test changes

edit

On 17 September 2011, Ian Hickson announced an update to Acid3. In Hickson's words,Håkon Wium LiefromOpera Softwareand he commented out "the parts of the test that might get changed in the specs." They hoped that this change would "allow the specs to change in whatever way is best for the Web, rather than constraining the changes to only be things that happened to fit what Acid3 tested!"[44]

As a result, Firefox 4 and Internet Explorer 9 achieved a score of 100/100 on Acid3, but Internet Explorer didn't render the test properly because it did not support text-shadow until Internet Explorer 10.[45]

Standards tested

edit

Parts of the following standards are tested by Acid3:

  • HTTP1.1 Protocol
  • DOMLevel 2 Views
  • HTML4.01 Strict
  • DOMLevel 2 Traversal (subtests 1–6)
  • DOMLevel 2 Range (subtests 7–11)
  • Content-Type:image/png; text/plain (subtests 14–15)
  • <object>handling and HTTP status codes (subtest 16)
  • DOMLevel 2 Core (subtests 17, 21)
  • ECMAScriptGC(subtests 26–27)
  • DOMLevel 2 Events (subtests 17, 30–32)
  • CSSSelectors (subtests 33–40)
  • DOMLevel 2 Style (subtest 45)
  • DOMLevel 2 HTML (subtest 60)
  • Unicode5.0UTF-16(subtest 68)
  • Unicode5.0UTF-8(subtest 70)
  • HTML4.0 Transitional (subtest 71)
  • SVG1.1 (subtests 74, 78)
  • SMIL2.1 (subtests 75–76)
  • SVG1.1 Fonts (subtests 77, 79)
  • ECMAScriptConformance (subtests 81–96)
  • Data URI scheme(subtest 97)
  • XHTML1.0 Strict (subtest 98)

Passing conditions

edit

A passing score is only considered valid if the browser's default settings were used.

The following browser settings and user actions may invalidate the test:

  • Zooming in or out
  • Disabling images
  • Applying custom fonts, colors, styles, etc.
  • Having add-ons or extensions installed and enabled
  • Installed and enabledUser JavaScriptorGreasemonkeyscripts

See also

edit

References

edit
  1. ^"HTML5 IRC logs: freenode / #whatwg / 20070422".23 April 2007.Retrieved28 December2007.
  2. ^ab"Acid3: Putting Browser Makers on Notice, Again"(Press release).Web Standards Project.3 March 2008.Retrieved4 March2007.
  3. ^"Validating a qualified name does not match browsers in a corner case · Issue #319 · whatwg/dom".GitHub.Retrieved21 September2019.
  4. ^Hickson, Ian."Acid Tests".Archived fromthe originalon 27 September 2009.Retrieved7 May2018.
  5. ^Hickson, Ian (3 March 2008)."Comments in the source code of the test page".Web Standards Project.Archivedfrom the original on 18 February 2008.Retrieved16 February2008.
  6. ^Lie, Håkon Wium;Çelik, Tantek;Glazman, Daniel;van Kesteren, Anne (15 September 2009)."Media Queries".World Wide Web Consortium.Archivedfrom the original on 11 February 2010.Retrieved9 February2010.
  7. ^Dahlström, Erik (22 January 2008)."Getting to the core of the web".Opera Software.Archivedfrom the original on 2 February 2008.Retrieved16 February2008.
  8. ^Hickson, Ian."The Acid3 Test (reference Rendering)".Web Standards Project.Archivedfrom the original on 12 February 2010.Retrieved9 February2010.
  9. ^Ian Hickson(1 April 2008)."The performance aspect of Acid3".Archivedfrom the original on 5 April 2008.Retrieved3 April2008.
  10. ^"Acid3 Browser Test – The Web Standards Project".Web Standards Project.Archivedfrom the original on 19 January 2010.Retrieved9 February2010.
  11. ^Maciej Stachowiak(26 September 2008)."comment to 'Full pass of Acid3'".WebKit.org.Retrieved29 April2009.
  12. ^Hickson, Ian (29 March 2008)."The antialiasing controversy in Acid3".Archivedfrom the original on 8 May 2009.Retrieved30 April2009.
  13. ^van Kesteren, Anne (10 January 2008)."Acid3".Archivedfrom the original on 7 March 2008.Retrieved4 March2008.
  14. ^Hickson, Ian (14 January 2008)."The competition for you to come up with the best test for Acid3".Archivedfrom the original on 8 March 2008.Retrieved4 March2008.
  15. ^abHickson, Ian (4 March 2008)."Moebius (announcement of the completion of the test)".Archivedfrom the original on 8 March 2008.Retrieved4 March2008.
  16. ^Ian Hickson."Tests that are never quite finished".Archivedfrom the original on 30 March 2008.Retrieved30 March2008.
  17. ^Ian Hickson(22 April 2008)."Media queries and performance in Acid3 (and an error on my part)".Archivedfrom the original on 25 April 2008.Retrieved24 April2008.
  18. ^Ian Hickson."Last minute changes to Acid3".Retrieved30 March2008.
  19. ^abMaciej Stachowiak(26 March 2008)."WebKit achieves Acid3 100/100 in public build".WebKit.org.Archivedfrom the original on 28 March 2008.Retrieved26 March2008.
  20. ^Tim Altman (March 2008)."Opera and the Acid3 Test".Opera Software.Archivedfrom the original on 28 March 2008.Retrieved28 March2008.
  21. ^Lars Erik Bolstad (March 2008)."Public Acid3 build".Opera Software.Archived fromthe originalon 30 March 2008.Retrieved28 March2008.The latest post-9.5 build scores 99/100 and fails the smoothness criterion.
  22. ^Paul Lilly (29 September 2008)."Safari Beta 4 is the First Browser to Hit a Perfect Acid3 Test Score".Pcgamer.Maximum PC.Retrieved16 November2009.
  23. ^Peterson, Adele (8 April 2007)."The WebKit browser engine running under the Safari browser UI".WebKit.org.Retrieved9 February2010.
  24. ^Stachowiak, Maciej (25 September 2008)."Full Pass of Acid3".WebKit.org.Retrieved9 February2010.
  25. ^Lund Engebø, Helene (26 March 2009)."Opera Mobile 9.7 with Opera Turbo".Opera Software ASA.Archivedfrom the original on 2 June 2009.Retrieved6 July2009.
  26. ^"Turbocharge your Web experience with Opera 10"(Press release).Opera Software.1 September 2009. Archived fromthe originalon 30 May 2012.Retrieved4 September2009.
  27. ^"Issue 231: Acid test 3 fails on chrome".8 July 2009.Retrieved9 February2010.
  28. ^Mike Shaver(27 March 2008)."The missed opportunity of acid 3".Archivedfrom the original on 29 March 2008.Retrieved30 March2008.
  29. ^Robert O'Callahan (3 June 2010)."Not Implementing Features Is Hard".Archived fromthe originalon 6 August 2011.Retrieved15 December2010.
  30. ^Limi, Alexander (25 January 2011)."Mythbusting: Why Firefox 4 won't score 100 on Acid3".Retrieved20 September2011.
  31. ^Baron, David (9 March 2010),Preventing attacks on a user's history through CSS:visited selectors,Mozilla,archivedfrom the original on 5 April 2010,retrieved8 April2010
  32. ^Hickson, Ian (2 April 2010),Acid3 update for:link/:visited privacy changes,retrieved7 April2010
  33. ^chrisjone (18 October 2017)."1409813 - Firefox Quantum 57.0b9 (64-bit) (Linux) Fails Acid 3 Test".Bugzilla.Retrieved23 December2018.
  34. ^Last checked on 86.0 beta 5, 02.04.2021
  35. ^Chris Wilson (20 March 2008)."Windows Internet Explorer 8 Expert Zone Chat (20 March 2008)".Microsoft.Archivedfrom the original on 20 April 2008.Retrieved15 April2008.The ACID3 test is a collection of interesting tests, spread across a large set of standards. Some of those standards will see improvements in IE8 – in fact, IE8 already improves on IE7's score – but we are focused on the most important features and standards to make web developers' lives easier. The Acid3 test does not map directly to that goal.
  36. ^"An Early Look At IE9 for Developers".Microsoft.18 November 2009.Archivedfrom the original on 8 February 2010.Retrieved9 February2010.
  37. ^The Web Standards Project's Acid3 TestArchived2010-08-06 at theWayback Machine,Microsoft. For IE 9's First Developer Preview.
  38. ^The Web Standards Project's Acid3 TestArchived2010-08-06 at theWayback Machine,Microsoft. For IE 9's 2nd Developer Preview.
  39. ^The Web Standards Project's Acid3 TestArchived2010-08-14 at theWayback Machine,Microsoft. For IE 9's 3rd Developer Preview.
  40. ^The Web Standards Project's Acid3 TestArchived2010-03-22 at theWayback Machine,Microsoft. For IE 9's 4th Developer Preview.
  41. ^"Microsoft releases final IE9 preview, beta due in September".ZDNet. 26 August 2010.Archivedfrom the original on 2 December 2010.Retrieved9 November2010.
  42. ^"Acid Redux".22 March 2008.Archivedfrom the original on 6 March 2010.Retrieved21 March2010.
  43. ^"Mythbusting: Why Firefox 4 won't score 100 on Acid3".25 January 2011.Archivedfrom the original on 26 January 2011.Retrieved25 January2011.
  44. ^"Ian Hickson announces Acid3 modifications".17 September 2011. Archived fromthe originalon 12 October 2011.Retrieved17 September2011.
  45. ^"Acid3 Test Simplified; All Modern Browsers Score 100".20 September 2011. Archived fromthe originalon 6 March 2016.Retrieved7 June2013.
edit