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é des mathématiques

Accessibilité des mathématiques : MathML, MathJax et le long chemin

Un primer d'ingénierie sur l'état de l'accessibilité des mathématiques sur le web en 2026.

Accessibilité des mathématiques
MathML, MathJax et le long chemin

Pendant vingt ans, le web a bien rendu la prose et mal rendu les mathématiques. Le MathML natif dans Chromium 109 et un Speech Rule Engine discrètement arrivé à maturité ont finalement renversé la tendance. Ce primer trace la façon dont les pièces s’assemblent et vers lequel se tourner en 2026.

2023
Chromium intègre MathML Core natif (v109)
4
piles math pour lecteurs d’écran en usage actif
environ 95 %
des navigateurs lisent désormais MathML nativement
10 min de lecture
Mis à jour mai 2026

1. MathML natif en 2026

La première chose à dire clairement est que le long et lent débat sur la question de savoir si les navigateurs devraient rendre les mathématiques nativement a été tranché. Firefox rend MathML depuis le début des années 2000 ; WebKit a intégré une implémentation utilisable dans Safari en 2013 ; le retardataire, Chromium, a finalement intégré MathML Core dans la version 109 en janvier 2023. Cette seule version a débloqué la plateforme : à mi-2026, les principaux moteurs de navigateurs sur chaque ordinateur de bureau et presque chaque téléphone parlent MathML comme langage de première classe. La solution de repli que le web avait standardisée pendant près de vingt ans — rendre les maths comme une image, avec un attribut alt que l’utilisateur lecteur d’écran devait accepter sans pouvoir vérifier — n’est plus la valeur par défaut responsable.

Ce qui a changé en 2023 est plus étroit que le titre ne le suggère. Chromium n’a pas implémenté l’intégralité de MathML 3 ; il a implémenté MathML Core, un sous-ensemble délibérément limité aux éléments que les navigateurs peuvent rendre de manière fiable et que les technologies d’assistance peuvent naviguer. La notation des mathématiques élémentaires (division longue, retenues, additions empilées) n’est pas dans Core. Le retour à la ligne dans une longue équation est dans Core mais les heuristiques sont conservatrices. Certains opérateurs élastiques avancés se rendent encore de manière incohérente entre les moteurs. Mais la structure de base — fractions, radicaux, indices et exposants, matrices, intégrales, sommes, le dictionnaire des opérateurs — est désormais dans chaque moteur qui compte.

La conséquence pour l’accessibilité est directe. Une page qui émet du MathML directement dans le DOM livre une expression sémantique qu’un lecteur d’écran peut parler, naviguer et relire à un niveau de verbosité différent. Une page qui émet une image avec un attribut alt livre une seule phrase dans laquelle l’utilisateur lecteur d’écran ne peut pas plonger, ne peut pas relire et ne peut pas copier dans une calculatrice. Pendant dix ans, le compromis était réel parce que Chromium ne pouvait pas rendre MathML et que le repli sur les images signifiait moins de pages cassées. Ce compromis n’est plus valable.

environ 95 %
des sessions de navigation mondiales rendent désormais MathML nativement, d’après l’agrégat des parts de navigateurs Chromium 109+ depuis jan. 2023, Firefox et Safari basé sur WebKit.
environ 23 ans
entre MathML devenant une recommandation W3C (fév. 1998, MathML 1.01) et Chromium intégrant une implémentation native (jan. 2023).
environ 0 Ko
de JavaScript nécessaire pour rendre MathML natif — le rendu se produit dans le moteur de mise en page du navigateur, pas sur le thread principal.
MathML Core, brièvement

MathML Core est le sous-ensemble de MathML 3 que les moteurs de navigateurs ont accepté d’intégrer de manière interopérable. Si vous émettez du MathML depuis un pipeline de construction aujourd’hui, ciblez Core. Les notations de mathématiques élémentaires et les extensions de mise en page avancée vivent dans la spécification MathML 3 plus large ; traitez-les comme des améliorations progressives qui bénéficient encore d’un repli sur MathJax.

« Une page qui émet une image avec un attribut alt livre une seule phrase dans laquelle l’utilisateur lecteur d’écran ne peut pas plonger, ne peut pas relire et ne peut pas copier dans une calculatrice. »

— cet article, section 1

2. MathJax : du moteur de rendu au polyfill

MathJax était le pont qui a maintenu les mathématiques lisibles sur le web pendant la longue période sans Chromium. Depuis sa première version en 2010, MathJax prenait du LaTeX ou du MathML en source et produisait du HTML ou du SVG stylisé que tout navigateur pouvait rendre. Pendant la majeure partie de son histoire, il était la couche de rendu principale pour le contenu mathématique sur le web — Wikipedia, arXiv, MathOverflow, Stack Exchange et la grande majorité des plateformes de publication académiques intégraient MathJax sur chaque page.

