A chalkboard with a mathematical equation in chalk and a hand about to add another term — the visual marker for math accessibility on the web.
Image description: A chalkboard with a mathematical equation in chalk and a hand about to add another term — the visual marker for math accessibility on the web.

Engineering primer · Wiskundetoegankelijkheid

Wiskundetoegankelijkheid: MathML, MathJax en de lange weg

Een technische primer over de stand van wiskundetoegankelijkheid op het web in 2026: van native MathML in Chromium 109 tot de Speech Rule Engine.

Wiskundetoegankelijkheid
MathML, MathJax en de lange weg

Twintig jaar lang renderde het web lopende tekst goed en wiskunde slecht. Native MathML in Chromium 109 en een stilletjes volwassen wordende Speech Rule Engine hebben het tij definitief gekeerd. Deze primer brengt in kaart hoe de onderdelen samenhangen en welk onderdeel men in 2026 het beste kan inzetten.

2023
Chromium levert native MathML Core (v109)
4
wiskunde-stacks voor schermlezers in actief gebruik
ca. 95%
van de browsers leest MathML nu native
10 min lezen
Bijgewerkt mei 2026

1. Native MathML in 2026

Het eerste wat onomwonden gezegd kan worden, is dat de jarenlange discussie over de vraag of browsers wiskunde native zouden moeten renderen, beslecht is. Firefox rendert MathML al sinds begin 2000; WebKit leverde een bruikbare implementatie in Safari in 2013; de achterblijver, Chromium, landde MathML Core uiteindelijk in versie 109 in januari 2023. Die ene release deblokkeerde het hele platform: halverwege 2026 spreken de grote browserengines op elke desktop en vrijwel elke telefoon MathML als eersteklasstaal. De uitwijkroute die het web bijna twintig jaar lang als standaard hanteerde — render de formule als afbeelding, met een alt-attribuut waarop de gebruiker van een schermlezer moet vertrouwen — is niet langer de verantwoorde standaard.

Wat in 2023 veranderde, is smaller dan de koptekst doet vermoeden. Chromium implementeerde niet de volledige MathML 3; het implementeerde MathML Core, een deelverzameling die bewust beperkt is tot de elementen die browsers betrouwbaar kunnen renderen en die hulptechnologieën kunnen navigeren. Opmaak voor elementaire wiskunde (staartdeling, overdrachten, gestapelde optelling) staat niet in Core. Regelafbreking binnen lange vergelijkingen staat wel in Core, maar de heuristieken zijn conservatief. Sommige geavanceerde rekbare operatoren renderen nog steeds inconsistent over engines heen. Maar de basis — breuken, wortels, subscripts en superscripts, matrices, integralen, somtekens, het operatiewoordenboek — is nu in elke relevante engine aanwezig.

De gevolgen voor toegankelijkheid zijn direct. Een pagina die MathML rechtstreeks in de DOM plaatst, levert een semantische expressie die een schermlezer kan uitspreken, navigeren en opnieuw uitspreken op een ander detailniveau. Een pagina die een afbeelding met een alt-attribuut levert, biedt één zin die de gebruiker van de schermlezer niet kan inzoomen, niet opnieuw kan laten uitspreken en niet in een rekenmachine kan plakken. Tien jaar lang was de afweging reëel, omdat Chromium MathML niet kon renderen en terugvallen op afbeeldingen minder kapotte pagina’s betekende. Die afweging geldt niet langer.

ca. 95%
van de wereldwijde browsersessies rendert MathML nu native, op basis van het geaggregeerde browsersaandeel van Chromium 109+ sinds jan. 2023, Firefox en WebKit-gebaseerde Safari.
ca. 23 jaar
tussen het moment dat MathML een W3C-aanbeveling werd (feb. 1998, MathML 1.01) en de native implementatie van Chromium (jan. 2023).
ca. 0 KB
JavaScript nodig om native MathML te renderen — de rendering vindt plaats in de browserlay-outengine, niet op de main thread.
MathML Core, kort samengevat

