Uso con WebdriverIO

WebdriverIO es un framework de automatización de pruebas de Node.js construido sobre el protocolo WebDriver, que soporta tanto pruebas end-to-end como pruebas de componentes. surea11y se integra mediante la integración (binding) @surea11y/webdriverio.

$ npm install @surea11y/webdriverio webdriverio

WebdriverIO v9 gestiona automáticamente un chromedriver local la primera vez que lanza Chrome: una instalación limpia basta para lanzar un Chrome headless real por sí sola.

const { remote } = require('webdriverio');
const { A11yCoreBuilder } = require('@surea11y/webdriverio');
 
const browser = await remote({
capabilities: {
browserName: 'chrome',
'wdio:enforceWebDriverClassic': true, // recommended -- see below
'goog:chromeOptions': { args: ['--headless=new'] }
}
});
await browser.url('https://example.com/');
 
const results = await new A11yCoreBuilder({ browser })
.include('#main') // optional -- call multiple times for multi-region scans
.exclude('.cookie-banner') // optional
.withTags(['wcag2a', 'wcag2aa'])
.disableRules(['meta-refresh-no-exceptions'])
.analyze();
 
console.log(results.checksResults.filter(r => r.outcome === 'fail'));
await browser.deleteSession();

Fuerza el WebDriver clásico, no BiDi, para esta carga de trabajo. WebdriverIO v9 usa el protocolo BiDi por defecto; una sesión de larga duración que emite muchas llamadas a browser.execute() (exactamente lo que hace un análisis) mostró una degradación grave del rendimiento con BiDi durante las pruebas: la latencia por análisis pasó de ~2s a varios minutos. Forzando el WebDriver clásico con 'wdio:enforceWebDriverClassic': true, como se muestra arriba, se obtuvo un ~150ms estable por análisis.

Consulta también un ejemplo ejecutable en el propio repositorio del paquete.

Siguiente: elige qué reglas se ejecutan, integra el análisis en CI y consulta la estructura completa del resultado.