Библиотека Axe-core предоставляет широкий набор вспомогательных методов, предназначенных для упрощения работы с анализом доступности веб-страниц. Эти методы позволяют не только запускать проверки, но и структурировать результаты, фильтровать ошибки и интегрировать Axe-core в сложные системы автоматизированного тестирования.
axe.runМетод axe.run является центральным инструментом
библиотеки. Он выполняет анализ DOM и возвращает отчет о найденных
нарушениях доступности.
Синтаксис:
axe.run(context, options, callback)
context — объект или селектор, ограничивающий область проверки. Может быть:
document — весь документ,options — объект конфигурации:
runOnly — ограничения по правилам или тегам;rules — включение или отключение отдельных правил;reporter — формат отчета.callback — функция, получающая результаты анализа:
axe.run(document, { runOnly: ['wcag2a', 'wcag2aa'] }, (err, results) => {
if (err) throw err;
console.log(results.violations);
});
Ключевой особенностью является возможность запускать проверку на любом фрагменте DOM и фильтровать результаты по уровню критичности.
axe.configureМетод axe.configure позволяет глобально настраивать
поведение Axe-core. Это особенно полезно при интеграции с фреймворками
тестирования.
Пример настройки:
axe.configure({
rules: [
{ id: 'color-contrast', enabled: true },
{ id: 'image-alt', enabled: false }
],
checks: [
{ id: 'label', enabled: true }
]
});
Особенности:
axe.run.axe.resetМетод axe.reset используется для сброса всех
пользовательских конфигураций и возврата к настройкам по умолчанию.
axe.reset();
Применяется перед новыми тестами, чтобы исключить влияние предыдущих конфигураций.
Axe-core предоставляет несколько методов для удобного анализа результатов проверки.
axe.getRulesВозвращает список всех правил, доступных для проверки:
const rules = axe.getRules();
console.log(rules.map(r => r.id));
Полезно для динамического формирования конфигураций и проверки поддерживаемых правил.
axe.getViolationsSummaryПозволяет получить краткую сводку найденных нарушений, группируя их по типу и критичности:
const summary = axe.getViolationsSummary(results.violations);
console.log(summary);
Сводка включает:
minor, moderate,
serious, critical),axe.filterResultsМетод позволяет фильтровать результаты по правилам или тегам:
const filtered = axe.filterResults(results.violations, {
tags: ['wcag2aa']
});
Полезен для исключения неактуальных проверок или для фокусировки на конкретных требованиях доступности.
Axe-core полностью поддерживает промисы и async/await, что облегчает интеграцию с современными тестовыми фреймворками, такими как Jest или Cypress.
async function runAxe() {
const results = await axe.run(document, { runOnly: ['wcag2a'] });
console.log(results.violations);
}
Преимущества асинхронного подхода:
try/catch.Вспомогательные методы Axe-core упрощают интеграцию с фреймворками:
cy.window().then(win => win.axe.run(...)) для запуска
проверки внутри браузера.axe-core и
использование промисов для проверки компонентов React.Axe-core позволяет создавать кастомные проверки через
axe.addRule:
axe.addRule({
id: 'custom-link-title',
selector: 'a',
enabled: true,
evaluate: (node) => node.title && node.title.length > 0
});
Параметры правила:
Это расширяет стандартный набор правил и позволяет проверять специфические требования проекта.