MathML Core is de deelverzameling van MathML 3 waarover browserengines zijn overeengekomen interoperabel te leveren. Wie vandaag MathML vanuit een build-pipeline genereert, richt zich het beste op Core. Notaties voor elementaire wiskunde en geavanceerde lay-outextensies staan in de bredere MathML 3-specificatie; behandel ze als progressieve verbeteringen die nog steeds baat hebben bij een MathJax-fallback.

”Een pagina die een afbeelding met een alt-attribuut levert, biedt één zin die de gebruiker van de schermlezer niet kan inzoomen, niet opnieuw kan laten uitspreken en niet in een rekenmachine kan plakken.”

— dit artikel, sectie 1

2. MathJax: van renderer naar polyfill

MathJax was de brug die wiskunde op het web leesbaar hield tijdens de lange Chromium-achterstand. Vanaf de eerste release in 2010 nam MathJax LaTeX of MathML uit de broncode en produceerde gestylede HTML- of SVG-uitvoer die elke browser kon renderen. Het was het grootste deel van zijn bestaan de primaire renderlaag voor wiskundige inhoud op het web — Wikipedia, arXiv, MathOverflow, Stack Exchange en de grote meerderheid van academische uitgeefplatformen leverden MathJax op elke pagina.

De rol die MathJax in 2026 speelt, is anders. Nu Chromium MathML native rendert, is de taak als renderer-of-last-resort voltooid. Wat MathJax nu doet — en beter doet dan wat dan ook — is zich plaatsen vóór legacy-LaTeX-bronnen en ze omzetten in schone MathML die de browser rechtstreeks rendert. Versie 3 en versie 4 zijn met dat doel herschreven: de LaTeX-invoerparser is volwassen, de MathML-uitvoer voldoet aan de standaarden, en de runtime kan zo worden geconfigureerd dat hij MathML emitteert en dan een stap terug doet, zodat de browser het lay-outwerk overneemt. De bibliotheek is groter dan gewenst op een critical-path-pagina, maar het is de betrouwbaarste LaTeX-naar-MathML-converter op het web.

MathJax v4
Open source · runtime LaTeX/MathML-conversie
Legacy-LaTeX-corpora die in de browser worden gerenderd; de renderer achter de meeste academische en STEM-uitgeefplatformen
Sterk puntLaTeX-parser verwerkt de lange staart van academische macro’s
Zwak puntZware runtime; ca. 700 KB op een critical path is merkbaar
Beste voorPagina’s waarvan de broncode LaTeX is en die niet vooraf verwerkt kunnen worden
KaTeX
Open source · snelle LaTeX-renderer
Documentatiesites, blogs en productoppervlakken die LaTeX willen zonder de MathJax-payload
Sterk puntSnel, klein (ca. 270 KB), synchrone rendering
Zwak puntMathML-uitvoermodus verbeterd, maar nog steeds minder dekking dan MathJax
Beste voorPrestatiegevoelige oppervlakken met een kleiner LaTeX-dialect
Temml
Open source · LaTeX naar pure MathML
Conversie tijdens het bouwen: eenmalig MathML genereren bij publicatie, nul JavaScript tijdens runtime leveren
Sterk puntPuur MathML-uitvoer; kleine runtime-footprint bij gebruik tijdens het bouwen
Zwak puntKleiner LaTeX-dialect dan MathJax
Beste voorStatische-sitepipelines waarbij wiskunde deel uitmaakt van het bouwproces
Pandoc
Open source · documentformaatconverter
Langformaat LaTeX- of Markdown-manuscripten omzetten naar HTML met MathML bij publicatie
Sterk puntConversie van hele documenten; levert MathML als een van de uitvoermogelijkheden
Zwak puntGeen runtime-renderer; aangestuurd via de command line
Beste voorAcademische uitgeefpipelines en leerboekconversie

3. LaTeX naar MathML in de praktijk: goede versus slechte opmaak

