axe-core
Също: axe
Библиотека с отворен код за автоматизирано тестване на достъпността от Deque, използвана от браузър разширения (axe DevTools, Accessibility Insights), CI скриптове и Lighthouse. Открива приблизително 30–40% от проблемите с WCAG.
axe-core е библиотеката с отворен код за автоматизирано тестване на достъпността, разработена от Deque Systems. Тя захранва широка екосистема от инструменти за тестване — браузър разширения (axe DevTools, Accessibility Insights), CI скриптове (axe-cli, jest-axe, cypress-axe, playwright-axe) и най-вече одита за достъпност на Lighthouse.
През последното десетилетие axe-core е най-широко внедреният инструмент за автоматизирана проверка на достъпността в света. Повечето CI конвейери, свързани с достъпност, работещи в производствена среда днес, използват axe-core под капака — нерядко без екипът да е наясно с това.
Какво axe-core прави добре
Наборът от правила на axe-core е консервативен по замисъл: дадено правило се включва само когато честотата на фалшивите положителни резултати е практически нулева. Това прави axe-core надежден инструмент като CI пропускна бариера — когато маркира нарушение, нарушението е реално и екипът може да действа, без да се притеснява за нестабилни проверки.
Правила, които axe-core открива надеждно:
- Липсващи или празни етикети на полета за въвеждане.
- Липсващи атрибути
alt(и очевидно безполезни стойности като имена на файлове). - Недостатъчен цветови контраст (за текст и компоненти на потребителския интерфейс).
- Невалиден ARIA — несъществуващи роли, липсващи задължителни свойства, забранени дъщерни структури.
- Дублирани ID, нарушаващи препратките в ARIA.
- Липсващ езиков атрибут в
<html>. - Бутони без достъпно наименование.
- Полета за въвеждане без програмен етикет.
- Празни връзки (
<a href>...</a>без текст или алтернативен текст). - Пропуснати нива в йерархията на заглавия и липсващ
<h1>при някои конфигурации.
Този списък обхваща значителна част от лесно откриваемите проблеми с достъпността. Изпълнението на axe-core в CI ги улавя на етапа на преглед на кода, а не едва при одита.
Тавана
Авторите на axe-core са изрични по отношение на ограниченията: автоматизираните инструменти могат да открият най-много 30–40% от проблемите с WCAG. Останалото изисква човешка преценка и тестване с помощни технологии.
По-конкретно, axe-core не може да открие:
- Неверен алтернативен текст — може да установи, че
altлипсва, но не и чеalt="hamburger icon"е грешен за бутон, който отваря меню. - Подвеждащ текст на връзки — връзките „Натисни тук” са технически коректни спрямо спецификацията, но безполезни за потребителите на екранни четци.
- Нарушен ред на фокуса — ред на Tab навигацията, несъответстващ на визуалния ред, е нарушение на критерий 2.4.3, което никой статичен инструмент не може да открие.
- Неправилна структура на заглавия — axe-core открива липсващ
<h1>и пропуснати нива, но не може да установи, че дадена страница е използвала<h2>вместо<h1>. - Съдържание, недостъпно за определени групи потребители — съответстващо на WCAG, но неизползваемо за хора с увредено зрение, когнитивни увреждания и др.
Сайт, при който axe-core не отчита нарушения, е необходима предпоставка за достъпност, но не е достатъчна. Останалата работа — ред на фокуса, качество на съдържанието, поведение при екранни четци, тестване с реални потребители — е тази, която отнема по-голямата част от реалното работно време.
Как да използвате axe-core в практиката
Три модела на внедряване работят добре заедно:
- В редактора. axe DevTools и Accessibility Insights работят при поискване спрямо изобразения DOM в браузърен раздел. Използват се по време на разработката.
- В CI. axe-cli, jest-axe, cypress-axe или playwright-axe прекъсват компилацията при нови нарушения. Използват се за предотвратяване на регресии.
- По време на одита. Външни одитори стартират axe-core като отправна точка, след което добавят ръчно тестване. Използва се за валидиране на автоматизирания базов ред.
Комбинацията поддържа автоматично откриваемите проблеми на нулево ниво, докато истинската програма за достъпност се справя с останалото.