Библиотека Axe-core предоставляет мощный инструмент для автоматизированного тестирования доступности веб-приложений. Одной из ключевых возможностей является гибкая настройка набора правил, которые будут применяться при сканировании страницы. Это позволяет оптимизировать процесс проверки, исключая ненужные правила или наоборот — добавляя дополнительные проверки.
Каждое правило в Axe-core описывает конкретный аспект доступности, например:
Правила идентифицируются уникальными именами (ruleId) и
имеют несколько параметров настройки:
Пример базовой конфигурации:
const axeConfig = {
rules: {
'color-contrast': { enabled: true },
'image-alt': { enabled: false }
}
};
В данном примере проверка контраста цветов включена, а проверка наличия альтернативного текста у изображений отключена.
Axe-core позволяет управлять правилами динамически через объект
конфигурации при запуске анализа страницы. Методы axe.run и
axe.configure поддерживают указание правил:
import axe from 'axe-core';
// Настройка правил глобально
axe.configure({
rules: [
{ id: 'image-alt', enabled: true },
{ id: 'label', enabled: false }
]
});
// Запуск анализа
axe.run(document.body).then(results => {
console.log(results.violations);
});
Особенности:
id вместо полного имени правила
обеспечивает точное управление.enabled: false правило полностью
исключается из проверки.selector:axe.configure({
rules: [
{ id: 'color-contrast', selector: '.main-content', enabled: true }
]
});
Для крупных проектов часто требуется отключить сразу несколько правил. Axe-core поддерживает это через массив правил в конфигурации. Можно комбинировать включение и отключение:
axe.configure({
rules: [
{ id: 'image-alt', enabled: false },
{ id: 'label', enabled: false },
{ id: 'color-contrast', enabled: true }
]
});
Также возможна настройка по категориям. Например, все правила,
относящиеся к wcag2aa, можно включить или отключить
одновременно. Для этого используется фильтрация по тегам правил:
axe.configure({
rules: axe.getRules().filter(rule => rule.tags.includes('wcag2aa')).map(rule => ({
id: rule.id,
enabled: true
}))
});
Иногда требуется временно отключить правило для конкретного теста или
элемента. Для этого Axe-core предоставляет возможность указывать правила
прямо в axe.run:
axe.run(document.body, {
rules: {
'color-contrast': { enabled: false },
'image-alt': { enabled: true }
}
}).then(results => {
console.log(results.violations);
});
Такой подход полезен при тестировании компонентов, где некоторые правила могут давать ложные срабатывания или не актуальны.
axe.configure, затем локальные в
axe.run.Эффективная настройка правил позволяет интегрировать Axe-core в CI/CD процессы, минимизировать ложные срабатывания и поддерживать высокий уровень доступности веб-приложений.