В библиотеке Axe-core объект passes
представляет собой один из ключевых компонентов анализа доступности
веб-страниц. Он формирует набор проверок, которые были успешно пройдены
во время сканирования. Понимание структуры и назначения
passes позволяет более глубоко интерпретировать результаты
аудита и интегрировать их в процесс разработки и тестирования
интерфейсов.
passesКаждый элемент passes является объектом с фиксированными
полями:
color-contrast, image-alt).minor, moderate, serious,
critical.Пример структуры одного pass:
{
"id": "image-alt",
"impact": "serious",
"description": "Images must have alternate text",
"nodes": [
{
"html": "<img src='logo.png'>",
"target": ["#logo"],
"any": [],
"all": [],
"none": []
}
],
"help": "Добавьте атрибут alt к изображению для описания его содержания",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.6/image-alt?application=axeAPI"
}
passesГлавная задача passes — фиксировать все проверки,
которые веб-элемент успешно прошёл, то есть соответствующие требованиям
WCAG. Эти данные:
passes от violations и
incompleteЭта классификация позволяет четко разделять успешные проверки от проблемных.
nodesКаждый элемент nodes содержит DOM-узлы, которые прошли
проверку. Внутри узлов присутствуют поля:
passes эти массивы обычно пусты, что свидетельствует о
полном соответствии.Пример обработки в Jav * aScript:
axe.run(document, {}, function(err, results) {
if (err) throw err;
results.passes.forEach(pass => {
console.log(`Проверка: ${pass.id} (${pass.impact})`);
pass.nodes.forEach(node => {
console.log(`Прошёл узел: ${node.target.join(', ')}`);
});
});
});
passesAxe-core позволяет фильтровать проверки по уровню воздействия или типу узла. Это особенно полезно при интеграции в CI/CD или при генерации отчётов для команды разработки.
Пример фильтрации по критическим проверкам:
const criticalPasses = results.passes.filter(pass => pass.impact === 'critical');
criticalPasses.forEach(pass => {
console.log(`Критическая проверка успешно пройдена: ${pass.id}`);
});
passesДля комплексных интерфейсов рекомендуется визуализировать данные
passes, чтобы отслеживать покрытие доступности:
passes /
violations.Использование passes в автоматизированных тестах
позволяет:
passes служит важным инструментом не только для проверки
состояния интерфейса, но и для построения культуры доступности на
проекте. Они дают уверенность, что уже реализованные элементы
соответствуют требованиям, и помогают планировать работу над улучшением
доступности для всех пользователей.