Черна дъска с математическо уравнение, написано с тебешир, и ръка, готова да добави още един член — визуалният знак за достъпността на математиката в уеб.
Image description: Черна дъска с математическо уравнение, написано с тебешир, и ръка, готова да добави още един член — визуалният знак за достъпността на математиката в уеб.

Инженерно въведение · Достъпност на математиката

Достъпност на математиката: MathML, MathJax и дългият път

Инженерно въведение в състоянието на достъпността на математиката в уеб през 2026 г.

Достъпност на математиката
MathML, MathJax и дългият път

Двадесет години уеб изобразяваше прозата добре, а математиката — зле. Нативният MathML в Chromium 109 и тихо съзряващият Speech Rule Engine най-сетне обърнаха хода на нещата. Това въведение очертава как се вписват частите една в друга и към коя от тях да посегнете през 2026 г.

2023
Chromium пуска нативен MathML Core (v109)
4
стека за математика в екранни четци в активна употреба
около 95%
от браузърите вече четат MathML нативно
10 мин четене
Актуализирано май 2026 г.

1. Нативен MathML през 2026 г.

Първото нещо, което трябва да се каже ясно, е, че дългият, бавен спор дали браузърите трябва да изобразяват математиката нативно е приключен. Firefox изобразява MathML от началото на 2000-те; WebKit пусна използваема реализация в Safari през 2013 г.; последният, който се съпротивляваше, Chromium, най-сетне внедри MathML Core във версия 109 през януари 2023 г. Това единствено издание отпуши платформата: до средата на 2026 г. основните браузърни двигатели на всеки настолен компютър и почти всеки телефон говорят MathML като първокласен език. Аварийният изход, около който уеб се стандартизира близо двадесет години — да се изобрази математиката като изображение с alt атрибут, на който потребителят на екранен четец трябва да се довери — вече не е отговорната настройка по подразбиране.

Това, което се промени през 2023 г., е по-тясно, отколкото подсказва заглавието. Chromium не реализира целия MathML 3; той реализира MathML Core — подмножество, умишлено ограничено до елементите, които браузърите могат да изобразяват надеждно и в които помощните технологии могат да навигират. Оформлението на елементарната математика (деление наум, преноси, събиране на стълб) не е в Core. Пренасянето на ред в дълго уравнение е в Core, но евристиките са консервативни. Някои разширени разтягащи се оператори все още се изобразяват непоследователно между двигателите. Но скелетът — дроби, корени, индекси и степени, матрици, интеграли, сумиране, речникът на операторите — вече е във всеки двигател, който има значение.

Последствието за достъпността е пряко. Страница, която излъчва MathML директно в DOM, доставя семантичен израз, който екранният четец може да произнесе, в който да навигира и да го произнесе наново с различно ниво на подробност. Страница, която излъчва изображение с alt атрибут, доставя едно-единствено изречение, в което потребителят на екранен четец не може да навлезе, не може да го произнесе наново и не може да го копира в калкулатор. Десет години компромисът беше реален, защото Chromium не можеше да изобрази MathML, а връщането към изображения означаваше по-малко счупени страници. Този компромис вече не важи.

около 95%
от глобалните браузърни сесии вече изобразяват MathML нативно, според обобщения дял на браузърите на Chromium 109+ от януари 2023 г., Firefox и WebKit-базирания Safari.
около 23 години
между превръщането на MathML в препоръка на W3C (февруари 1998 г., MathML 1.01) и пускането на нативна реализация от Chromium (януари 2023 г.).
около 0 KB
JavaScript, необходим за изобразяване на нативен MathML — изобразяването се извършва в двигателя за оформление на браузъра, а не в основната нишка.
MathML Core, накратко

MathML Core е подмножеството на MathML 3, което браузърните двигатели се съгласиха да внедрят оперативно съвместимо. Ако днес излъчвате MathML от компилационен пайплайн, целете Core. Нотациите на елементарната математика и разширените разширения за оформление живеят в по-широката спецификация MathML 3; третирайте ги като прогресивни подобрения, които все още се възползват от резервен вариант с MathJax.

„Страница, която излъчва изображение с alt атрибут, доставя едно-единствено изречение, в което потребителят на екранен четец не може да навлезе, не може да го произнесе наново и не може да го копира в калкулатор.“

— тази статия, раздел 1

2. MathJax: от рендерер към полифил

MathJax беше мостът, който поддържаше математиката в уеб четима по време на дългата пролука на Chromium. От първото си издание през 2010 г. MathJax приемаше LaTeX или MathML в източника и произвеждаше стилизиран HTML или SVG изход, който всеки браузър можеше да изобрази. През по-голямата част от историята си той беше основният слой за изобразяване на математическо съдържание в уеб — Wikipedia, arXiv, MathOverflow, Stack Exchange и огромната част от платформите за академично издаване доставяха MathJax на всяка страница.