Le rôle que joue MathJax en 2026 est différent. Avec Chromium rendant MathML nativement, le travail de moteur de rendu de dernier recours est terminé. Ce que fait désormais MathJax, et fait mieux que tout autre outil, c’est se positionner devant des sources LaTeX héritées et les convertir en MathML propre que le navigateur rendra directement. Ses versions v3 et v4 ont été réécrites avec cela à l’esprit : le parser d’entrée LaTeX est mature, la sortie MathML est conforme aux normes, et l’environnement d’exécution peut être configuré pour émettre du MathML puis s’effacer, laissant le navigateur prendre en charge le travail de mise en page. La bibliothèque est plus lourde que souhaité sur une page critique, mais c’est le convertisseur LaTeX-vers-MathML le plus fiable sur le web.

MathJax v4
Open source · conversion LaTeX/MathML à l’exécution
Corpus LaTeX hérités rendus dans le navigateur ; le moteur derrière la plupart des plateformes de publication académiques et STEM
Point fortLe parser LaTeX gère la longue traîne des macros académiques
Point faibleEnvironnement d’exécution lourd ; environ 700 Ko sur un chemin critique est réel
Idéal pourLes pages dont la source est LaTeX et qui ne peuvent pas être pré-traitées
KaTeX
Open source · moteur de rendu LaTeX rapide
Sites de documentation, blogs et interfaces produit souhaitant du LaTeX sans la charge utile MathJax
Point fortRapide, léger (environ 270 Ko), rendu synchrone
Point faibleLe mode de sortie MathML s’est amélioré mais reste plus limité que MathJax
Idéal pourLes interfaces sensibles aux performances avec un dialecte LaTeX réduit
Temml
Open source · LaTeX vers MathML pur
Conversion au moment de la construction : émettre du MathML une fois à la publication, sans JavaScript à l’exécution
Point fortSortie MathML pure ; empreinte d’exécution minime quand utilisé au moment de la construction
Point faibleDialecte LaTeX plus étroit que MathJax
Idéal pourLes pipelines de sites statiques où les maths font partie de la construction
Pandoc
Open source · convertisseur de format de document
Convertir des manuscrits LaTeX ou Markdown longs en HTML avec MathML au moment de la publication
Point fortConversion de documents entiers ; intègre MathML comme option de sortie
Point faiblePas un moteur de rendu à l’exécution ; piloté en ligne de commande
Idéal pourLes pipelines de publication académiques et la conversion de manuels

3. LaTeX vers MathML en pratique : bonne vs mauvaise balise

La majorité du contenu mathématique sur le web a une source LaTeX quelque part en amont. La question est de savoir où la conversion LaTeX-vers-MathML se produit — au moment de la construction, à l’exécution ou jamais. La pratique qui gagne sur tous les axes d’accessibilité est la conversion au moment de la construction vers MathML, avec le MathML rendu émis directement dans le HTML de la page. La pratique qui perd sur tous les axes est d’envoyer une image d’un rendu LaTeX avec un attribut alt qui paraphrase l’équation.

Bien : MathML dans la page
  • L’équation vit dans le DOM comme une balise sémantique.
  • Le lecteur d’écran énonce l’opérateur, l’opérande, la structure — et permet à l’utilisateur de naviguer dans les sous-expressions.
  • Les navigateurs le rendent nativement ; zéro JavaScript à l’exécution sur le chemin critique.
  • Les moteurs de recherche et les résumeurs IA peuvent lire l’expression comme du texte.
  • Le copier-coller produit une représentation utilisable, souvent convertible en LaTeX.
La troisième option qui perd aussi

De nombreuses plateformes CMS envoient encore du LaTeX brut dans la page et laissent une bibliothèque à l’exécution (souvent MathJax) le découvrir et le convertir au chargement. Le résultat s’affiche, mais seulement après l’exécution d’un script — une pénalité d’accessibilité non négligeable sur les réseaux lents et un coût mesurable de décalage de mise en page. Convertissez au moment de la construction quand vous le pouvez ; réservez la conversion à l’exécution pour les sources héritées que vous ne pouvez pas reconstruire.


4. Navigation mathématique avec les lecteurs d’écran

Rendre les maths est la moitié du travail. L’autre moitié est la navigation : une longue équation ne peut pas être linéarisée en une seule phrase parlée sans que le lecteur perde le fil. Chaque lecteur d’écran majeur intègre désormais un « mode math » permettant à l’utilisateur d’entrer dans une fraction, de parcourir son numérateur, de plonger dans un indice, de remonter à l’expression parente et de relire la sous-expression courante à un niveau de verbosité différent. Les implémentations diffèrent en maturité, en frappes et surtout dans la bibliothèque de règles de parole qu’elles partagent.

