Math accessibility
Accessible math: formulas converted to MathML for EPUB 3 and HTML
Accessible math means a formula a screen-reader user can hear, step through and read in braille, instead of a picture of a formula. I convert the maths in textbooks, exam papers, worksheets and e-learning material from images, LaTeX or Word equations into MathML inside EPUB 3 and HTML. Each formula gets a text alternative (alttext) and the file gets accessibility metadata. I check how the formulas are spoken in English and German, and you get the verifier reports with a plain list of what those tools cannot see.
In short
What I do
- Convert formulas from images, LaTeX or Word equations into presentation MathML, keeping the LaTeX source inside each formula as an annotation.
- Write a text alternative for every formula in the language of the book, by hand where no speech engine covers that language.
- Build or repair the EPUB 3 or HTML around the formulas: language, headings, lists, tables, navigation and the accessibility metadata that declares MathML.
- Run a speech check of every formula in English and German with a speech rule engine, and fix what sounds wrong.
- Deliver EPUBCheck, DAISY Ace, axe-core and Nu Html Checker reports, a speech table and a findings report.
Not part of this service
- Checking your mathematics. I reproduce formulas as printed and flag anything that looks wrong; the content is your author’s and editor’s.
- Testing with screen-reader or braille users. My findings come from the files, the specifications and the tools.
- Certified braille transcription. Braille output from the speech engine is a by-product, not reviewed by a braille transcriber.
- Platform settings. How your LMS, shop or reading app treats the file after upload is outside the file.
- Legal advice. Whether a law applies to your titles is for your lawyer.
Is this page for you?
This page is for you if one of these describes your situation:
- You are an educational or STEM publisher selling e-books to consumers in the EU, and your formulas are images.
- Your distributor or platform asks for accessibility metadata, and you are not sure what to declare for a book full of equations.
- You produce exam papers, worksheets or e-learning modules, and a student who uses a screen reader cannot read the questions.
- A conversion vendor delivered EPUBs that “pass Ace”, and every formula is still a picture with
alt="equation". - Your maths lives in LaTeX or Word and you need it in EPUB or on the web without turning it into images.
Check your formulas in one minute
- Select it: try to select a single symbol inside a formula, such as one exponent. If the whole formula is selected as one block, or nothing is, it is an image.
- Zoom it: zoom to 400 %. Image formulas go soft or blocky; MathML stays sharp like the text around it.
- Look inside an EPUB: copy the file, rename
.epubto.zip, open a chapter file and search for<math. If there is none, search foralt="and read what the formula images are called.
If the alt texts all say “formula”, “equation” or nothing, the worked example below is your file.
Read on for the technical detail. Below: why a picture of a formula is not accessible, a measured before-and-after example on a 12-formula worksheet with every file downloadable, what the verifiers miss, and the rules for e-books in the EU. To skip ahead, send one chapter and I will tell you what is wrong with it.
Why a picture of a formula is not accessible math
A formula stored as an image carries no mathematics, only pixels; MathML stores the structure — fraction, root, exponent — so assistive technology can speak it, navigate it and turn it into braille.
Image formulas and their alt text
An image formula is only as good as its alt text. In practice it is often empty or a single word such as “formula”, so a screen-reader user hears “formula” twelve times and nothing else. Even a full spoken alt text is a flat string: there is no moving into the denominator, no hearing the exponent again, no braille. Zoomed in, the bitmap blurs.
MathML, alttext and the LaTeX source
EPUB 3 and HTML both support MathML natively. I use presentation MathML that targets MathML Core, the part of MathML browsers implement. Each <math> carries an alttext attribute with a spoken version, and the original LaTeX travels inside it as an annotation, so the source is never lost.
MathML Core and markup that breaks
Not all valid MathML renders. The element <mfenced>, common in older MathML 3 files, is not part of MathML Core. In the worked example, Chromium 141 drew it as a bare “ab” without its brackets and separators, while EPUBCheck’s schema accepts it. I write fences as explicit operators instead.
Speech: who decides what is said
The spoken words do not come from the file but from a speech engine in the reading system or screen reader. MathML gives that engine the structure; the engine applies its rules for each language. I check every formula with Speech Rule Engine, which covers English and German among others. It has no Turkish locale, and I found none to test with. For Turkish, the hand-written alttext is the only Turkish wording in the file.
Metadata that declares MathML
An EPUB with MathML has to say so twice: properties="mathml" on each content document in the package file, and accessibilityFeature “MathML” in the accessibility metadata, with “describedMath” where text alternatives exist. Shops and reading apps read that metadata before a reader buys the book.
Evidence: a 12-formula worksheet, before and after
This is a measured worked example on a fictional worksheet I wrote for the purpose, not client work. I built a typical image-based version, converted it to MathML, and ran the same verifiers on both on 6 October 2026. All files and reports can be downloaded below.
Source and license
The source is an original, fictional worksheet, “9. Sınıf Denklemler — Çalışma Kâğıdı” (Grade 9 equations), written by me in Turkish and labelled as fictional inside the files. It is not taken from any textbook or exam. Its 12 formulas in 3 sections run from fractions and roots to the quadratic formula, a definite integral, a 2×2 matrix and a piecewise function, plus an answer key. License: © 2026 Ali Karabüyük, CC BY 4.0. One LaTeX string per formula is the source of both versions.
The “before” file is a constructed typical case, not a real publisher’s file: each formula is a PNG rendered from the same LaTeX. Odd-numbered items have alt="formül" (“formula”), even-numbered items have no alt at all, and the package file has no accessibility metadata.
What was wrong, measured
| Measured | Before (image formulas) |
|---|---|
| Formulas that exist only as pixels | 12 of 12 |
| Images with no alt attribute | 6 |
Images with alt="formül" | 6 — flagged by no tool |
| Accessible names in the Chromium accessibility tree | 6 × “formül”, 6 × empty |
| Accessibility metadata missing (Ace) | 9 of 9 properties |
| EPUBCheck 5.2.1 | 0 fatal, 0 errors, 0 warnings — valid, yet inaccessible |
What I changed
- Converted the 12 formulas to presentation MathML with the open-source converter Temml 0.13.5, which targets MathML Core and keeps the LaTeX as an annotation.
- Wrote a Turkish
alttextfor every formula by hand (item 7 is shown below). - Declared MathML in the package file and wrote the accessibility metadata, including MathML, describedMath, a Turkish summary and the statement “EPUB Accessibility 1.1 – WCAG 2.1 Level AA”.
- Added a language (
tr), real headings, a numbered question list, an answer key table with header cells and EPUB navigation; then built an HTML version with the same MathML and no JavaScript. - Ran the speech check, found a defect in item 11 (below) and fixed it.
What the verifiers report after
DAISY Ace went from fail with 11 violations to pass with none; EPUBCheck reported 0 errors on both files — the image version was valid all along.
| Tool (version) | Before | After |
|---|---|---|
| EPUBCheck 5.2.1 | 0 fatal / 0 errors / 0 warnings | 0 fatal / 0 errors / 0 warnings |
| DAISY Ace 1.4.6 outcome | fail, 11 violations (6 critical, 3 serious, 2 moderate) | pass, 0 violations |
| Ace: accessibility metadata | 0 present, 9 missing | 7 present; 2 optional certifier fields left empty |
| Ace: MathML detected | no | yes |
| axe-core 4.13.0 on the HTML | image-alt violated on 6 nodes | 0 violations; contrast “needs review” on 10 operator-only nodes, measured by hand at 18.88:1 |
| Nu Html Checker | 6 errors (img without alt) | 0 errors, 0 warnings |
| Chromium 141 | 12 bitmaps | 12 formulas rendered natively, 12 MathML nodes in the accessibility tree |
| Speech Rule Engine 5.0.0-rc.4 | nothing to speak | 12 of 12 spoken in English and German (MathSpeak, ClearSpeak); Nemeth braille for 12 of 12 |

