Библиотека Axe-core — это мощный инструмент для автоматизированной проверки доступности веб-приложений. Одним из ключевых аспектов является поддержка стандартов WCAG (Web Content Accessibility Guidelines), где различают три уровня соответствия: A, AA и AAA. Эти уровни определяют строгость требований и охват проблем доступности.
Уровень A представляет собой минимальные требования, которые необходимо соблюдать для базовой доступности. Нарушения на этом уровне создают критические барьеры для пользователей с ограниченными возможностями.
Основные аспекты:
Альтернативный текст для изображений Все
значимые изображения должны иметь атрибут alt. Если
изображение декоративное — alt должен быть пустым
(alt=""). Axe-core выявляет отсутствие или некорректное
использование этого атрибута.
Фокус и навигация с клавиатуры Элементы управления должны быть доступными с клавиатуры. Это включает ссылки, кнопки, формы. Axe-core проверяет возможность перемещения фокуса между интерактивными элементами.
Использование семантических элементов Ключевые
элементы (header, main, nav,
footer, button, input) должны
использоваться по назначению. Нарушения семантики затрудняют работу с
экранными читалками.
Примеры правил Axe-core уровня A:
image-alt — проверка наличия текста для
изображений.label — проверка корректного связывания меток с
формами.bypass — проверка наличия способов пропуска
повторяющихся блоков навигации.Уровень AA является средним уровнем доступности. Соответствие этому уровню обеспечивает более удобную работу с контентом для большинства пользователей, включая людей с нарушениями зрения и моторики.
Ключевые требования:
Контраст текста и фона Минимальное отношение контрастности должно составлять 4.5:1 для обычного текста и 3:1 для крупного. Axe-core автоматически измеряет цветовой контраст.
Масштабируемость контента Контент должен оставаться читаемым при увеличении масштаба до 200%. Axe-core проверяет возможность масштабирования без потери функциональности.
Подписи и субтитры Видео должны содержать субтитры для пользователей с нарушением слуха. В библиотеке есть правила проверки наличия субтитров или описания аудиоконтента.
Ясные инструкции для форм Все поля форм должны
иметь поясняющие инструкции и ошибки должны быть легко обнаружимы и
понятны. Axe-core проверяет корректность aria-describedby и
aria-invalid.
Примеры правил Axe-core уровня AA:
color-contrast — проверка контрастности текста и
фона.video-caption — проверка наличия субтитров.aria-required-attr — проверка обязательных атрибутов
ARIA.form-field-multiple-labels — проверка корректного
использования меток.Уровень AAA — это наивысший уровень доступности, соблюдение которого обеспечивает комфортное взаимодействие с веб-контентом для всех пользователей, включая людей с серьезными ограничениями.
Особенности уровня AAA:
Высокая контрастность Требуется отношение контрастности 7:1 для обычного текста и 4.5:1 для крупного. Axe-core позволяет определить элементы, где контрастность недостаточна.
Дополнительные текстовые альтернативы Все мультимедийные элементы должны иметь текстовые альтернативы: аудиодескрипцию для видео и подробные описания изображений.
Минимизация анимаций Контент с анимацией должен
предоставлять возможность отключения или уменьшения движения. Проверка с
Axe-core включает анализ свойств CSS, таких как animation и
transition.
Поддержка расширенной навигации Пользователи должны иметь возможность быстро перемещаться по страницам и блокам контента, используя заголовки и ARIA-метки.
Примеры правил Axe-core уровня AAA:
audio-caption — проверка наличия описания для
аудио.heading-order — проверка корректного порядка
заголовков.document-title — проверка наличия и уникальности
заголовка документа.animation-on-hover — проверка анимаций, вызываемых при
наведении.Для проверки уровня соответствия используется метод
axe.run(), который принимает параметры
настройки:
import axe from 'axe-core';
axe.run(document, {
runOnly: {
type: 'tag',
values: ['wcag2a', 'wcag2aa', 'wcag2aaa']
}
}, (err, results) => {
if (err) throw err;
console.log(results.violations);
});
values позволяет выбирать уровни
WCAG для проверки.Для упрощения анализа результатов рекомендуется использовать:
console.table(results.violations).| Уровень | Основные требования | Примеры правил Axe-core |
|---|---|---|
| A | Минимальные критические требования | image-alt, label, bypass |
| AA | Средний уровень, контраст, масштаб | color-contrast, video-caption,
aria-required-attr |
| AAA | Наивысший уровень, расширенные альтернативы, контроль анимации | audio-caption, heading-order,
animation-on-hover |
Каждый уровень включает предыдущий, поэтому соблюдение AAA подразумевает выполнение всех требований A и AA. Это обеспечивает постепенное улучшение доступности и позволяет использовать Axe-core как инструмент планомерной оптимизации веб-приложений.