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 · Accessibilità matematica

Accessibilità della matematica: MathML, MathJax e il lungo percorso

Un engineering primer sullo stato dell'accessibilità matematica sul web nel 2026.

Accessibilità della matematica
MathML, MathJax e il lungo percorso

Per vent’anni il web ha reso bene la prosa e reso male la matematica. Il supporto nativo di MathML in Chromium 109 e un Speech Rule Engine silenziosamente maturo hanno finalmente invertito la tendenza. Questo primer illustra come i pezzi si incastrano e quale scegliere nel 2026.

2023
Chromium introduce MathML Core nativo (v109)
4
stack matematici per screen reader in uso attivo
circa 95%
dei browser ora legge MathML in modo nativo
10 min di lettura
Aggiornato maggio 2026

1. MathML nativo nel 2026

La prima cosa da affermare chiaramente è che il lungo, lento dibattito sul fatto che i browser debbano o meno rendere la matematica in modo nativo è stato risolto. Firefox ha supportato MathML dall’inizio degli anni 2000; WebKit ha introdotto un’implementazione utilizzabile in Safari nel 2013; il ritardatario, Chromium, ha finalmente implementato MathML Core nella versione 109 nel gennaio 2023. Quella singola release ha sbloccato la piattaforma: a metà 2026 i principali motori browser su ogni desktop e quasi ogni telefono parlano MathML come linguaggio di primo livello. L’uscita di emergenza che il web ha standardizzato per quasi vent’anni — rendere la matematica come un’immagine con un attributo alt di cui l’utente di screen reader deve fidarsi — non è più il default responsabile.

Ciò che è cambiato nel 2023 è più ristretto di quanto il titolo suggerisca. Chromium non ha implementato l’intero MathML 3; ha implementato MathML Core, un sottoinsieme deliberatamente delimitato agli elementi che i browser possono rendere in modo affidabile e che le tecnologie assistive possono navigare. Il layout della matematica elementare (divisione in colonna, riporti, addizione in colonna) non è in Core. L’a capo all’interno di un’equazione lunga è in Core, ma le euristiche sono conservative. Alcuni operatori estensibili avanzati vengono ancora resi in modo incoerente tra i motori. Ma l’ossatura — frazioni, radicali, pedici e apici, matrici, integrali, sommatorie, il dizionario degli operatori — è ora in ogni motore che conta.

La conseguenza per l’accessibilità è diretta. Una pagina che emette MathML direttamente nel DOM distribuisce un’espressione semantica che uno screen reader può pronunciare, navigare e ripronunciare con un diverso livello di verbosità. Una pagina che emette un’immagine con un attributo alt distribuisce una singola frase che l’utente di screen reader non può approfondire, non può ripronunciare e non può copiare in una calcolatrice. Per dieci anni il compromesso era reale perché Chromium non poteva rendere MathML e il fallback alle immagini significava meno pagine rotte. Quel compromesso non vale più.

circa 95%
delle sessioni browser globali ora supporta MathML in modo nativo, in base all’aggregato della quota browser di Chromium 109+ da gennaio 2023, Firefox e Safari basato su WebKit.
circa 23 anni
tra MathML che diventa una Raccomandazione W3C (febbraio 1998, MathML 1.01) e Chromium che introduce un’implementazione nativa (gennaio 2023).
circa 0 KB
di JavaScript necessario per rendere MathML nativo — il rendering avviene nel motore di layout del browser, non sul thread principale.
MathML Core, in breve

MathML Core è il sottoinsieme di MathML 3 che i motori browser hanno concordato di implementare in modo interoperabile. Se si emette MathML da una pipeline di build oggi, occorre puntare a Core. Le notazioni matematiche elementari e le estensioni di layout avanzato si trovano nella specifica MathML 3 più ampia; è opportuno trattarle come miglioramenti progressivi che beneficiano ancora di un fallback MathJax.

«Una pagina che emette un’immagine con un attributo alt distribuisce una singola frase che l’utente di screen reader non può approfondire, non può ripronunciare e non può copiare in una calcolatrice.»

— questo articolo, sezione 1

2. MathJax: da renderer a polyfill

MathJax è stato il ponte che ha mantenuto la matematica sul web leggibile durante il lungo vuoto di Chromium. Dalla sua prima release nel 2010, MathJax prendeva LaTeX o MathML nel sorgente e produceva output HTML stilizzato o SVG che qualsiasi browser poteva rendere. Per la maggior parte della sua storia è stato il layer di rendering primario per i contenuti matematici sul web — Wikipedia, arXiv, MathOverflow, Stack Exchange e la grande maggioranza delle piattaforme di pubblicazione accademica distribuivano MathJax su ogni pagina.