De meeste wiskundige inhoud op het web heeft ergens stroomopwaarts een LaTeX-bron. De vraag is waar de LaTeX-naar-MathML-conversie plaatsvindt — tijdens het bouwen, tijdens de runtime, of nooit. Het patroon dat op elke toegankelijkheidsas wint, is conversie naar MathML tijdens het bouwen, waarbij de gerenderde MathML rechtstreeks in de pagina-HTML wordt opgenomen. Het patroon dat op elke as verliest, is het leveren van een afbeelding van een LaTeX-rendering met een alt-attribuut dat de vergelijking parafraseert.

Goed: MathML in de pagina
  • De vergelijking staat in de DOM als semantische opmaak.
  • De schermlezer spreekt operator, operand en structuur uit — en laat de gebruiker door deelexpressies navigeren.
  • Browsers renderen het native; nul JavaScript op het critical path.
  • Zoekmachines en AI-samenvattingen kunnen de expressie als tekst lezen.
  • Kopiëren en plakken levert een bruikbare representatie op, vaak heen-en-terug converteerbaar naar LaTeX.
De derde optie die ook verliest

Veel CMS-platformen leveren nog steeds ruwe LaTeX in de pagina en laten een runtime-bibliotheek (vaak MathJax) het bij het laden ontdekken en converteren. Het resultaat wordt gerenderd, maar pas nadat een script is uitgevoerd — een merkbare toegankelijkheidsboete op trage netwerken en een meetbare lay-outverschuivingskost. Converteer tijdens het bouwen wanneer dat mogelijk is; reserveer runtime-conversie voor legacy-bronnen die niet opnieuw gebouwd kunnen worden.


4. Wiskundenavigatie voor schermlezers

De wiskunde renderen is de helft van het werk. De andere helft is navigatie: een lange vergelijking kan niet worden gelineariseerd tot één gesproken zin zonder dat de lezer de draad kwijtraakt. Elke grote schermlezer beschikt nu over een “wiskundemodus” waarmee de gebruiker een breuk kan binnengaan, langs de teller kan lopen, in een subscript kan afdalen, terug naar de bovenliggende expressie kan springen en de huidige deelexpressie op een ander detailniveau opnieuw kan laten uitspreken. De implementaties verschillen in volwassenheid, in de toetsaanslagen en — cruciaal — in welke spraakregel-bibliotheek ze delen.

SchermlezerNative MathMLSpraakengineNavigatieVolwassenheid
NVDA (Windows)JaMathCAT (modern), historische MathPlayer-add-onDeelexpressie-doorloop, detailniveaus, braille-uitvoerProductieklaar
JAWS (Windows)JaMathCATDeelexpressie-doorloop, wiskundige reviewcursorProductieklaar
VoiceOver (macOS, iOS)JaApple intern, gedeeltelijk afgeleid van MathML-semantiekItemkiezer-navigatie; minder gedetailleerd dan NVDA/JAWSBruikbaar, minder rijk
ChromeVox (ChromeOS, Chrome)JaSpeech Rule Engine (SRE) rechtstreeksDeelexpressie-doorloop via SRE-regelsSterk in klaslokaalcontexten
Orca (Linux)GedeeltelijkSRE via browser; Orca zelf steunt op toegankelijke-boomtekstBeperkt; afhankelijk van browserWisselend
MathPlayer, MathCAT, MathML — drie namen om uit elkaar te houden

MathPlayer was de oorspronkelijke Design Science-add-on die NVDA leerde MathML uit te spreken; het is buiten gebruik gesteld. MathCAT is de moderne opvolger — actief onderhouden, op Rust gebaseerd, en de aanbevolen back-end voor zowel NVDA als JAWS vandaag de dag. MathML is de opmaak zelf: de invoer die beide bibliotheken verwerken. Verwijzingen naar MathPlayer in een specificatie of leveranciersdocumentatie uit 2026 zijn doorgaans historisch en dienen te worden gelezen als “de wiskunde-spraak-add-on” in de geest van de tekst.


5. De Speech Rule Engine, stilletjes op de achtergrond

