Uso independiente
Cuándo usarla
Para una comprobación manual contra una página abierta en un navegador real, un bookmarklet o cualquier otro contexto sin driver de automatización y sin paso de compilación al que recurrir.
Uso
@surea11y/core incluye surea11y.browser.js en la raíz del paquete, un bundle generado a partir de las mismas fuentes de reglas que el paquete de Node. Cargarlo directamente define una única variable global, a11ycore:
<script src="node_modules/@surea11y/core/surea11y.browser.js"></script><script>const result = a11ycore.runa11yCoreInPage(location.href, null, {}, null);console.log(result.checksResults.filter((r) => r.outcome === 'fail'));</script>
a11ycore.runa11yCoreInPage es exactamente la misma función que utilizan internamente las integraciones. El bundle existe solo para resolver el problema de cargarla sin require/un sistema de módulos, no para añadir una superficie de API separada.
El bundle solo lleva inglés. Cualquier otro idioma se distribuye junto a él como su propio archivo. Carga uno después del bundle y ese idioma queda disponible:
<script src="node_modules/@surea11y/core/surea11y.browser.js"></script><script src="node_modules/@surea11y/core/surea11y.i18n.de.js"></script><script>const result = a11ycore.runa11yCoreInPage(location.href, null, { locale: 'de' }, null);</script>
Pide un idioma cuyo archivo no hayas cargado y obtienes inglés, no un error (consulta Locales).
Excluido deliberadamente del bundle: runa11yCoreAcrossFrames/a11yCoreEnableFrameResponder (el análisis entre frames necesita que el frame incrustado también cargue el motor y se adhiera. No puede resolverse con una única etiqueta <script> aislada). Usa el paquete npm directamente si lo necesitas (consulta INTEGRATION.md).
require('@surea11y/core') directamente, sin ninguna integración (binding), es la otra vía independiente. Esto es el Patrón 1/Patrón 2 en INTEGRATION.md: jsdom en Node sin navegador real, o bien manejar tú mismo Puppeteer/Playwright en lugar de pasar por una integración.