Il ruolo che MathJax svolge nel 2026 è diverso. Con Chromium che supporta MathML in modo nativo, il lavoro di renderer di ultima istanza è terminato. Ciò che MathJax fa ora, e fa meglio di qualsiasi altro, è posizionarsi davanti a sorgenti LaTeX legacy e trasformarle in MathML pulito che il browser renderà direttamente. Le sue release v3 e v4 sono state riscritte con questo obiettivo: il parser LaTeX in input è maturo, l’output MathML è conforme agli standard e il runtime può essere configurato per emettere MathML e poi farsi da parte, lasciando che il browser si occupi del lavoro di layout. La libreria è più grande di quanto si vorrebbe su una pagina con percorso critico, ma è il convertitore LaTeX-in-MathML più affidabile sul web.

MathJax v4
Open source · conversione LaTeX/MathML a runtime
Corpus LaTeX legacy renderizzati nel browser; il renderer dietro la maggior parte delle piattaforme di pubblicazione accademica e STEM
Punto di forzaIl parser LaTeX gestisce la lunga coda delle macro accademiche
Punto deboleRuntime pesante; circa 700 KB su un percorso critico è significativo
Ideale perPagine il cui sorgente è LaTeX e che non possono essere pre-elaborate
KaTeX
Open source · renderer LaTeX veloce
Siti di documentazione, blog e superfici di prodotto che vogliono LaTeX senza il payload di MathJax
Punto di forzaVeloce, leggero (circa 270 KB), render sincrono
Punto deboleLa modalità output MathML è migliorata ma ha ancora una copertura più limitata rispetto a MathJax
Ideale perSuperfici performance-sensitive con un dialetto LaTeX più ristretto
Temml
Open source · LaTeX in MathML puro
Conversione al momento della build: emette MathML una sola volta al momento della pubblicazione, distribuisce zero JavaScript a runtime
Punto di forzaOutput MathML puro; footprint a runtime minimo se usato al momento della build
Punto deboleDialetto LaTeX più ristretto rispetto a MathJax
Ideale perPipeline di siti statici in cui la matematica fa parte della build
Pandoc
Open source · convertitore di formati di documento
Converte manoscritti LaTeX o Markdown in formato esteso in HTML con MathML al momento della pubblicazione
Punto di forzaConversione di documenti interi; distribuisce MathML come opzione di output
Punto deboleNon è un renderer a runtime; è guidato da CLI
Ideale perPipeline di pubblicazione accademica e conversione di libri di testo

3. Da LaTeX a MathML in pratica: markup corretto e scorretto

La maggior parte dei contenuti matematici sul web ha un sorgente LaTeX da qualche parte a monte. La questione è dove avviene la conversione LaTeX-in-MathML — al momento della build, a runtime, o mai. Il pattern che vince su ogni asse di accessibilità è la conversione al momento della build in MathML, con il MathML renderizzato emesso direttamente nell’HTML della pagina. Il pattern che perde su ogni asse è distribuire un’immagine di un rendering LaTeX con un attributo alt che parafrasa l’equazione.

Corretto: MathML nella pagina
  • L’equazione vive nel DOM come markup semantico.
  • Lo screen reader pronuncia operatore, operando, struttura — e permette all’utente di navigare nelle sotto-espressioni.
  • I browser la rendono in modo nativo; zero JavaScript a runtime sul percorso critico.
  • I motori di ricerca e i sistemi di sintesi AI possono leggere l’espressione come testo.
  • Il copia-incolla produce una rappresentazione utilizzabile, spesso riconvertibile in LaTeX.
La terza opzione che perde anch’essa

Molte piattaforme CMS distribuiscono ancora LaTeX grezzo nella pagina e lasciano che una libreria a runtime (spesso MathJax) lo scopra e lo converta al caricamento. Il risultato si vede, ma solo dopo l’esecuzione di uno script — una penalità di accessibilità non trascurabile su reti lente e un costo di layout-shift misurabile. È opportuno convertire al momento della build quando possibile; si riservi la conversione a runtime per i sorgenti legacy che non è possibile ricostruire.


4. Navigazione matematica con screen reader

Rendere la matematica è metà del lavoro. L’altra metà è la navigazione: un’equazione lunga non può essere linearizzata in una singola frase pronunciata senza che il lettore perda il filo. Ogni screen reader principale ora include una «modalità matematica» che permette all’utente di entrare in una frazione, percorrere il numeratore, scendere in un pedice, tornare all’espressione padre e ripronunciare la sotto-espressione corrente con un diverso livello di verbosità. Le implementazioni differiscono per maturità, tasti di scelta rapida e, soprattutto, per la libreria di regole vocali che condividono.