Achter vrijwel elke moderne wiskundespraakervaring op het web schuilt een project dat de meeste ontwikkelaars nooit hebben gehoord: de Speech Rule Engine, of SRE. SRE begon binnen het ChromeVox-team van Google halverwege de jaren 2010 en is nu een open-sourcebibliotheek die voornamelijk door Volker Sorge wordt onderhouden. Het neemt MathML als invoer en geeft een gestructureerde gesproken vorm terug — in meerdere talen, op meerdere detailniveaus en met meerdere regelsets (MathSpeak, ClearSpeak, ChromeVox-classic). Het is ook de engine die het wiskundenavigatigedrag aanstuurt dat MathJax op zijn eigen gerenderde uitvoer blootstelt, en er wordt naar verwezen door zowel MathCAT als diverse browser-side toegankelijkheidsexperimenten.

De reden dat SRE als infrastructuur van belang is, is dat zonder een canonieke uitspraakbibliotheek elke schermlezer zijn eigen manier zou bedenken om x kwadraat plus y kwadraat gelijk r kwadraat te zeggen. Met SRE convergeren de grote implementaties op een kleine set van gesanctioneerde regelsets, wat betekent dat een docent die een vergelijking schrijft in een leerboekauthoringtool bij benadering kan voorspellen hoe een student die NVDA, JAWS of ChromeVox gebruikt het zal horen. De convergentie is niet volledig — VoiceOver is de uitschieter — maar ze is reëel en groeiende.

1

MathSpeak versus ClearSpeak

De twee bekendste regelsets worden meegeleverd binnen SRE. MathSpeak is de oudere, meer letterlijke stijl — “breuk één over twee einde-breuk” — en was ontworpen voor brailleprecisie. ClearSpeak is nieuwer en klinkt natuurlijker — “één half” — en is tegenwoordig de standaard in de meeste klaslokaalimplementaties. Overschakelen tussen de twee is een voorkeur voor detailniveau-stijl, niet een andere engine.

2

Meertalige ondersteuning

SRE wordt geleverd met vertaalde regelsets voor het Engels, Frans, Duits, Italiaans, Spaans en een groeiende reeks aanvullende talen. De vertalingen zijn niet machinaal gegenereerd — ze zijn gemaakt door de SRE-maintainers en bijdragers met de hulp van docenten die wiskunde onderwijzen in die talen. Dit is een van de weinige plekken in webtoegankelijkheid waar de lokalisatie werkelijk volledig genoeg is om op te vertrouwen.

3

Braille-uitvoer, niet alleen spraak

SRE genereert ook Nemeth- en UEB-wiskundebraille vanuit MathML, wat het pad is dat de meeste moderne brailledisplays gebruiken om wiskunde te renderen. Dezelfde MathML-bron die de gesproken uitvoer aanstuurt, stuurt ook de braille-uitvoer aan — wat precies de architecturele eigenschap is die een toegankelijkheidsinfrastructuurlaag hoort te hebben.


6. Aanbevelingen per documenttype

Het algemene principe — lever MathML, converteer vanuit LaTeX tijdens het bouwen wanneer mogelijk, steun op SRE voor spraak — geldt voor elk documenttype. De specifieke invulling verschilt per oppervlak. Hieronder volgen concrete aanbevelingen voor de vier documentklassen die de meeste toegankelijkheidsteams leveren.

1

Webaartikelen en blogberichten

Als het platform het ondersteunt, rendert men MathML rechtstreeks in de berichttekst — de meeste static-site-generatoren kunnen Temml of Pandoc aanroepen tijdens het bouwen en MathML in de HTML opnemen. Als het platform een legacy-CMS is dat alleen LaTeX accepteert, laadt men MathJax v4 in MathML-uitvoermodus en laat het tijdens de runtime converteren, maar met agressieve caching. Lever geen PNG’s van vergelijkingen.

2

Academische tijdschriftartikelen

Het corpus is overwegend LaTeX, en de publicatiepipeline is de juiste plek om te converteren. Pandoc, MathJax in batch-modus of de eigen LaTeXML-pipeline van de uitgever kunnen in één run HTML met MathML en een PDF genereren. De toegankelijkheidswinst is groot: een gebruiker van een schermlezer die een artikel online leest, krijgt navigeerbare vergelijkingen in plaats van een PDF waarvan de wiskunde is gerasterd. Combineer de HTML/MathML-uitvoer met een getagde PDF voor offline lezen.

