Достъпност на математиката
MathML, MathJax и дългият път
Двадесет години уеб изобразяваше прозата добре, а математиката — зле. Нативният MathML в Chromium 109 и тихо съзряващият Speech Rule Engine най-сетне обърнаха хода на нещата. Това въведение очертава как се вписват частите една в друга и към коя от тях да посегнете през 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, а връщането към изображения означаваше по-малко счупени страници. Този компромис вече не важи.
MathML Core е подмножеството на MathML 3, което браузърните двигатели се съгласиха да внедрят оперативно съвместимо. Ако днес излъчвате MathML от компилационен пайплайн, целете Core. Нотациите на елементарната математика и разширените разширения за оформление живеят в по-широката спецификация MathML 3; третирайте ги като прогресивни подобрения, които все още се възползват от резервен вариант с MathJax.
„Страница, която излъчва изображение с alt атрибут, доставя едно-единствено изречение, в което потребителят на екранен четец не може да навлезе, не може да го произнесе наново и не може да го копира в калкулатор.“
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 в уеб.
3. От LaTeX към MathML на практика: добра срещу лоша маркировка
Повечето математическо съдържание в уеб има LaTeX източник някъде нагоре по веригата. Въпросът е къде се извършва конвертирането от LaTeX към MathML — при компилиране, по време на изпълнение или никога. Шаблонът, който печели по всяка ос на достъпността, е конвертиране при компилиране към MathML, като изобразеният MathML се излъчва директно в HTML на страницата. Шаблонът, който губи по всяка ос, е доставянето на изображение от LaTeX изобразяване с alt атрибут, който перифразира уравнението.
- Уравнението живее в DOM като семантична маркировка.
- Екранният четец произнася оператор, операнд, структура — и позволява на потребителя да навигира в подизразите.
- Браузърите го изобразяват нативно; нула JavaScript по време на изпълнение в критичния път.
- Търсачките и обобщителите с изкуствен интелект могат да четат израза като текст.
- Копирането и поставянето произвежда използваемо представяне, често с възможност за обратно преобразуване в LaTeX.
- Уравнението е плоско изображение; структурата е невидима за помощните технологии.
- Екранният четец произнася единственото alt изречение; без навигация, без повторно произнасяне, без контрол на подробността.
- Изображението се мащабира зле с мащабирането на четеца и размера на текста на операционната система.
- Търсачките и инструментите с изкуствен интелект виждат „изображение на уравнение“ и нищо повече.
- Копирането и поставянето произвежда PNG; читателят не може да премести математиката в калкулатор.
Много 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 беше оригиналната добавка на 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 е изключението — но е реално и нараства.
MathSpeak срещу ClearSpeak
Двата най-известни набора от правила се доставят вътре в SRE. MathSpeak е по-старият, по-буквален стил — „дроб едно върху две край-дроб“ — и беше проектиран за прецизност в брайлов стил. ClearSpeak е по-нов, по-естествено звучащ — „една втора“ — и е стандартът по подразбиране в повечето внедрявания в класната стая днес. Превключването между двата е предпочитание за стил на подробност, а не различен двигател.
Поддръжка на множество езици
SRE доставя преведени набори от правила за английски, френски, немски, италиански, испански и нарастващ набор от допълнителни езици. Преводите не са машинно генерирани — те бяха създадени от поддръжниците и сътрудниците на SRE с помощта на преподаватели, които преподават математика на тези езици. Това е едно от малкото места в уеб достъпността, където локализацията е истински достатъчно пълна, за да се разчита на нея.
Брайлов изход, не само реч
SRE излъчва и брайл по Nemeth и UEB-math от MathML, който е пътят, който повечето съвременни брайлови дисплеи използват за изобразяване на математика. Същият MathML източник, който задвижва изговорения изход, задвижва и брайловия изход, което е точно архитектурното свойство, което един инфраструктурен слой за достъпност трябва да притежава.
6. Препоръки по тип документ
Общият принцип — доставяйте MathML, конвертирайте от LaTeX при компилиране, когато е възможно, разчитайте на SRE за речта — важи за всеки тип документ. Спецификите се изместват с повърхността. По-долу са конкретни препоръки за четирите класа документи, които повечето екипи по достъпност доставят.
Уеб статии и публикации в блог
Ако вашата платформа го поддържа, изобразявайте MathML директно в тялото на публикацията — повечето генератори на статични сайтове могат да извикат Temml или Pandoc при компилиране и да излъчат MathML в HTML. Ако платформата е наследен CMS, който приема само LaTeX, заредете MathJax v4 в режим на изход на MathML и го оставете да конвертира по време на изпълнение, но кеширайте агресивно. Не доставяйте PNG изображения на уравнения.
Академични статии в списания
Корпусът е предимно LaTeX, а издателският пайплайн е правилното място за конвертиране. Pandoc, MathJax в пакетен режим или собственият LaTeXML пайплайн на издателя могат да излъчат HTML с MathML и PDF в едно изпълнение. Печалбата за достъпността е голяма: потребител на екранен четец, който чете статия онлайн, получава уравнения, в които може да навигира, вместо PDF, чиято математика е растеризирана. Съчетайте изхода HTML/MathML с издание на тагнат PDF за четене офлайн.
Учебници и дълги учебни материали
EPUB 3 с вграден MathML е стандартът, а съвременните системи за четене (Apple Books, Thorium, ACE-тествани производствени четци) се справят с него правилно. Създайте веднъж в MathML, доставете един и същ EPUB на зрящи потребители и на потребители на екранен четец, и разчитайте на задвижваната от SRE реч в слоя на помощните технологии. Избягвайте вграждането на уравнения в растерни изображения, дори ако типографията изглежда по-добре — цената за достъпността не си струва излъскването.
Слайдове за класната стая и преподаване на живо
Слайдовете са най-разхвърляната повърхност — 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 г. Интеграцията най-сетне се намести през втората половина на тази година.“