Ролята, която MathJax играе през 2026 г., е различна. С нативното изобразяване на MathML от Chromium работата на рендерер от последна инстанция е приключена. Това, което MathJax прави сега, и го прави по-добре от всичко друго, е да застане пред наследени LaTeX източници и да ги превърне в чист MathML, който браузърът ще изобрази директно. Неговите издания v3 и v4 бяха пренаписани с тази идея: входният парсер за LaTeX е зрял, изходният MathML съответства на стандартите, а средата за изпълнение може да бъде конфигурирана да излъчва MathML и след това да се отдръпне, оставяйки браузъра да поеме работата по оформлението. Библиотеката е по-голяма, отколкото бихте искали на страница в критичния път, но тя е най-надеждният конвертор от LaTeX към MathML в уеб.

MathJax v4
Отворен код · конвертиране на LaTeX/MathML по време на изпълнение
Наследени LaTeX корпуси, изобразени в браузъра; рендерерът зад повечето платформи за академично и STEM издаване
Силна странаПарсерът за LaTeX се справя с дългата опашка от академични макроси
Слаба странаТежка среда за изпълнение; около 700 KB в критичен път е реално
Най-добро заСтраници, чийто източник е LaTeX и които не могат да предварително обработват
KaTeX
Отворен код · бърз рендерер за LaTeX
Сайтове с документация, блогове и продуктови повърхности, които искат LaTeX без полезния товар на MathJax
Силна странаБърз, малък (около 270 KB), синхронно изобразяване
Слаба странаРежимът за изход на MathML се подобри, но все още с по-тясно покритие от MathJax
Най-добро заЧувствителни към производителността повърхности с по-малък LaTeX диалект
Temml
Отворен код · от LaTeX към чист MathML
Конвертиране по време на компилиране: излъчете MathML веднъж при публикуване, доставете нула JavaScript по време на изпълнение
Силна странаИзход чист MathML; миниатюрен отпечатък по време на изпълнение, когато се използва при компилиране
Слаба странаПо-малък LaTeX диалект от MathJax
Най-добро заПайплайни за статични сайтове, където математиката е част от компилирането
Pandoc
Отворен код · конвертор на формати на документи
Конвертиране на дълги LaTeX или Markdown ръкописи в HTML с MathML при публикуване
Силна странаКонвертиране на цял документ; доставя MathML като една от изходните възможности
Слаба странаНе е рендерер по време на изпълнение; управляван от командния ред
Най-добро заПайплайни за академично издаване и конвертиране на учебници

3. От LaTeX към MathML на практика: добра срещу лоша маркировка

Повечето математическо съдържание в уеб има LaTeX източник някъде нагоре по веригата. Въпросът е къде се извършва конвертирането от LaTeX към MathML — при компилиране, по време на изпълнение или никога. Шаблонът, който печели по всяка ос на достъпността, е конвертиране при компилиране към MathML, като изобразеният MathML се излъчва директно в HTML на страницата. Шаблонът, който губи по всяка ос, е доставянето на изображение от LaTeX изобразяване с alt атрибут, който перифразира уравнението.

Добре: MathML в страницата
  • Уравнението живее в DOM като семантична маркировка.
  • Екранният четец произнася оператор, операнд, структура — и позволява на потребителя да навигира в подизразите.
  • Браузърите го изобразяват нативно; нула JavaScript по време на изпълнение в критичния път.
  • Търсачките и обобщителите с изкуствен интелект могат да четат израза като текст.
  • Копирането и поставянето произвежда използваемо представяне, често с възможност за обратно преобразуване в LaTeX.
Третата възможност, която също губи

Много CMS платформи все още доставят суров LaTeX вътре в страницата и оставят библиотека по време на изпълнение (често MathJax) да го открие и конвертира при зареждане. Резултатът се изобразява, но едва след като се изпълни скрипт — нетривиална санкция за достъпността при бавни мрежи и измерима цена за изместване на оформлението. Конвертирайте при компилиране, когато можете; запазете конвертирането по време на изпълнение за наследени източници, които не можете да прекомпилирате.


4. Навигация в математиката от екранен четец

Изобразяването на математиката е половината работа. Другата половина е навигацията: дълго уравнение не може да се линеаризира в едно изговорено изречение, без читателят да изгуби мястото си. Всеки голям екранен четец вече доставя „математически режим“, който позволява на потребителя да навлезе в дроб, да върви по числителя ѝ, да слезе в индекс, да изскочи навън към родителския израз и да произнесе наново текущия подизраз с различна подробност. Реализациите се различават по зрялост, по клавишните комбинации и, което е от решаващо значение, по това коя библиотека с правила за реч споделят.