Screen readerMathML nativoMotore vocaleNavigazioneMaturità
NVDA (Windows)MathCAT (moderno), storico add-on MathPlayerNavigazione sotto-espressioni, livelli di verbosità, output braillePronto per la produzione
JAWS (Windows)MathCATNavigazione sotto-espressioni, cursore di revisione solo-matematicaPronto per la produzione
VoiceOver (macOS, iOS)Apple interno, parzialmente derivato dalla semantica MathMLNavigazione item-chooser; meno granulare di NVDA/JAWSUtilizzabile, meno ricco
ChromeVox (ChromeOS, Chrome)Speech Rule Engine (SRE) direttamenteNavigazione sotto-espressioni tramite regole SREForte in contesti scolastici
Orca (Linux)ParzialeSRE tramite browser; Orca stesso si basa sul testo dell’albero accessibileLimitata; dipende dal browserVariabile
MathPlayer, MathCAT, MathML — tre nomi da tenere distinti

MathPlayer era il componente aggiuntivo originale di Design Science che ha insegnato a NVDA a pronunciare MathML; è stato ritirato. MathCAT è il suo successore moderno — attivamente mantenuto, basato su Rust, il back-end raccomandato sia per NVDA che per JAWS oggi. MathML è il markup stesso: l’input che entrambe le librerie consumano. I riferimenti a MathPlayer in una specifica o documento fornitore del 2026 sono di solito storici e andrebbero letti nello spirito di «il componente aggiuntivo per la pronuncia matematica».


5. Lo Speech Rule Engine in silenzio sotto tutto

Dietro quasi ogni moderna esperienza di pronuncia matematica sul web c’è un progetto di cui la maggior parte dei professionisti non ha mai sentito parlare: lo Speech Rule Engine, o SRE. SRE è nato all’interno del team ChromeVox di Google a metà degli anni 2010 ed è ora una libreria open source mantenuta principalmente da Volker Sorge. Prende MathML in input e emette una forma parlata strutturata in output — in più lingue, più livelli di verbosità e più set di regole (MathSpeak, ClearSpeak, ChromeVox-classic). È anche il motore che alimenta il comportamento di navigazione matematica che MathJax espone nel proprio output renderizzato, ed è referenziato sia da MathCAT che da diversi esperimenti di accessibilità lato browser.

Il motivo per cui SRE è importante come infrastruttura è che senza una libreria di pronuncia canonica, ogni screen reader inventerebbre il proprio modo di dire x al quadrato più y al quadrato uguale r al quadrato. Con SRE, le principali implementazioni stanno convergendo su un piccolo insieme di set di regole sanciti, il che significa che un insegnante che scrive un’equazione in uno strumento di authoring di libri di testo può prevedere approssimativamente come uno studente che usa NVDA, JAWS o ChromeVox la sentirà. La convergenza non è completa — VoiceOver è l’eccezione — ma è reale e in crescita.

1

MathSpeak versus ClearSpeak

I due set di regole più noti sono inclusi in SRE. MathSpeak è lo stile più antico, più letterale — «frazione uno su due fine-frazione» — ed è stato progettato per la precisione in stile braille. ClearSpeak è più recente, più naturale nell’ascolto — «un mezzo» — ed è il default nella maggior parte delle installazioni scolastiche oggi. Passare dall’uno all’altro è una preferenza di stile di verbosità, non un motore diverso.

2

Supporto multilingue

SRE include set di regole tradotti in inglese, francese, tedesco, italiano, spagnolo e un insieme crescente di lingue aggiuntive. Le traduzioni non sono generate da macchina — sono state redatte dai manutentori e dai collaboratori di SRE con l’aiuto di educatori che insegnano matematica in quelle lingue. Questo è uno dei pochi ambiti dell’accessibilità web in cui la localizzazione è genuinamente completa abbastanza da potervi fare affidamento.

3

Output braille, non solo parlato

SRE emette anche braille Nemeth e UEB-math da MathML, che è il percorso utilizzato dalla maggior parte dei moderni display braille per rendere la matematica. Lo stesso sorgente MathML che guida l’output parlato guida anche l’output braille — esattamente la proprietà architetturale che un layer di infrastruttura per l’accessibilità dovrebbe avere.


6. Raccomandazioni per tipo di documento

Il principio generale — distribuire MathML, convertire da LaTeX al momento della build quando possibile, appoggiarsi a SRE per il parlato — si applica a ogni tipo di documento. I dettagli variano con la superficie. Di seguito sono riportate raccomandazioni concrete per le quattro classi di documenti che la maggior parte dei team di accessibilità distribuisce.

1

Articoli web e post di blog

