Axe-core — это мощная библиотека для автоматического тестирования доступности веб-приложений. С каждым крупным релизом появляются изменения, которые могут нарушить существующую интеграцию и поведение тестов. Раздел breaking changes посвящён анализу таких изменений, их причинам и методам адаптации.
Старые методы и свойства могут быть удалены или изменены. Например, методы для конфигурации проверок могут быть переименованы или иметь другую сигнатуру:
// Старый способ
axe.run(document, { runOnly: ['color-contrast'] });
// Новый способ (после v4.0)
axe.run(document, {
rules: {
'color-contrast': { enabled: true }
}
});
Ключевые моменты:
runOnly заменён на rules с объектной
конфигурацией.Формат возвращаемого объекта results иногда
меняется:
// Старый формат
{
violations: [
{
id: "color-contrast",
impact: "serious",
nodes: [...]
}
]
}
// Новый формат
{
violations: [
{
ruleId: "color-contrast",
impact: "serious",
nodes: [...]
}
]
}
Изменения могут включать:
id → ruleId).helpUrl может быть
перемещён в другой объект).nodes, который влияет на парсинг
деталей ошибки.Правила проверки могут быть уточнены или изменены логикой, что приводит к различным результатам при тех же тестах:
label или aria-label для всех интерактивных
элементов.Это важно, так как обновление библиотеки может привести к появлению новых нарушений в существующем проекте.
С интеграциями в тестовые фреймворки тоже возможны изменения:
axe.configure() могут изменять конфигурацию
глобально или локально, что влияет на существующие тестовые
сценарии.async/await.Пример корректного использования после изменения:
import axe from 'axe-core';
(async () => {
const results = await axe.run(document, {
rules: {
'color-contrast': { enabled: true }
}
});
console.log(results.violations);
})();
Некоторые правила могут быть полностью удалены из библиотеки. Их использование после обновления приведёт к ошибкам:
axe.getRules()).Breaking changes могут нарушить автоматические проверки доступности в пайплайнах:
results,
могут падать.package.json, чтобы исключить неожиданное появление новых
breaking changes при сборках.Некоторые изменения могут быть связаны с движками браузеров:
Breaking changes в axe-core требуют внимательного подхода к миграции, адаптации тестов и интеграции в автоматизированные процессы. Правильное понимание изменений API, формата данных и логики правил обеспечивает корректную проверку доступности и минимизирует ошибки после апгрейда библиотеки.