What the verifiers do not report
Four of the most important findings appear in no report. I found them by testing the tools on purpose and by listening to the speech output.
A useless alt text passes everything
alt="formül" on six formulas passed Ace, axe-core, the Nu Html Checker and EPUBCheck. The tools ask whether a text alternative exists, not whether it says anything.
Ace does not cross-check MathML metadata
I removed the “MathML” accessibility feature from a file that contains MathML. Ace still passed it. It does not compare what the book declares with what the book contains.
Valid MathML that Chromium cannot draw
<mfenced> is accepted by EPUBCheck’s schema, yet Chromium 141 rendered it 26.8 px wide without brackets, against 88.3 px for the same expression written with explicit operators.
A defect only the speech review caught
In item 11, a wide space (\qquad) was spoken as “empty”: “…comma empty determinant A…”. With a narrow space it reads “…comma determinant A equals question mark”. No validator reports how a formula sounds.
EPUBCheck does validate the schema: an invented MathML element and a missing properties="mathml" each gave one error. No tool checks whether a formula matches the printed page. Chromium also gave the 12 formulas an empty accessible name — it did not use the alttext — so assistive technology has to read the MathML itself.
What the formulas sound like
The speech table in the downloads has all 12 formulas in five renderings. Item 7, the quadratic formula:
| Rendering | Output |
|---|---|
| English ClearSpeak (SRE) | x equals the fraction with numerator negative b plus or minus the square root of b squared minus 4 a c and denominator 2 a |
| German ClearSpeak (SRE) | x ist gleich Bruch mit Zähler minus b plus minus Quadratwurzel aus b Quadrat minus 4 a c und Nenner 2 a |
| Turkish alttext (hand-written) | x eşittir kesir: pay eksi b artı eksi karekök içinde b kare eksi dört a c, karekök sonu; payda iki a |
| Nemeth braille (SRE) | ⠭⠀⠨⠅⠀⠹⠤⠃⠬⠤⠜⠃⠘⠆⠐⠤⠲⠁⠉⠻⠌⠆⠁⠼ |
Asked for Turkish, the engine answers “Locale tr does not exist! Using English instead.” Whether a particular Turkish screen-reader setup speaks MathML in Turkish I did not test. Nemeth was produced for all 12 formulas but not reviewed by a braille transcriber; the engine has no Unified English Braille and no Turkish math braille.