Lecteur d’écranMathML natifMoteur de paroleNavigationMaturité
NVDA (Windows)OuiMathCAT (moderne), module MathPlayer historiqueNavigation sous-expression, niveaux de verbosité, sortie braillePrêt pour la production
JAWS (Windows)OuiMathCATNavigation sous-expression, curseur de révision math uniquementPrêt pour la production
VoiceOver (macOS, iOS)OuiInterne Apple, partiellement dérivé de la sémantique MathMLNavigation par sélecteur d’élément ; moins granulaire que NVDA/JAWSUtilisable, moins riche
ChromeVox (ChromeOS, Chrome)OuiSpeech Rule Engine (SRE) directementNavigation sous-expression via les règles SRESolide dans les contextes d’enseignement
Orca (Linux)PartielSRE via le navigateur ; Orca lui-même s’appuie sur le texte de l’arbre accessibleLimité ; dépend du navigateurVariable
MathPlayer, MathCAT, MathML — trois noms à distinguer

MathPlayer était le module Design Science original qui a appris à NVDA à parler MathML ; il a été abandonné. MathCAT est son successeur moderne — activement maintenu, basé sur Rust, le back-end recommandé pour NVDA et JAWS aujourd’hui. MathML est la balise elle-même : l’entrée que les deux bibliothèques consomment. Les références à MathPlayer dans une spec ou un document prestataire de 2026 sont généralement historiques et doivent être comprises comme « le module de parole mathématique » dans l’esprit.


5. Le Speech Rule Engine, discrètement en dessous

Derrière presque toute expérience moderne de parole mathématique sur le web se trouve un projet que la plupart des ingénieurs n’ont jamais entendu parler : le Speech Rule Engine, ou SRE. Le SRE a démarré au sein de l’équipe ChromeVox de Google au milieu des années 2010 et est aujourd’hui une bibliothèque open source maintenue principalement par Volker Sorge. Il prend du MathML en entrée et émet une forme parlée structurée en sortie — dans plusieurs langues, plusieurs niveaux de verbosité et plusieurs ensembles de règles (MathSpeak, ClearSpeak, ChromeVox-classic). C’est aussi le moteur qui pilote le comportement de navigation mathématique que MathJax expose sur sa propre sortie rendue, et il est référencé par MathCAT et plusieurs expériences d’accessibilité côté navigateur.

La raison pour laquelle le SRE importe comme infrastructure est que sans bibliothèque de prononciation canonique, chaque lecteur d’écran inventerait sa propre façon de dire x au carré plus y au carré égale r au carré. Avec le SRE, les implémentations majeures convergent vers un petit ensemble d’ensembles de règles sanctionnés, ce qui signifie qu’un enseignant rédigeant une équation dans un outil de création de manuels peut prédire à peu près comment un élève utilisant NVDA, JAWS ou ChromeVox l’entendra. La convergence n’est pas complète — VoiceOver est l’exception — mais elle est réelle et croissante.

1

MathSpeak versus ClearSpeak

Les deux ensembles de règles les mieux connus sont intégrés dans le SRE. MathSpeak est le style plus ancien et plus littéral — « fraction un sur deux fin-fraction » — et a été conçu pour la précision de style braille. ClearSpeak est plus récent, plus naturel à l’oreille — « un demi » — et est la valeur par défaut dans la plupart des déploiements en classe aujourd’hui. Passer de l’un à l’autre est une préférence de style de verbosité, pas un moteur différent.

2

Prise en charge multilingue

Le SRE intègre des ensembles de règles traduits pour l’anglais, le français, l’allemand, l’italien, l’espagnol et un ensemble croissant de langues supplémentaires. Les traductions ne sont pas générées automatiquement — elles ont été rédigées par les mainteneurs et contributeurs du SRE avec l’aide d’enseignants qui enseignent les mathématiques dans ces langues. C’est l’un des rares endroits en accessibilité web où la localisation est suffisamment complète pour être fiable.

3

Sortie braille, pas seulement la parole

Le SRE émet également du braille Nemeth et UEB-math à partir de MathML, ce qui est le chemin que la plupart des afficheurs braille modernes utilisent pour rendre les mathématiques. La même source MathML qui pilote la sortie parlée pilote la sortie braille, ce qui est exactement la propriété architecturale qu’une couche d’infrastructure d’accessibilité est censée avoir.


6. Recommandations par type de document

Le principe général — émettre du MathML, convertir depuis LaTeX au moment de la construction quand c’est possible, s’appuyer sur le SRE pour la parole — s’applique à chaque type de document. Les spécificités varient selon la surface. Voici des recommandations concrètes pour les quatre classes de documents que la plupart des équipes d’accessibilité produisent.

1

Articles web et billets de blog