Екранен четецНативен MathMLДвигател за речНавигацияЗрялост
NVDA (Windows)ДаMathCAT (съвременен), исторически добавка MathPlayerОбхождане на подизрази, нива на подробност, брайлов изходГотов за производство
JAWS (Windows)ДаMathCATОбхождане на подизрази, курсор за преглед само на математикаГотов за производство
VoiceOver (macOS, iOS)ДаВътрешен на Apple, частично производен от семантиката на MathMLНавигация чрез избирач на елементи; по-малко детайлна от NVDA/JAWSИзползваема, по-малко богата
ChromeVox (ChromeOS, Chrome)ДаSpeech Rule Engine (SRE) директноОбхождане на подизрази чрез правила на SREСилна в контекста на класната стая
Orca (Linux)ЧастичноSRE чрез браузъра; самата Orca разчита на текста от дървото за достъпностОграничена; зависи от браузъраПроменлива
MathPlayer, MathCAT, MathML — три имена, които да не бъркате

MathPlayer беше оригиналната добавка на Design Science, която научи NVDA да произнася MathML; тя е изведена от употреба. MathCAT е нейният съвременен наследник — активно поддържан, базиран на Rust, препоръчителният бекенд за NVDA и JAWS днес. MathML е самата маркировка: входът, който и двете библиотеки консумират. Препратките към MathPlayer в спецификация или документ на доставчик от 2026 г. обикновено са исторически и следва да се четат като „добавката за произнасяне на математика“ по дух.


5. Speech Rule Engine, тихо отдолу

Зад почти всяко съвременно изживяване за произнасяне на математика в уеб стои проект, за който повечето инженери никога не са чували: Speech Rule Engine, или SRE. SRE започна вътре в екипа на ChromeVox на Google в средата на 2010-те и сега е библиотека с отворен код, поддържана предимно от Volker Sorge. Тя приема MathML и излъчва структурирана изговорена форма — на множество езици, множество нива на подробност и множество набори от правила (MathSpeak, ClearSpeak, ChromeVox-classic). Тя е и двигателят, който задвижва поведението за навигация в математиката, което MathJax излага върху собствения си изобразен изход, и е реферирана както от MathCAT, така и от няколко експеримента за достъпност от страна на браузъра.

Причината SRE да е от значение като инфраструктура е, че без каноничнa библиотека за произношение всеки екранен четец би изобретил собствен начин да каже х на квадрат плюс у на квадрат е равно на r на квадрат. Със SRE основните реализации се сближават около малък набор от санкционирани набори от правила, което означава, че учител, който пише уравнение в инструмент за създаване на учебници, може да предвиди приблизително как ученик, използващ NVDA, JAWS или ChromeVox, ще го чуе. Сближаването не е пълно — VoiceOver е изключението — но е реално и нараства.

1

MathSpeak срещу ClearSpeak

Двата най-известни набора от правила се доставят вътре в SRE. MathSpeak е по-старият, по-буквален стил — „дроб едно върху две край-дроб“ — и беше проектиран за прецизност в брайлов стил. ClearSpeak е по-нов, по-естествено звучащ — „една втора“ — и е стандартът по подразбиране в повечето внедрявания в класната стая днес. Превключването между двата е предпочитание за стил на подробност, а не различен двигател.

2

Поддръжка на множество езици

SRE доставя преведени набори от правила за английски, френски, немски, италиански, испански и нарастващ набор от допълнителни езици. Преводите не са машинно генерирани — те бяха създадени от поддръжниците и сътрудниците на SRE с помощта на преподаватели, които преподават математика на тези езици. Това е едно от малкото места в уеб достъпността, където локализацията е истински достатъчно пълна, за да се разчита на нея.

3

Брайлов изход, не само реч

SRE излъчва и брайл по Nemeth и UEB-math от MathML, който е пътят, който повечето съвременни брайлови дисплеи използват за изобразяване на математика. Същият MathML източник, който задвижва изговорения изход, задвижва и брайловия изход, което е точно архитектурното свойство, което един инфраструктурен слой за достъпност трябва да притежава.


6. Препоръки по тип документ

Общият принцип — доставяйте MathML, конвертирайте от LaTeX при компилиране, когато е възможно, разчитайте на SRE за речта — важи за всеки тип документ. Спецификите се изместват с повърхността. По-долу са конкретни препоръки за четирите класа документи, които повечето екипи по достъпност доставят.

1

Уеб статии и публикации в блог

