Axe-core — это библиотека для автоматизированного тестирования доступности веб-приложений, реализованная на JavaScript. Она позволяет выявлять нарушения стандартов доступности, таких как WCAG (Web Content Accessibility Guidelines), ARIA и других, обеспечивая разработку интерфейсов, доступных для пользователей с ограниченными возможностями.
Библиотека может использоваться как в браузере через консоль разработчика, так и в автоматизированных тестах с использованием Node.js, Puppeteer, Cypress и других инструментов.
Для использования Axe-core в проекте можно подключить библиотеку через npm:
npm install axe-core
Или загрузить напрямую через CDN:
<script src="https://cdnjs.cloudflare.com/ajax/libs/axe-core/4.8.3/axe.min.js"></script>
Инициализация и запуск анализа в браузере выглядит следующим образом:
axe.run(document, {}, function(err, results) {
if (err) throw err;
console.log(results.violations);
});
Параметры функции axe.run:
document).Объект results содержит несколько ключевых свойств:
violations — массив найденных нарушений.passes — массив успешно пройденных проверок.incomplete — проверки, которые не удалось
завершить.inapplicable — правила, которые не применимы к текущему
контенту.Каждое нарушение содержит:
id — уникальный идентификатор правила.impact — уровень критичности (minor,
moderate, serious,
critical).description — краткое описание проблемы.help — рекомендации по исправлению.nodes — список элементов DOM, где обнаружено
нарушение.При работе с Axe-core важно понимать уровни критичности нарушений. Они позволяют выделять наиболее значимые проблемы, требующие немедленного внимания.
Уровни влияния (impact):
Использование фильтрации по уровню позволяет строить приоритетный план исправлений:
const criticalViolations = results.violations.filter(v => v.impact === 'critical');
const seriousViolations = results.violations.filter(v => v.impact === 'serious');
Axe-core поддерживает индивидуальную настройку правил. Это позволяет включать или отключать отдельные проверки, изменять их параметры или приоритетность.
Пример настройки:
const options = {
runOnly: {
type: 'tag',
values: ['wcag2a', 'wcag2aa'] // проверять только правила WCAG 2.0 уровней A и AA
},
rules: {
'color-contrast': { enabled: true },
'image-alt': { enabled: true }
}
};
axe.run(document, options, (err, results) => {
if (err) throw err;
console.log(results.violations);
});
Особенности настройки:
wcag2a, wcag2aa, wcag21aa,
best-practice).enabled: false.options.rules[ruleId].options.Для повышения эффективности тестирования доступности Axe-core интегрируется с современными инструментами:
Пример использования с Cypress:
import 'cypress-axe';
cy.visit('/example');
cy.injectAxe();
cy.checkA11y(null, {
runOnly: ['wcag2aa']
});
Использование приоритетных правил позволяет автоматически отмечать критические и серьёзные ошибки как блокирующие, а умеренные и незначительные — как предупреждения.
Axe-core обеспечивает детальную диагностику доступности веб-приложений, позволяя структурировать результаты по критичности нарушений. Система приоритетных правил помогает фокусироваться на исправлении наиболее значимых ошибок, повышая качество и соответствие стандартам WCAG. Гибкая настройка и интеграция с инструментами тестирования делают библиотеку мощным инструментом в процессе разработки и аудита интерфейсов.