Библиотека Axe-core является мощным инструментом для
автоматического тестирования доступности веб-приложений. Одним из
ключевых элементов её конфигурации является параметр
resultTypes, который управляет типами результатов,
возвращаемых после анализа страницы. Этот параметр позволяет
разработчику тонко настраивать, какие данные будут включены в отчёт, что
важно для оптимизации тестов и фильтрации лишней информации.
resultTypesПараметр resultTypes представляет собой массив строковых
значений, определяющих, какие категории результатов будут собраны.
Основные допустимые значения:
violations — нарушения доступности,
которые требуют обязательного исправления.incomplete — элементы, для которых
проверка не может быть завершена однозначно, например, из-за динамически
загружаемого контента.passes — элементы, успешно прошедшие
проверку. Этот тип полезен для генерации отчётов о текущем состоянии
страницы.inapplicable — элементы или правила, к
которым выбранная проверка не применима.Каждое значение влияет на структуру объекта отчёта, возвращаемого
функцией axe.run().
Для запуска проверки с использованием resultTypes
применяется следующий подход:
const axe = require('axe-core');
const { JSDOM } = require('jsdom');
const dom = new JSDOM(`<html><body><button>Click me</button></body></html>`);
const document = dom.window.document;
axe.run(document, {
runOnly: {
type: 'tag',
values: ['wcag2a', 'wcag2aa']
},
resultTypes: ['violations', 'incomplete']
}).then(results => {
console.log(results.violations);
console.log(results.incomplete);
});
Особенности:
resultTypes всегда
должен быть массивом строк.results, остальные поля
игнорируются.['violations', 'passes'].violations, чтобы получать только критические
ошибки.passes
позволяет создавать подробные отчёты о всех проверках, что удобно для
команды тестировщиков.incomplete помогает выявить элементы, которые требуют
дополнительного внимания, например, элементы, загружаемые через
AJAX.Пример фильтрации результатов для генерации отчёта:
axe.run(document, { resultTypes: ['violations'] }).then(results => {
const summary = results.violations.map(v => ({
id: v.id,
impact: v.impact,
nodesCount: v.nodes.length
}));
console.table(summary);
});
resultTypes тесно связан с параметрами:
runOnly — ограничивает набор правил,
которые будут проверяться.include / exclude —
позволяет определять конкретные элементы DOM для анализа.reporter — некоторые сторонние отчёты
используют только определённые resultTypes для генерации финального
вывода.Использование resultTypes совместно с этими опциями
обеспечивает гибкую настройку процесса тестирования.
violations, чтобы не перегружать логи.passes и
incomplete для полной картины доступности.resultTypes, библиотека по умолчанию
возвращает все типы (violations, passes,
incomplete, inapplicable).Параметр resultTypes позволяет точно управлять данными,
которые Axe-core возвращает после анализа страницы, что делает
тестирование доступности более эффективным, структурированным и
адаптированным под конкретные задачи разработки и QA.