Библиотека Axe-core предназначена для
автоматизированной проверки доступности веб-приложений. Основные функции
библиотеки позволяют настраивать область сканирования и параметры правил
через объекты node и options. Понимание этих
параметров критично для точной настройки тестов.
nodenode — это DOM-элемент или коллекция
элементов, на которых будет выполняться проверка. Он позволяет
ограничить область анализа, что особенно полезно для больших страниц или
динамических компонентов.
HTMLElement): проверка
ограничивается одним элементом и всеми его потомками.HTMLElement[]):
выполняется проверка на всех указанных элементах.string): библиотека
самостоятельно выбирает элементы на странице по переданному
селектору.import axe from 'axe-core';
// Проверка конкретного элемента
const button = document.querySelector('button.submit');
axe.run(button).then(results => console.log(results));
// Проверка всех элементов с классом
axe.run(document.querySelectorAll('.form-input')).then(results => console.log(results));
// Проверка через CSS-селектор
axe.run('.main-content').then(results => console.log(results));
node не задан, проверка выполняется на всей
странице (document).node снижает время выполнения
теста и сокращает объем отчетов.optionsoptions — объект конфигурации,
позволяющий гибко управлять правилами проверки, приоритетами,
включением/отключением определённых правил и контекстом
сканирования.
optionsconst options = {
runOnly: {
type: 'tag', // или 'rule'
values: ['wcag2a', 'wcag2aa'] // или список конкретных правил
},
rules: {
'color-contrast': { enabled: true },
'image-alt': { enabled: false }
},
resultTypes: ['violations', 'incomplete', 'passes', 'inapplicable'],
reporter: 'v2'
};
runOnly Определяет, какие правила
будут выполнены. Может быть объектом с type и
values:
type: 'tag' — запускаются все правила с указанными
тегами (например, wcag2a, wcag2aa,
section508).type: 'rule' — запускаются конкретные правила по их
идентификаторам.rules Позволяет включать или
отключать отдельные проверки.
enabled: true/false — активирует или деактивирует
правило.resultTypes Определяет, какие типы
результатов будут возвращены:
violations — нарушения доступности.incomplete — неполные результаты.passes — успешные проверки.inapplicable — неприменимые правила.reporter Формат отчета: строка
'v2', 'v3' или пользовательская функция для
кастомного отчета.
import axe from 'axe-core';
const mainContent = document.querySelector('#main-content');
const options = {
runOnly: {
type: 'tag',
values: ['wcag2aa']
},
rules: {
'color-contrast': { enabled: true },
'image-alt': { enabled: false }
},
resultTypes: ['violations', 'passes']
};
axe.run(mainContent, options).then(results => {
console.log('Нарушения:', results.violations);
console.log('Успешные проверки:', results.passes);
});
В этом примере:
#main-content.wcag2aa.image-alt отключено.Для SPA или страниц с динамически подгружаемым контентом:
axe.run() необходимо убедиться, что все
элементы загружены в DOM.axe.run() на
новых элементах.node позволяет ограничить
область проверки только изменёнными компонентами, что экономит
ресурсы.node (например, передан null)
приведут к проверке всей страницы. Это иногда нежелательно на больших
проектах.options может использоваться совместно с
кастомными правилами, подключаемыми через
axe.configure().resultTypes позволяет фильтровать
ненужные данные, облегчая анализ отчетов.Понимание и правильное использование параметров node и
options является ключевым для точного и эффективного
анализа доступности с помощью Axe-core в
JavaScript.