Ask HN: Why don't modern Chrome and Firefox pass the Acid3 test anymore?

8 years ago

A few years ago there was a large hype of browsers being the first to pass the Acid3 test.

Now I tested the Acid3 test (http://acid3.acidtests.org/; also cf. http://www.acidtests.org/) with the most recent browsers available to me:

Google Chrome 61.0.3163.91 (64 bit), Firefox 55.0.3 (64 bit) and Microsoft Edge.

Ironically (with respect to Microsoft/IE haters) only Microsoft Edge still passes the Acid3 test with 100/100, while Chrome and Firefox only get 97/100 (the second and third box from the left stays gray).

But this would not be Hacker News if it were not for some technology discussion: So what is the reason why these two browsers do not pass the Acid3 test anymore?

Two changes lead to three failures in Chrome.

The first change is described in the 'note' at https://drafts.csswg.org/selectors-4/#child-index

Chrome is failing a test because the root node claims to be a 'first-child'.

The root node is the first sibling, but since it doesn't have a parent, the selectors 3 spec didn't include it.

The selectors 4 draft does away with the requirement that a 'first-child' have a parent, and chrome's behaviour matches.

The second is discussed here https://github.com/whatwg/dom/issues/319

Roughly, when interpreting qualified names, Chrome is throwing InvalidCharacterErrors when the acid test wants it to throw NamespaceErrors, in situations where you really have both. This leads to two tests failing.

According to www.acidtests.org:

> Acid3, in particular, contains some controversial tests and no longer reflects the consensus of the Web standards it purports to test, especially when it comes to issues affecting mobile browsers.

  • > Acid3, in particular, contains some controversial tests and no longer reflects the consensus of the Web standards it purports to test, especially when it comes to issues affecting mobile browsers.

    Does this imply that the standards have changed on how some features are to be implemented? Or has the correct behavior simply never been specified precisely enough? Or does this simply mean that some of the features that Acid3 tests simply don't make much sense on mobile browsers?

The game these days driven by Chrome is not about standards, it's about the number of chump devs they can find to adopt whatever "cool" garbage they come up with over the weekend hackathon. Then they point at those numbers and say fuck you to whoever opposes it. Six months down the line they will be furiously patching it. It's like a bunch of 10 years old drive the process.

  • While this might be able to explain the result for Chrome, it does in my opinion not explain why Firefox fails the Acid3 test, too.

    • Firefox drop in market share means they now must do whatever the winner does, they are an "also-ran", so they are following these 10 year olds...

  • or the Acid3 test isn't as useful as it is today. Why do you think the Acid3 test is useful?

    • > or the Acid3 test isn't as useful as it is today. Why do you think the Acid3 test is useful?

      Having a compliance test whether a set of features is implemented correctly is nearly always a very good idea (I really have to think seriously to even find examples where it is not. There is a reason why some development teams even make it as a central principle for managing software development (TDD - test-driven development). I am of course aware of the fact that the features tested with Acid3 were chosen such that every browser of that time looked bad in Acid3. This makes Acid3 a little political, but not wrong.

      A test suite can become "old-fashioned" if you will have to look hard for an implementation that fails to comply with it. Acid1 has been belonging into this category for a long time and today I would also put Acid2 into this category.

      But since we can now find implementations (Chrome, Firefox) which describe themselves as cutting edge in implementing new features (opposed to Edge) and fail the test, this shows to me that Acid3 has not become "old-fashioned". The issue shown by the 97/100 in this test could also show a serious issue in backwards compatibility of the standards that it tests (cf. https://news.ycombinator.com/item?id=15258700) - and this is something that should be analyzed carefully. This alone still makes Acid3 useful, I think.

  • It used to people would try to copy the quirks of IE since it was the dominant browser at the time. It seems tech is very cyclical.