ultra11y — auditar el RGAA 4.1.2 y escribir accesible
En accesibilidad, una herramienta automática solo ve una parte de los problemas.
ultra11y lo asume con una división del trabajo: el motor determinista y
sin dependencias (node scripts/ultra11y.mjs <comando> — sin npm install,
sin clave) hace el trabajo mecánico — detectar las no conformidades
verificables por máquina y vincularlas al criterio RGAA correcto; usted hace el
juicio — pertinencia de alternativas, etiquetas en contexto, orden de lectura
— y los criterios que exigen una representación (contraste, foco, zoom). Compuertas
impiden que sobreviva cualquier no conformidad alucinada.
Reglas principales:
- Nunca inventar una no conformidad: cada
NCcita un elemento real y solucionable (checklo verifica).- HTML nativo primero, ARIA al final; no duplique una semántica implícita.
- El residuo es explícito: todo criterio de representación/juicio no probado va a «a evaluar manualmente», nunca marcado conforme en silencio.
Elegir según la situación
- «Auditar / informe de conformidad» →
node scripts/ultra11y.mjs audit … --json, luegoreport, luegocheck; leerreferences/audit.md. - «En un repositorio grande / auditar inteligentemente» → enfocarse:
--changed(diff git), priorización de plantillas, dedup,--max-files; leerreferences/scale.md. - «Implementar las correcciones» →
fix(dry-run por defecto,--writeaplica las correcciones seguras, propone el resto sin inventar nada); leerreferences/fix.md. - «Guardia automática en el repo (hook / CI)» →
init --hook/--ci/--baseline(solo falla en nuevas no conformidades); leerreferences/automation.md. - «Hacer accesible este código / revisarlo» → auditar el fragmento
(
audit - < componente.html) siguiendo nativo-primero; leerreferences/authoring.mdyreferences/forbidden-patterns.md. - «Qué significa el criterio X / qué temática» →
criteria; verreferences/criteria.md. - «Lectura internacional (WCAG / EN 301 549 / Section 508)» →
--standard wcagenreport/criteria; verreferences/methodology.md. - «Auditoría de alta confianza» →
verify --report … --semantic; verreferences/verify.md. Metodología y formato:references/methodology.md. - «Verificar contraste / representación (tier opcional Docker)» →
scan <url> --merge …(axe-core en un navegador headless); verreferences/dynamic.md.
Ayuda memoria de comandos
node scripts/ultra11y.mjs audit "src/**/*.html" --json > audit.json
node scripts/ultra11y.mjs audit - < componente.html # HTML vía stdin
node scripts/ultra11y.mjs audit "src/**/*.tsx" --jsx # JSX/TSX best-effort
node scripts/ultra11y.mjs audit --changed --json # solo el diff git (repositorio grande)
node scripts/ultra11y.mjs report --in audit.json --out audits
node scripts/ultra11y.mjs report --in audit.json --standard wcag # vista WCAG (presentación)
node scripts/ultra11y.mjs criteria 11.1 # un criterio + sus pruebas
node scripts/ultra11y.mjs criteria --theme 8 --list # una temática / la lista
node scripts/ultra11y.mjs check --report audits/rgaa-AAAA-MM-JJ.md
node scripts/ultra11y.mjs verify --report audits/rgaa-AAAA-MM-JJ.md --semantic
node scripts/ultra11y.mjs fix "src/**/*.html" # dry-run ; --write aplica
node scripts/ultra11y.mjs init --hook --baseline # guardia de regresión (hook + baseline)
node scripts/ultra11y.mjs scan https://ejemplo.es --merge audits/audit-latest.json # tier Docker
Salida máquina en todas partes con --json. Informe en español por defecto, --lang en disponible.
Combinar motor, juicio y riesgo residual
La salida audit clasifica cada criterio: C/NC/NA para el subconjunto
estático; manual para los criterios de representación/juicio (listados en
residualRisks). Las NC del motor son candidatos confirmados (citados
archivo:línea). Usted debe decidir los criterios manual, y marcar los
criterios de representación «a verificar manualmente». El informe solo está completo
cuando cada criterio aplicable es C/NC/NA justificado y cada riesgo
residual está nombrado.
Qué no hacer
- Inventar una no conformidad que el motor no encontró y que usted no puede
ver (el contraste sobre colores inline literales se decide en estático;
el contraste calculado — CSS externo, variables — pasa por
scan(tier Docker) o se verifica en la representación antes de declararse). - Añadir ARIA que duplique la semántica nativa.
- Marcar un criterio de representación/juicio como «conforme» sin verificación humana.
- Editar manualmente
references/criteria.md(generado desde el repositorio).
Alcance
Motor estático: offline, determinista, sin dependencias; entradas HTML +
JSX/TSX (best-effort) + stdin. Los criterios de representación (contraste calculado,
reflow) los cubre el tier opcional scan (axe-core en Docker); el
foco visible, el zoom texto 200% y los contenidos al pasar el ratón quedan en revisión
humana (riesgo residual). Datos: RGAA 4.1.2 © DINUM, Licencia Abierta / Etalab
2.0 (ver NOTICE).