WCAG 2.2 explicado: la guía práctica de accesibilidad web para developers
Los 9 criterios nuevos de WCAG 2.2 explicados sin jerga, qué nivel de conformidad te exige realmente la ley y cómo auditar tu web con herramientas reales.
Durante años, “accesibilidad web” fue la sección que se dejaba para el final del sprint, si es que llegaba a entrar. En 2026 eso ha dejado de ser una opción para una parte enorme de la web europea: la European Accessibility Act (EAA) es obligatoria desde el 28 de junio de 2025, y exige que webs, apps y servicios digitales cumplan WCAG 2.2 nivel AA. No es una recomendación de buenas prácticas; es una directiva con sanciones que en algunos estados miembros llegan a millones de euros.
La buena noticia es que WCAG 2.2 no es un texto legal indescifrable. Es una lista de criterios técnicos, muchos de ellos tan concretos como “este botón debe medir al menos 24×24 píxeles”. Esta guía traduce esos criterios a decisiones que tomas mientras escribes HTML, CSS y JavaScript, sin la jerga de consultoría legal que suele rodear el tema.
Qué cambia (y qué no) respecto a WCAG 2.1
WCAG 2.2 se publicó como recomendación en octubre de 2023 y añade nueve criterios de éxito nuevos sobre la base de WCAG 2.1, además de retirar un criterio obsoleto (4.1.1 Parsing, que dependía de validadores HTML que ya no reflejan cómo procesan HTML los navegadores modernos). No es una versión que sustituya conceptualmente a la anterior: es una ampliación centrada en tres colectivos que la 2.1 cubría peor —personas con baja visión, discapacidad cognitiva o de aprendizaje, y movilidad reducida en el uso de puntero o táctil.
Niveles A, AA y AAA, sin rodeos
WCAG organiza sus criterios en tres niveles de conformidad acumulativos:
- Nivel A: el mínimo indispensable. Sin él, ciertos usuarios no pueden usar la web en absoluto (por ejemplo, contenido que depende solo del color, o funcionalidad que solo funciona con ratón).
- Nivel AA: el nivel que exige la inmensa mayoría de la legislación del mundo, incluida la EAA y la norma europea EN 301 549. Es el objetivo real para cualquier proyecto profesional.
- Nivel AAA: el más estricto. El propio W3C reconoce que no es realista exigirlo a un sitio completo, porque algunos criterios AAA entran en conflicto con decisiones de diseño legítimas (por ejemplo, el contraste de color AAA es tan alto que limita mucho la paleta). Se aplica de forma selectiva, no como objetivo global.
Si tu jefe de proyecto te pregunta “¿cumplimos WCAG?”, la pregunta bien formulada es “¿cumplimos WCAG 2.2 nivel AA?”. Eso es lo que audita un organismo de control y lo que exige la EAA a productos y servicios digitales dirigidos a la Unión Europea.
Los nueve criterios nuevos de WCAG 2.2
Aquí está la lista completa, con el nivel y qué implica en código real.
| Criterio | Nombre | Nivel | Qué exige |
|---|---|---|---|
| 2.4.11 | Focus Not Obscured (Minimum) | AA | El elemento con foco de teclado no puede quedar totalmente oculto tras un header sticky, un banner de cookies o un widget de chat. |
| 2.4.12 | Focus Not Obscured (Enhanced) | AAA | Versión estricta: ninguna parte del elemento con foco puede quedar tapada. |
| 2.4.13 | Focus Appearance | AAA | El indicador de foco debe tener un contraste mínimo de 3:1 y un grosor de al menos 2px de perímetro respecto al estado sin foco. |
| 2.5.7 | Dragging Movements | AA | Toda acción que dependa de arrastrar (sliders, reordenar listas, mapas) necesita una alternativa de un solo toque o clic. |
| 2.5.8 | Target Size (Minimum) | AA | Los objetivos táctiles interactivos deben medir al menos 24×24 píxeles CSS, salvo excepciones por espaciado suficiente entre elementos pequeños. |
| 3.2.6 | Consistent Help | A | Si ofreces ayuda (chat, teléfono, FAQ, formulario de contacto), debe aparecer en el mismo lugar relativo en todas las páginas donde exista. |
| 3.3.7 | Redundant Entry | A | No pidas al usuario un dato que ya introdujo antes en el mismo proceso, salvo que sea esencial (por ejemplo, confirmar una contraseña). |
| 3.3.8 | Accessible Authentication (Minimum) | AA | El login no puede depender únicamente de una prueba cognitiva (resolver un puzzle, recordar y transcribir un código) sin alternativa: permite pegar contraseñas, usa gestores de contraseñas, ofrece passkeys o enlaces mágicos. |
| 3.3.9 | Accessible Authentication (Enhanced) | AAA | Versión estricta: ninguna prueba cognitiva en absoluto, ni siquiera con alternativa. |
De los nueve, 2.5.8 (Target Size) y 3.3.8 (Accessible Authentication) son los que más código real tocan en un proyecto típico. El primero afecta a cualquier botón, icono clicable o enlace en una barra de navegación móvil:
/* Antes: un icono de 16px difícil de acertar en móvil */
.icon-button {
width: 16px;
height: 16px;
}
/* Después: área de toque real de al menos 24x24,
aunque el icono visual siga siendo pequeño */
.icon-button {
width: 16px;
height: 16px;
padding: 8px; /* el área clicable total sube a 32x32 */
box-sizing: content-box;
}
Y el segundo prohíbe patrones de login que hoy siguen siendo comunes, como CAPTCHAs que exigen transcribir texto distorsionado sin alternativa de audio, o bloquear el pegado de contraseñas en el campo de password (una “protección” que en realidad empuja a la gente a usar contraseñas más débiles y fáciles de recordar).
<!-- Evita esto: bloquea gestores de contraseñas y el propio pegado -->
<input type="password" onpaste="return false" />
<!-- Así el usuario puede pegar desde su gestor de contraseñas -->
<input type="password" autocomplete="current-password" />
Checklist práctica para el día a día
No hace falta memorizar los 86 criterios de WCAG 2.2 AA. La mayoría de problemas reales en producción se concentran en un puñado de decisiones repetidas:
- HTML semántico primero:
<button>para acciones,<a>para navegación, encabezados (h1-h6) en orden jerárquico sin saltos,<label>asociado a cada campo de formulario. - Navegación por teclado completa: todo lo que se activa con clic debe activarse con
Tab+Enter/Espacio, en un orden lógico, sin trampas de foco (focus traps) en modales que no se puedan cerrar conEsc. - Foco visible y no tapado: no elimines el
outlinepor defecto sin sustituirlo por un indicador igual de visible (criterios 2.4.11 y 2.4.13). - Contraste de color: mínimo 4.5:1 para texto normal y 3:1 para texto grande, en nivel AA. Herramientas como el contraste de Chrome DevTools o WebAIM Contrast Checker lo calculan al vuelo.
- Texto alternativo real:
altdescriptivo en imágenes con contenido informativo,alt=""explícito en imágenes puramente decorativas (nunca lo omitas sin más). - Contenido dinámico anunciado: usa
aria-livepara mensajes que aparecen sin recarga (errores de validación, confirmaciones, contadores), o el lector de pantalla los ignora por completo. - Objetivos táctiles de 24×24px mínimo y separación suficiente entre elementos interactivos consecutivos.
- Autenticación sin barreras cognitivas obligatorias: passkeys, gestores de contraseñas permitidos, sin CAPTCHAs sin alternativa.
- Movimiento y animación respetuosos: honra
prefers-reduced-motionpara desactivar animaciones no esenciales.
Herramientas de auditoría: qué mide cada una y dónde falla
Ningún escáner automático certifica accesibilidad por sí solo. Los estudios sobre estas herramientas coinciden en que detectan entre el 30% y el 50% de los problemas reales; el resto requiere revisión manual.
- axe DevTools (Deque): motor que usa también Lighthouse por debajo. Extensión de navegador con muy pocos falsos positivos; es la referencia para desarrolladores que quieren un informe técnico fiable dentro del propio flujo de trabajo.
- WAVE (WebAIM): superpone iconos y anotaciones directamente sobre la página analizada. Es la mejor opción para revisiones visuales rápidas o para explicar un problema a alguien no técnico.
- Lighthouse (Chrome DevTools / CI): usa axe-core internamente pero solo aplica un subconjunto de reglas con una ponderación propia para calcular su puntuación de accesibilidad. Útil para detectar regresiones en cada build, no como auditoría completa.
Ninguna de las tres sustituye la prueba manual: navegar la página entera solo con teclado, y probarla con un lector de pantalla real (VoiceOver en macOS/iOS, NVDA o Narrator en Windows). Cosas como “¿tiene sentido el orden de lectura?” o “¿el mensaje de error se anuncia de verdad?” solo se detectan así.
Por qué esto también es un tema de SEO y rendimiento
Accesibilidad, SEO técnico y rendimiento comparten más base técnica de la que parece: HTML semántico bien estructurado ayuda tanto a un lector de pantalla como a un crawler a entender la jerarquía de la página, y muchas de las señales que miden Core Web Vitals —como reservar espacio para evitar saltos de layout— también evitan que el contenido se mueva de forma impredecible para alguien que navega con zoom o con un lector de pantalla. No son tres disciplinas separadas que se auditan en momentos distintos: son restricciones que, bien resueltas a nivel de marcado, se refuerzan entre sí.
La recomendación práctica para 2026 es simple: trata WCAG 2.2 AA como un requisito de producción, no como una fase de QA posterior. Es más barato construir con foco visible, contraste correcto y HTML semántico desde el primer commit que auditar y parchear 200 páginas después de un requerimiento legal.
Artículos relacionados
Optimización de imágenes en la web moderna: formatos, lazy loading y CDN
Formatos de imagen, srcset/sizes, lazy loading nativo y CDN de transformación on-the-fly: la guía técnica completa para dejar de servir imágenes de más.
Islands architecture: cómo funciona y por qué está ganando terreno
Hidratar toda una aplicación para que un botón funcione es el problema que la arquitectura de islas vino a resolver. Cómo funciona por dentro, cómo la implementa Astro y qué se pierde a cambio de lo que se gana.
Cómo auditar y mejorar el rendimiento de una web paso a paso
Un método concreto para auditar rendimiento: de los datos de campo (CrUX) al diagnóstico de laboratorio, con un ejemplo de auditoría completo.