Se la piattaforma lo supporta, si renda MathML direttamente nel corpo del post — la maggior parte dei generatori di siti statici può chiamare Temml o Pandoc al momento della build ed emettere MathML nell’HTML. Se la piattaforma è un CMS legacy che accetta solo LaTeX, si carichi MathJax v4 in modalità output MathML e lo si lasci convertire a runtime, ma con una cache aggressiva. Non si distribuiscano PNG di equazioni.

2

Articoli di riviste accademiche

Il corpus è prevalentemente LaTeX, e la pipeline di pubblicazione è il posto giusto per convertire. Pandoc, MathJax in modalità batch, o la pipeline LaTeXML del publisher possono emettere HTML con MathML e un PDF nella stessa esecuzione. Il guadagno in termini di accessibilità è significativo: un utente di screen reader che legge un articolo online ottiene equazioni navigabili invece di un PDF la cui matematica è rasterizzata. Si abbini l’output HTML/MathML a una release PDF con tag per la lettura offline.

3

Libri di testo e materiali didattici a lungo formato

EPUB 3 con MathML incorporato è lo standard, e i sistemi di lettura moderni (Apple Books, Thorium, reader di produzione testati con ACE) lo gestiscono correttamente. Si autora una volta in MathML, si distribuisce lo stesso EPUB a utenti vedenti e a utenti di screen reader, e ci si affida al parlato guidato da SRE nel layer della tecnologia assistiva. È opportuno evitare di incorporare le equazioni in immagini raster anche se la tipografia appare migliore — il costo in termini di accessibilità non vale la raffinatezza.

4

Diapositive per aula e didattica dal vivo

Le diapositive sono la superficie più problematica — PowerPoint e Google Slides gestiscono la matematica in modo diverso, e la modalità presentatore spesso ricade sulle immagini. Il default difendibile nel 2026 è creare la matematica in uno strumento per diapositive che esporti MathML (o comporre le diapositive come HTML), e distribuire un handout HTML o EPUB parallelo con le stesse equazioni in MathML prima della lezione. L’handout, non la presentazione, è l’artefatto che uno studente con screen reader può navigare durante e dopo la lezione.

Un principio unico, quattro superfici

Per tutti e quattro i tipi di documento, vale lo stesso unico principio: si emetta MathML, si lasci che il browser lo renda, si lasci che il parlato e il braille guidati da SRE gestiscano il layer della tecnologia assistiva, e si tratti qualsiasi pipeline che produce un’immagine di equazione come un fallimento da correggere. La convergenza dei motori browser nel 2023 ha reso questo principio finalmente sostenibile. La convergenza degli screen reader su SRE lo ha reso finalmente coerente.


Conclusione: il lungo percorso, e dove conduce ora

L’accessibilità matematica sul web è stata la più lenta delle grandi frontiere dell’accessibilità a maturare. Gli standard erano pronti nel 1998. Gli screen reader erano pronti, in modo elementare, a metà degli anni 2000. I motori browser hanno atteso fino al 2023. L’integrazione tra quei tre layer — markup, rendering, parlato — si è veramente sincronizzata nell’arco della seconda metà di quell’anno, quando MathCAT ha sostituito MathPlayer all’interno di NVDA, quando JAWS ha adottato lo stesso back-end, e quando ChromeVox e MathJax hanno convergito sullo stesso Speech Rule Engine sottostante.

Il lavoro che resta è ai margini. La notazione matematica elementare non è in MathML Core, e le piattaforme che insegnano l’aritmetica dei primi anni di scuola devono ancora ricadere sulle estensioni MathML 3 o sulle immagini. La navigazione matematica di VoiceOver è utilizzabile ma meno granulare di quella disponibile per gli utenti Windows. L’a capo del browser all’interno di equazioni molto lunghe è conservativo, e alcuni operatori estensibili vengono ancora resi in modo non uniforme tra i motori. Questi sono problemi reali e che vale la pena risolvere. Non sono lo stesso tipo di problema di «Chromium non riesce a rendere la matematica del tutto» per il decennio prima del 2023.

Per un team di ingegneria che distribuisce nel 2026 una nuova superficie di prodotto con contenuto matematico, il default difendibile è: emettere MathML, generarlo da LaTeX al momento della build quando il sorgente lo consente, ricadere su MathJax v4 per il LaTeX legacy che non è possibile pre-elaborare, e fidarsi dello stack di screen reader — NVDA con MathCAT, JAWS con MathCAT, ChromeVox con SRE, VoiceOver in modo nativo — per gestire il layer del parlato. Il lungo percorso non è finito. Ma per la prima volta, porta da qualche parte di leggibile.

«Gli standard erano pronti nel 1998. I motori browser hanno atteso fino al 2023. L’integrazione si è finalmente sincronizzata nell’arco della seconda metà di quell’anno.»

— questo articolo, conclusione