Limits of this example
- No testing with screen-reader or braille users; NVDA with MathCAT, JAWS, VoiceOver and TalkBack were not run. They use their own speech engines.
- Reading systems not tested: Apple Books, Thorium, Kobo, Google Play Books, Adobe Digital Editions and Kindle. Only Chromium 141 rendering was checked; small spacing differences against LaTeX are visible.
- The conformance and certifier entries are a self-declaration based on these checks and a manual review of a short document, not a third-party certification.
Download the files and compare
| File | What it is | Size |
|---|---|---|
| Worked example (ZIP) | Both EPUBs and HTML versions, full Ace reports, all verifier output (JSON, text), the speech table, the Chromium screenshot and the findings report | 1.0 MB |
| EPUB, before (inside the ZIP) | 12 image formulas, no metadata | 63 KB |
| EPUB, after (inside the ZIP) | 12 MathML formulas with Turkish alttext and accessibility metadata | 6 KB |
| Ace report, before (PDF) | Ace 1.4.6: fail, 11 violations | 157 KB |
| Ace report, after (PDF) | Ace 1.4.6: pass, 0 violations | 92 KB |
| Speech table (CSV) | 12 formulas: LaTeX, Turkish alttext, English and German MathSpeak and ClearSpeak, Nemeth | 6 KB |
The HTML files, JSON outputs and the full Ace HTML reports are only in the ZIP.
What you receive
You receive the converted files, the reports, and a written account of what changed and what the tools could not check.
- EPUB 3 or HTML with every formula in MathML, each with an
alttextin the language of the book and the LaTeX kept as an annotation. - Package metadata that declares MathML, plus an accessibility summary in the language of the book.
- EPUBCheck and DAISY Ace reports for each EPUB; axe-core and Nu Html Checker results for HTML.
- A speech table: every formula with its alttext and the English and German engine output, so your editor can listen through it.
- A findings report: what was fixed, formulas that looked wrong in the source, and what the verifiers do not check.
How the work runs
You send one real chapter or paper first; the price is fixed before any work starts.
- Send one chapter or exam paper. The EPUB, the Word or LaTeX source, or a PDF. I tell you how the formulas are stored and what converting them involves.
- You receive a scope and a fixed price for that file or the whole series, before anything starts.
- I do the work. You receive a preview copy, marked as such, with the verifier reports and the speech table, to check in your own reading app or LMS.
- Your approval releases the final files and the findings report.
Pricing
I price each job after seeing the material. The number of formulas and how they are stored decide the effort more than page count: a chapter written in LaTeX converts far faster than one where every formula is an image that has to be retyped and compared with the print. You get a fixed price for the set before work starts, with no hourly meter. If one source format runs through a whole series, I set the conversion up once and say so in the quote.
Why this matters now
Since 28 June 2025, e-books sold to consumers in the EU fall under the European Accessibility Act, and a formula with no usable text alternative fails the most basic WCAG criterion. What that means for a given title is a legal question.
Legal note: this page covers the technical side. Whether the law applies to you, and who carries the obligation in your sales chain, is for your legal adviser to confirm.
- The European Accessibility Act, Directive (EU) 2019/882, lists “e-books and dedicated software” among the services it covers, applies from 28 June 2025, and in Annex I, Section IV, asks among other things for alternative renditions that work with “a variety of assistive technologies” and for accessibility information in metadata. Article 4(5) exempts microenterprises that provide services.
- In Germany it is implemented by the Barrierefreiheitsstärkungsgesetz (BFSG), which names “E-Books und hierfür bestimmte Software” in § 1(3).
- WCAG 2.2 success criterion 1.1.1 requires a text alternative for non-text content; an image formula with an empty or one-word alt does not provide one. EPUB Accessibility 1.1 builds on WCAG and defines the metadata, including the MathML and describedMath features.
- Exam papers and course material on the websites and platforms of EU public universities are a separate case, under the Web Accessibility Directive (EU) 2016/2102 and its national laws.
Publishers outside the EU, in Türkiye, the UK or the US, meet these rules through their sales to EU consumers. For the technical side of the whole e-book, see accessible EPUB.
Frequently asked questions
Isn’t an image with a good alt text enough?
A complete spoken alt text is far better than “formula”, but it stays a flat string: no stepping into a fraction, no braille, and the image blurs when enlarged. MathML gives assistive technology the structure; I add the alt text on top.
Our formulas are in Word or LaTeX. Can you work from that?
Yes. LaTeX converts most directly, and it was the source in the worked example. Word equations and images are first brought into LaTeX or MathML; image formulas are retyped and compared with the printed page, which takes longer, and the quote reflects that.
Will the formulas be read out in Turkish?
Not by the speech engine I test with: Speech Rule Engine has no Turkish locale and falls back to English. That is why I write the Turkish alttext by hand. Whether a given Turkish screen-reader setup uses it or speaks the MathML in Turkish, I did not test.
Ace passes our e-books. Are the formulas accessible?
Not necessarily. In the worked example, alt=”formül” passed Ace, axe-core, the Nu Html Checker and EPUBCheck, and Ace still passed a file whose metadata no longer declared MathML. A speech review found a defect that no validator reported.
Will it work in Apple Books, Kobo or Kindle?
I cannot promise that. In the worked example only Chromium 141 rendering was checked; Apple Books, Kobo, Kindle and other reading systems were not tested, and their MathML support differs. The preview copy is there for you to check in the apps your readers use.
Do you test with screen readers or braille displays?
No, and I do not claim otherwise. NVDA with MathCAT, JAWS and VoiceOver were not tested, and the Nemeth output was not reviewed by a braille transcriber. Testing with people who use assistive technology should be commissioned separately.
Related services
Send me one chapter
One file — the chapter, exam paper or module with the formulas that worry you most. You get back a straight account of how its maths is stored and what converting it involves, including the parts not worth paying for.
Ali Karabüyük · Tekirdağ, Türkiye · working remotely with clients worldwide · document and image production since 2004, professional practice since 2008.

