Giter VIP home page Giter VIP logo

acidtestsmathml's Introduction

MathML Acid Tests

Although the creation of the tests is now complete, I expect to modify some of them if I get feedback or if I find errors while I write the detailed description below. Once the tests are considered stable, I plan to submit them to organizations like the Math WG or the WaSP, that could publish them and provide an official URL. In the meantime, online versions are available on GitHub:

This repository contains MathML versions of the famous Acid Tests (Acid1, Acid2 and Acid3). At the time these MathML versions are published, most modern browsers support the advanced HTML/CSS/SVG/Javascript/DOM features verified by the classical Acid tests but very few have a decent support for even the simplest mathematical constructions. MathML is a very old W3C standard, now integrated into HTML5 and EPUB3 so browser vendors can not claim having a standard-compliant rendering engine when this one lacks a native MathML implementation. Incidentally, here are some references if you wish to follow the development of MathML in browsers:

Do you want to see improvements in native MathML support? Then please support this crowdfunding project:

Of course these Acid tests are not perfect, for example they do not capture the subjective but important notion of "good-looking mathematical expressions". Also, they are supposed to be executed in browsers ; the result for other MathML layout engines (including polyfills) should not be considered reliable. However, these tests have the advantage to quickly provide objective results to people even those without advanced knowledge of the MathML language. Many tests make sense out of a browser context and could be verified by non-browser MathML implementers.

Perhaps the most popular MathML tests are the Mozilla's MathML Torture Test or Joe Java's MathML test where the rendering quality of a few basic constructions is compared against TeX images and the W3C's MathML test suite where a large number of features are tested against sample references. Unfortunately these tests are not automated and are very subjective. This makes evaluation and comparison of native MathML implementations a difficult task. Since the MathML Acid1 test contains very elementary MathML constructions, we keep this subjective evaluation method. Any rendering that looks more or less like the reference and satisfies the basic requirements could be accepted.

The MathML recommendation almost never describes precisely the rendering of elements, so exact pixel matching does not make sense in general as opposed to SVG or CSS. For the MathML Acid2 test, we use MathML features like mathbackground='yellow' or <mpadded> whose visual renderings are clearly defined in order to draw the smiley face. Most other MathML features can be verified via Javascript by testing the relative position of boxes (e.g. the numerator is above a denominator in an <mfrac> element). These features are verified in the MathML Acid3 test. Hence the combination of these MathML Acid2 and Acid3 tests should give a pretty good coverage of MathML features, while still being automated and hopefully quite objective.

acidtestsmathml's People

Contributors

fred-wang avatar huonw avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.