Библиотека Axe-core предназначена для автоматизации проверки доступности веб-контента и пользовательских интерфейсов на соответствие стандартам WCAG (Web Content Accessibility Guidelines). Помимо полной аудита страницы, Axe-core поддерживает частичные проверки, которые позволяют сосредоточиться на конкретных элементах DOM или областях страницы.
Частичная проверка выполняется с помощью метода run,
которому можно передать контекст — указание на область
DOM, подлежащую аудиту. Контекст может быть представлен:
axe.run('.main-content', options).then(results => {
console.log(results.violations);
});
document.querySelector или аналогичные методы:const section = document.querySelector('#header');
axe.run(section, options).then(results => {
console.log(results.violations);
});
const blocks = [document.querySelector('#nav'), document.querySelector('#footer')];
axe.run(blocks, options).then(results => {
console.log(results.violations);
});
Метод axe.run принимает два аргумента:
const options = {
runOnly: {
type: 'rule',
values: ['color-contrast', 'image-alt']
}
};
const options = {
elementRef: {
selector: '.interactive'
}
};
const options = {
include: [['#main', '#sidebar']],
exclude: [['#ads']]
};
Частичная проверка особенно полезна при работе с
одностраничными приложениями (SPA), где содержимое
страницы динамически изменяется. Для таких случаев применяется повторный
вызов axe.run только на новых или изменённых элементах:
const newSection = document.querySelector('#dynamic-section');
axe.run(newSection).then(results => {
if (results.violations.length > 0) {
console.log('Обнаружены проблемы доступности в динамическом блоке');
console.table(results.violations);
}
});
Это значительно ускоряет процесс аудита по сравнению с полной проверкой всей страницы.
После выполнения частичной проверки метод возвращает объект с результатами:
violations — массив обнаруженных нарушений WCAG.passes — элементы, прошедшие проверку.incomplete — частично проверенные элементы, требующие
дополнительного анализа.inapplicable — элементы, к которым правила
неприменимы.Применение фильтрации позволяет выделить только значимые проблемы:
axe.run(section).then(results => {
const criticalIssues = results.violations.filter(v => v.impact === 'critical');
console.log('Критические нарушения:', criticalIssues);
});
Частичные проверки Axe-core легко интегрируются с инструментами Jest, Cypress или Mocha для автоматизации тестирования:
it('Проверка доступности футера', async () => {
const footer = document.querySelector('#footer');
const results = await axe.run(footer);
expect(results.violations.length).toBe(0);
});
Использование частичных проверок позволяет проводить таргетированные тесты, которые быстрее и проще в сопровождении, чем глобальная проверка страницы.
include и exclude для
ограничения проверки только релевантными элементами.minor, moderate, serious,
critical) для приоритизации исправлений.Частичные проверки с Axe-core обеспечивают быструю, точную и управляемую проверку доступности, позволяя интегрировать аудит в процесс разработки без необходимости полной перезаписи тестов при каждом изменении интерфейса.