Библиотека Axe-core представляет собой мощный инструмент для автоматизированного тестирования доступности веб-приложений. Она обеспечивает проверку элементов страницы на соответствие стандартам WCAG (Web Content Accessibility Guidelines) и выявление потенциальных проблем с доступностью. Один из способов визуализации результатов тестирования — использование HTML Reporter, который формирует удобные интерактивные отчёты в виде HTML-документов.
Для начала необходимо установить Axe-core и его HTML Reporter через npm:
npm install axe-core axe-html-reporter --save-dev
После установки подключение в коде JavaScript выглядит следующим образом:
const axe = require('axe-core');
const AxeHtmlReporter = require('axe-html-reporter');
Ключевые моменты подключения:
axe-core отвечает за анализ DOM и генерацию JSON-отчёта
с результатами.axe-html-reporter преобразует этот JSON в удобный
HTML-отчёт.Перед запуском анализа необходимо подготовить конфигурацию Axe:
const options = {
runOnly: {
type: 'tag',
values: ['wcag2a', 'wcag2aa'] // Проверка на соответствие стандартам WCAG 2.0 уровня A и AA
},
rules: {
'color-contrast': { enabled: true },
'image-alt': { enabled: true }
}
};
runOnly позволяет ограничить проверку определёнными
тегами или стандартами.rules позволяет включать или отключать отдельные
правила.Axe-core предоставляет метод run, который принимает
DOM-элемент и конфигурацию:
axe.run(document, options, (err, results) => {
if (err) throw err;
// Формирование HTML-отчёта
const reporter = new AxeHtmlReporter({
results,
outputFile: 'axe-report.html',
theme: 'default'
});
reporter.writeReport();
});
Пояснения к коду:
document — корневой DOM-элемент, на котором будет
проводиться проверка.results — объект с полным набором данных о найденных
нарушениях.AxeHtmlReporter создаёт файл
axe-report.html, доступный для просмотра в браузере.theme позволяет менять оформление отчёта
(например, default, dark,
minimal).HTML-отчёт состоит из нескольких блоков:
Общие сведения
Список нарушений
violation, serious,
moderate, minor).Интерактивные элементы
Сводка по категориям
const fs = require('fs');
const { JSDOM } = require('jsdom');
const dom = new JSDOM(fs.readFileSync('index.html'));
axe.run(dom.window.document, options, (err, results) => {
if (err) throw err;
const reporter = new AxeHtmlReporter({
results,
outputFile: 'axe-report.html'
});
reporter.writeReport();
console.log('HTML-отчёт сгенерирован: axe-report.html');
});
JSDOM позволяет тестировать HTML-файлы
вне браузера.runOnly для фокусировки на критичных
правилах при больших проектах.HTML Reporter в сочетании с Axe-core превращает анализ доступности из рутинного процесса в наглядный инструмент контроля качества, позволяя быстро выявлять и исправлять ошибки, улучшая пользовательский опыт.