Ако вашата платформа го поддържа, изобразявайте MathML директно в тялото на публикацията — повечето генератори на статични сайтове могат да извикат Temml или Pandoc при компилиране и да излъчат MathML в HTML. Ако платформата е наследен CMS, който приема само LaTeX, заредете MathJax v4 в режим на изход на MathML и го оставете да конвертира по време на изпълнение, но кеширайте агресивно. Не доставяйте PNG изображения на уравнения.

2

Академични статии в списания

Корпусът е предимно LaTeX, а издателският пайплайн е правилното място за конвертиране. Pandoc, MathJax в пакетен режим или собственият LaTeXML пайплайн на издателя могат да излъчат HTML с MathML и PDF в едно изпълнение. Печалбата за достъпността е голяма: потребител на екранен четец, който чете статия онлайн, получава уравнения, в които може да навигира, вместо PDF, чиято математика е растеризирана. Съчетайте изхода HTML/MathML с издание на тагнат PDF за четене офлайн.

3

Учебници и дълги учебни материали

EPUB 3 с вграден MathML е стандартът, а съвременните системи за четене (Apple Books, Thorium, ACE-тествани производствени четци) се справят с него правилно. Създайте веднъж в MathML, доставете един и същ EPUB на зрящи потребители и на потребители на екранен четец, и разчитайте на задвижваната от SRE реч в слоя на помощните технологии. Избягвайте вграждането на уравнения в растерни изображения, дори ако типографията изглежда по-добре — цената за достъпността не си струва излъскването.

4

Слайдове за класната стая и преподаване на живо

Слайдовете са най-разхвърляната повърхност — PowerPoint и Google Slides всеки се справя с математиката различно, а режимът на лектора често се връща към изображения. Защитимата настройка по подразбиране през 2026 г. е да създадете математиката в инструмент за слайдове, който експортира MathML (или да съставите слайдовете като HTML), и да споделите паралелен HTML или EPUB раздавателен материал със същите уравнения като MathML преди лекцията. Раздавателният материал, а не презентацията, е артефактът, в който ученик с екранен четец може да навигира по време на и след часа.

Единен принцип, четири повърхности

Във всичките четири типа документи важи един и същ единен принцип: излъчвайте MathML, оставете браузъра да го изобрази, оставете задвижваната от SRE реч и брайл да обработват слоя на помощните технологии, и третирайте всеки пайплайн, който произвежда изображение на уравнение, като провал, който да бъде поправен. Сближаването на браузърните двигатели през 2023 г. направи този принцип най-сетне достъпен. Сближаването на екранните четци около SRE го направи най-сетне последователен.


Заключение: дългият път и накъде води той сега

Достъпността на математиката в уеб беше най-бавната от основните граници на достъпността, която съзря. Стандартите бяха готови през 1998 г. Екранните четци бяха готови, по основен начин, в средата на 2000-те. Браузърните двигатели се забавиха до 2023 г. Интеграцията между тези три слоя — маркировка, изобразяване, реч — реално се намести едва през втората половина на тази година, когато MathCAT замени MathPlayer вътре в NVDA, когато JAWS прие същия бекенд и когато ChromeVox и MathJax се сближиха около същия основополагащ Speech Rule Engine.

Работата, която остава, е по краищата. Нотацията на елементарната математика не е в MathML Core, а платформите, които преподават аритметика в ранните класове, все още трябва да се връщат към разширенията на MathML 3 или към изображения. Навигацията в математиката на VoiceOver е използваема, но по-малко детайлна от това, което получават потребителите на Windows. Пренасянето на ред в браузъра в много дълги уравнения е консервативно, а някои разтягащи се оператори все още се изобразяват неравномерно между двигателите. Това са реални проблеми, които си струва да се поправят. Те не са същият вид проблем като „Chromium изобщо не може да изобрази математика“, какъвто беше през десетилетието преди 2023 г.

За инженерен екип, който доставя нова продуктова повърхност през 2026 г. с математическо съдържание върху нея, защитимата настройка по подразбиране е: излъчвайте MathML, генерирайте го от LaTeX при компилиране, когато източникът го позволява, връщайте се към MathJax v4 за наследен LaTeX, който не можете да предварително обработите, и се доверете на стека от екранни четци — NVDA плюс MathCAT, JAWS плюс MathCAT, ChromeVox плюс SRE, VoiceOver нативно — да обработи речевия слой. Дългият път не е свършил. Но за първи път той води нанякъде четимо.

„Стандартите бяха готови през 1998 г. Браузърните двигатели се забавиха до 2023 г. Интеграцията най-сетне се намести през втората половина на тази година.“

— тази статия, заключение