## Firefox Nightly passes the Acid2 test

By fredw on Friday, May 3 2013, 14:40 - Permalink

Some updates on the MathML Acid Tests... First the patch for bug 717546 landed in Nightly and thus Gecko is now the first layout engine to pass the MathML Acid2 test. Here is a screenshot that should look familiar:

As you know, Google developers forked Webkit and decided to remove from Blink all the code (including MathML) on which they don't plan to work in the short term. As a comparison, here is how the MathML Acid2 test looks like in Chrome Canary:

Next, someone reported that Firefox Mac got more errors in the MathML Acid3 test. I was already aware of some shortcomings anyway and thus took the opportunity to rewrite the tests with a better error tolerance. The changes also fixed some measurement issues with auto resizing on mobile platforms or when the zoom level is not set to the default. I also made the tests for stretchy operators more reliable and as a consequence, Gecko lost two points: the new score is 60/100. I still need to review and describe the tests and hope I won't find more mistakes.

Finally, I also added a MathML Acid1 test. It does not really look like the "classical" Acid1 test and is not "automated", in the sense that a reader must carefully (and in a subjective way) check the basic requirements. But at least it provides a small test in the spirit of CSS Acid 1: all 100%-conformant HTML 5 agents should be able to render these very elementary MathML expressions. Note that the formulas in the MathML Acid1 test are supposed to express mathematical properties of boxes from the CSS Acid1 test.

## Comments

Maybe the folks Google would have cared more about MathML had someone used Math(ML) to explain to them how to get the goat teleportation issue under control: http://crbug.com/31482

$Knuth'sMagicNumber = \phi \cdot 2^{30}$

Mimicing the name and design of the existing, well-known ACID tests doesn't seem like a good idea. It's just going to cause confusion. And, especially given the long debate over the usefulness of ACID3, is probably even counter to your purposes.

I agree with Justin that reusing the ACID test names is a bit confusing. It would help a lot just to rename them to MACID or something like that.

Anyway, I think having these sorts of tests is great. Thanks for them, and all the MathML work you've been doing for us!

@Justin and @robert you do realize that "Acid Test" is an old expression not invented by the web compliance tests you're familiar with, right?

An "acid test" proves the quality of something (cf. http://idioms.thefreedictionary.com... ) and therefore this is an acid test, just like any other.

Thank you for taking the time to make these tests. I disagree with the other posters. Keep it as MathML __Acid Test #__. Everyone knows what an Acid Test is in the browser world. Prefixing it with MathML gets the point across that you are trying to benchmark MathML performance. I like MathML and I would like to use it in some internal (engineering) web applications at work. All browser vendors should support MathML in order to allow scientists, mathematicians, engineers, and other interested parties. to communicate math more effectively. I am particularly displeased with the Chrome regressions, since their previous stance was "we're waiting on webkit to implement it." Once the support finally landed, they're cutting it out... great. Again, thank you for your work.

Oddly enough, the MathML Acid 2 test also seems to render just fine with Debian's "Iceweasel" (a rebranded Firefox for some licensing reason), which is still only at version 10.0.12.

So maybe the rendering errors in newer versions were a regression, or the older version's bugs managed to cancel each other out?

Thanks for your comments. It also seems to me that "Acid Test" is an English idiom, but I tried to explicitly use the "MathML" prefix everywhere to avoid confusion (forgot in my blog title). I could also rename it like "∀ci∂" but that would lead to font and typesetting issues. Mimicing the design was more intended to be a funny allusion to the classical Acid tests than to mislead people. Again, I could change things like colors (smiley face, rectangles) but I don't really believe people are likely to be confused by the result/score, since modern browsers all pass the classical Acid tests anyway.

I don't think the debate about the usefulness of Acid3 is a problem. I never claimed that the features in the MathML tests must absolutely all be implemented in browsers. Like the classical Acid tests, it's just a set of features selected from a W3C specification and gathered in a way that the results can easily be obtained by someone without any knowledge of MathML (or of mathematical notations). Probably after more experiments with Web technologies you realize that some are less important or not well designed. If some browser developers would have a score similar to Gecko and say "Bidi MathML is not our priority", then that would be fine. However, some features are very elementary (scripts, table, fractions, square root...) and it's not normal that most browsers do not implement them and focus instead on e.g. the latest CSS or HTML5 feature, still in a W3C working draft.

@Chris: to be fair, they disabled the MathML support because of security reason, which is certainly a good point. But the real issue is that two volunteers tried to work on MathML during a couple of years and Chromium devs almost didn't help them. Then they realized the poor implementation design and just decided to disable MathML again. Because the volunteers left the project and Chromium devs don't plan to work on it they just removed the code. It's incredible that Google is not able to pay one dev to help sorting things out and prefers to just give up. As a comparison, Mozilla does not have any dev actively working on the MathML code but at least they pay attention when they do code review and accept volunteer contributions ; and when there are security issues or serious regressions in the MathML code, some paid staff are here to do the job.

@Torbjörn: That's possible. Negative spacing was removed to fix an assertion in the layout engine and recently rewritten. Not sure that this worked correctly before, though.

Excellent job Frederic for the MathML Acid Test 2. Would you mind making sure that ALL the MathML Acid Tests work perfectly fine ASAP. It does matter.

Sorry, but the naming of the tests together with their design actually really is confusing, at least to average web developers. Adding "MathML" as a prefix does not resolve the confusion. You do not perceive it as a problem only because you already know very well what MathML is and what exactly this is all about, so to you it all may seem obvious. As a web developer that has never worked with MathML and just stumbled upon this post from reddit, I immediately got confused: "Gecko passed Acid2? Didn't that happen years ago?" and seeing the familiar test face pattern deepened the confusion even further, so I scrolled up to check the date of the article. The MathML part did not even register as a difference, as I automatically brushed it off thinking that it could have perhaps been some full official title of the original browser tests that I simply hadn't noticed earlier or something like that. Only after seeing the first comment by Justin it occured to me that maybe these are actually not the same tests. An acid test may be an English idiom but "Acid2 test" certainly is not. I suggest you consider changing at least the name to something unmistakably different from the original tests, the similarities really will do more harm than good.

Firefox 11 past that test, tho.

MathML acid test made sense to me. I'm sure this idea getting generalized moving forward is a good thing.

To those who complain about the confusion: I added a warning banner that hopefully should clarify which test you are running.