Si votre plateforme le prend en charge, rendez du MathML directement dans le corps de l’article — la plupart des générateurs de sites statiques peuvent appeler Temml ou Pandoc au moment de la construction et émettre du MathML dans le HTML. Si la plateforme est un CMS hérité qui n’accepte que du LaTeX, chargez MathJax v4 en mode de sortie MathML et laissez-le convertir à l’exécution, mais mettez en cache de manière agressive. N’envoyez pas de PNG d’équations.

2

Articles de revues académiques

Le corpus est massivement LaTeX, et le pipeline de publication est l’endroit approprié pour convertir. Pandoc, MathJax en mode batch ou le propre pipeline LaTeXML de l’éditeur peut émettre du HTML avec MathML et un PDF dans la même exécution. Le gain d’accessibilité est important : un utilisateur lecteur d’écran lisant un article en ligne obtient des équations navigables plutôt qu’un PDF dont les maths sont rastérisées. Associez la sortie HTML/MathML à une version PDF balisé pour la lecture hors ligne.

3

Manuels et cours en ligne longs

EPUB 3 avec MathML intégré est la norme, et les systèmes de lecture modernes (Apple Books, Thorium, les lecteurs de production testés ACE) le gèrent correctement. Rédigez une fois en MathML, distribuez le même EPUB aux utilisateurs voyants et aux utilisateurs de lecteurs d’écran, et fiez-vous à la parole pilotée par SRE dans la couche de technologie d’assistance. Évitez d’intégrer les équations dans des images raster même si la typographie semble meilleure — le coût en accessibilité ne vaut pas le raffinement esthétique.

4

Diapositives de cours et enseignement en direct

Les diapositives sont la surface la plus complexe — PowerPoint et Google Slides gèrent chacun les maths différemment, et le mode présentation revient souvent aux images. La valeur par défaut défendable en 2026 est de rédiger les maths dans un outil de diapositives qui exporte du MathML (ou de composer les diapositives en HTML), et de partager un document d’accompagnement HTML ou EPUB parallèle avec les mêmes équations en MathML avant le cours. C’est le document d’accompagnement, pas le jeu de diapositives, qui est l’artefact qu’un étudiant utilisant un lecteur d’écran peut naviguer pendant et après le cours.

Un seul principe, quatre surfaces

Pour les quatre types de documents, le même principe unique s’applique : émettre du MathML, laisser le navigateur le rendre, laisser la parole et le braille pilotés par SRE gérer la couche de technologie d’assistance, et traiter tout pipeline qui produit une image d’équation comme un problème à corriger. La convergence des moteurs de navigateurs en 2023 a rendu ce principe enfin abordable. La convergence des lecteurs d’écran sur le SRE l’a rendu enfin cohérent.


Conclusion : le long chemin, et où il mène désormais

L’accessibilité des mathématiques sur le web a été la frontière d’accessibilité la plus lente à mûrir. Les normes étaient prêtes en 1998. Les lecteurs d’écran étaient prêts, de façon basique, au milieu des années 2000. Les moteurs de navigateurs ont attendu jusqu’en 2023. L’intégration entre ces trois couches — balise, rendu, parole — n’a vraiment fonctionné ensemble que dans la seconde moitié de cette année, alors que MathCAT remplaçait MathPlayer dans NVDA, que JAWS adoptait le même back-end, et que ChromeVox et MathJax convergeaient vers le même Speech Rule Engine sous-jacent.

Le travail restant se situe aux marges. La notation des mathématiques élémentaires n’est pas dans MathML Core, et les plateformes qui enseignent l’arithmétique du primaire doivent encore recourir aux extensions MathML 3 ou aux images. La navigation mathématique de VoiceOver est utilisable mais moins granulaire que ce qu’obtiennent les utilisateurs Windows. Le retour à la ligne dans les très longues équations est conservateur, et certains opérateurs élastiques se rendent encore inégalement entre les moteurs. Ce sont de vrais problèmes qui méritent d’être résolus. Ils ne sont pas du même ordre que « Chromium ne peut pas rendre les maths du tout » pendant la décennie avant 2023.

Pour une équipe d’ingénierie qui produit une nouvelle surface produit en 2026 avec du contenu mathématique, la valeur par défaut défendable est : émettre du MathML, le générer depuis LaTeX au moment de la construction quand la source le permet, recourir à MathJax v4 pour le LaTeX hérité qui ne peut pas être pré-traité, et faire confiance à la pile de lecteurs d’écran — NVDA avec MathCAT, JAWS avec MathCAT, ChromeVox avec SRE, VoiceOver nativement — pour gérer la couche de parole. Le long chemin n’est pas terminé. Mais pour la première fois, il mène quelque part de lisible.

« Les normes étaient prêtes en 1998. Les moteurs de navigateurs ont attendu jusqu’en 2023. L’intégration a finalement fonctionné ensemble dans la seconde moitié de cette année. »

— cet article, conclusion