В библиотеке Axe-core параметр runOnly
отвечает за выбор конкретных правил и проверок, которые будут
выполняться при анализе страницы на доступность. Он позволяет ограничить
набор правил, оптимизируя время сканирования и концентрируясь на нужных
аспектах доступности.
runOnly может принимать два типа значений:
const options = {
runOnly: {
type: 'rule',
values: ['color-contrast', 'image-alt']
}
};
В этом примере будут выполнены только проверки на контрастность
текста (color-contrast) и наличие альтернативного текста у
изображений (image-alt).
wcag2a,
wcag2aa или best-practice:const options = {
runOnly: {
type: 'tag',
values: ['wcag2aa', 'section508']
}
};
Здесь сканирование будет запускать все правила, помеченные соответствующими тегами, что удобно для соответствия стандартам WCAG или Section 508.
Комбинирование правил и тегов Нельзя
одновременно использовать type: 'rule' и
type: 'tag' в одном объекте runOnly. Для
комплексного анализа необходимо создавать несколько запусков с разными
настройками.
Приоритет runOnly над другими
настройками Если указаны конкретные правила или категории через
runOnly, то другие настройки, такие как
exclude или includedImpacts, применяются
только к выбранным правилам.
Влияние на производительность Ограничение анализа конкретными правилами позволяет существенно сократить время сканирования страниц с большим количеством элементов. Особенно это важно при автоматическом тестировании в CI/CD или при анализе страниц с динамическим контентом.
const axe = require('axe-core');
axe.run(document, {
runOnly: {
type: 'rule',
values: ['color-contrast']
}
}).then(results => {
console.log(results.violations);
});
axe.run(document, {
runOnly: {
type: 'tag',
values: ['wcag2aa']
}
}).then(results => {
console.log(results.violations);
});
const puppeteer = require('puppeteer');
const axeCore = require('axe-core');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
const results = await page.evaluate(async () => {
return await axe.run({
runOnly: {
type: 'tag',
values: ['best-practice']
}
});
});
console.log(results.violations);
await browser.close();
})();
runOnlyrunOnly для оптимизации сканирования
страниц с большим количеством элементов и сложной разметкой.type: 'tag' с нужными уровнями (wcag2a,
wcag2aa), чтобы не пропустить критические ошибки.type: 'rule' с конкретными идентификаторами правил.runOnly является мощным инструментом настройки анализов
в Axe-core. Гибкое использование этого параметра позволяет настраивать
баланс между полнотой проверки и скоростью
сканирования, обеспечивая точные и управляемые результаты.