Uso con Selenium

Selenium WebDriver es el estándar histórico para controlar navegadores reales desde cualquier lenguaje: la herramienta de automatización multinavegador más consolidada, usada habitualmente para pruebas end-to-end. surea11y se integra mediante la integración (binding) @surea11y/selenium.

$ npm install @surea11y/selenium selenium-webdriver

selenium-webdriver incluye Selenium Manager, que descarga y gestiona automáticamente la versión correspondiente de ChromeDriver la primera vez que construyes un driver: no hace falta un servidor Selenium aparte ni instalar el driver manualmente (Chrome sí debe estar ya instalado en la máquina).

const { Builder, Browser } = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');
const { A11yCoreBuilder } = require('@surea11y/selenium');
 
const options = new chrome.Options().addArguments('--headless=new');
const driver = await new Builder().forBrowser(Browser.CHROME).setChromeOptions(options).build();
await driver.get('https://example.com/');
 
const results = await new A11yCoreBuilder({ driver })
.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 driver.quit();

El builder recibe { driver } (un WebDriver de Selenium), mientras que Puppeteer/Playwright reciben { page }: esa es la única diferencia de construcción. Todo lo demás es idéntico.

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.