В библиотеке axe-core metadata играет ключевую роль при создании и кастомизации правил доступности. Metadata позволяет описывать правила, их условия срабатывания, категории, теги, влияние на пользователей и рекомендации по исправлению нарушений. Использование metadata обеспечивает более точный контроль над тем, как проверка доступности выполняется в приложении.
Каждое правило в axe-core может содержать объект meta, который включает следующие основные поля:
critical, serious, moderate,
minor.wcag2a, wcag2aa,
experimental).Пример metadata для пользовательского правила:
const customRule = {
id: "custom-color-contrast",
impact: "serious",
title: "Проверка контраста текста",
description: "Текст на странице должен иметь достаточный контраст с фоном для обеспечения читаемости.",
help: "Использовать цвета с достаточным контрастом согласно WCAG 2.1",
helpUrl: "https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum.html",
tags: ["wcag2aa", "color-contrast", "accessibility"]
};
Поле impact определяет, насколько серьезным считается нарушение для пользователей с ограничениями:
critical – блокирующее нарушение, которое делает
элемент полностью недоступным.serious – серьезное нарушение, которое может
существенно ухудшить пользовательский опыт.moderate – умеренное нарушение, которое снижает комфорт
взаимодействия.minor – незначительное нарушение, скорее рекомендация
по улучшению.Impact используется в отчетах axe-core для фильтрации и приоритизации ошибок.
Теги помогают структурировать правила и связывать их с конкретными стандартами доступности, например:
wcag2a, wcag2aa, wcag21aa –
соответствие требованиям WCAG разных уровней.experimental – экспериментальные или нестандартные
проверки.best-practice – рекомендации по улучшению
пользовательского опыта.Теги позволяют запускать сканирование выборочно, активируя только необходимые категории правил.
help содержит практическую инструкцию по исправлению нарушений, а helpUrl даёт ссылку на официальные источники. Это важно для автоматизированных тестов и генерации отчетов, так как разработчик получает не только факт нарушения, но и рекомендации по исправлению.
При создании пользовательских правил metadata обязателен. Это позволяет:
Пример регистрации кастомного правила:
import axe from 'axe-core';
axe.registerRule({
id: "custom-alt-text",
selector: "img",
evaluate: (node) => node.hasAttribute("alt") ? null : { message: "Отсутствует alt-текст" },
meta: {
impact: "critical",
title: "Проверка alt-текста для изображений",
description: "Все изображения должны иметь атрибут alt для поддержки скринридеров.",
help: "Добавить атрибут alt к изображению с описанием содержимого.",
helpUrl: "https://www.w3.org/WAI/tutorials/images/decision-tree/",
tags: ["wcag2a", "images", "accessibility"]
}
});
В некоторых случаях необходимо изменять metadata во время выполнения, например, для разных страниц приложения или специфических компонентов:
axe.run(document, {
rules: {
"custom-alt-text": {
enabled: true,
impact: "serious" // временно понижаем уровень влияния
}
}
});
Это позволяет гибко настраивать проверки без изменения исходного кода правил.
Все поля metadata автоматически включаются в отчеты axe-core. В отчете можно увидеть:
rule id и title для идентификации
нарушения.impact для приоритизации исправлений.description, help и helpUrl
для понимания сути проблемы.tags для фильтрации нарушений по стандартам.Использование корректной и полной metadata делает отчеты максимально полезными для команд разработки и QA.
Metadata является фундаментальным инструментом axe-core для поддержания прозрачности, точности и гибкости проверки доступности. Правильное использование metadata обеспечивает высокое качество автоматизированного тестирования и удобство работы с отчетами.