3

Leerboeken en langformaat cursusmateriaal

EPUB 3 met ingebedde MathML is de standaard, en moderne leessystemen (Apple Books, Thorium, ACE-geteste productiereaders) verwerken dit correct. Men auteurs eenmalig in MathML, levert dezelfde EPUB aan ziende en schermlezers, en vertrouwt op SRE-gestuurde spraak in de hulptechnologielaag. Vermijd het inbakken van vergelijkingen in rasterafbeeldingen, ook al ziet de typografie er beter uit — de toegankelijkheidskost weegt niet op tegen de verfijning.

4

Lesdia’s en live onderwijs

Dia’s zijn het rommeligste oppervlak — PowerPoint en Google Slides verwerken wiskunde elk anders, en de presentatiemodus valt vaak terug op afbeeldingen. De verdedigbare standaard in 2026 is om de wiskunde te maken in een dia-tool die MathML exporteert (of dia’s als HTML samen te stellen), en vóór de lezing een parallel HTML- of EPUB-handout te delen met dezelfde vergelijkingen als MathML. Het handout — niet de diaset — is het artefact dat een student met een schermlezer tijdens en na de les kan navigeren.

Één principe, vier oppervlakken

Voor alle vier de documenttypen geldt hetzelfde principe: lever MathML, laat de browser het renderen, laat SRE-gestuurde spraak en braille de hulptechnologielaag verzorgen, en beschouw elke pipeline die een vergelijkingsafbeelding produceert als een fout die hersteld moet worden. De convergentie van browserengines in 2023 maakte dit principe eindelijk betaalbaar. De convergentie van schermlezers op SRE maakte het eindelijk consistent.


Conclusie: de lange weg, en waar die nu naartoe leidt

Wiskundetoegankelijkheid op het web is van alle grote toegankelijkheidsfrontiers het langzaamst gerijpt. De standaarden waren klaar in 1998. De schermlezers waren klaar, op een basale manier, halverwege de jaren 2000. De browserengines deden er tot 2023 over. De integratie tussen die drie lagen — opmaak, renderen, spraak — klikte pas echt op zijn plek in de tweede helft van dat jaar, toen MathCAT MathPlayer verving binnen NVDA, JAWS hetzelfde back-end overnam, en ChromeVox en MathJax convergeerden op dezelfde onderliggende Speech Rule Engine.

Het werk dat resteert, bevindt zich aan de randen. Notaties voor elementaire wiskunde staan niet in MathML Core, en de platformen die vroege rekenkunst onderwijzen moeten nog steeds terugvallen op MathML 3-extensies of afbeeldingen. De wiskundenavigatie van VoiceOver is bruikbaar maar minder gedetailleerd dan wat Windows-gebruikers krijgen. Regelafbreking in de browser binnen zeer lange vergelijkingen is conservatief, en sommige rekbare operatoren renderen nog steeds ongelijkmatig over engines. Dit zijn echte problemen die de moeite waard zijn om op te lossen. Ze zijn niet van hetzelfde soort als “Chromium kan helemaal geen wiskunde renderen” was in het decennium vóór 2023.

Voor een engineeringteam dat in 2026 een nieuw productoppervlak met wiskundige inhoud lanceert, is de verdedigbare standaard: lever MathML, genereer het vanuit LaTeX tijdens het bouwen wanneer de bron dat toelaat, val terug op MathJax v4 voor legacy-LaTeX die niet vooraf verwerkt kan worden, en vertrouw op de schermlezerstack — NVDA plus MathCAT, JAWS plus MathCAT, ChromeVox plus SRE, VoiceOver native — om de spraaklaag te verzorgen. De lange weg is niet voorbij. Maar voor het eerst leidt hij ergens naartoe wat leesbaar is.

”De standaarden waren klaar in 1998. De browserengines deden er tot 2023 over. De integratie klikte pas op zijn plek in de tweede helft van dat jaar.”

— dit artikel, conclusie