AA frente a AAA: ¿a qué nivel deberías apuntar?
Pon dos versiones de la misma página de documentación una al lado de la otra: la de la izquierda cumple el contraste WCAG AA, la de la derecha AAA. A simple vista son casi gemelas: los encabezados coinciden, la maquetación coincide. Míralas de cerca y verás que el texto de cuerpo de la página derecha es más oscuro, sus leyendas han perdido su sutileza gris claro y los enlaces en azul de marca se han oscurecido hasta un azul marino. Que esa segunda página sea una mejora o un coste depende por completo de para qué sirve la página, que es la verdadera pregunta detrás de los niveles.
Apunta a AA —4,5:1 para el texto de cuerpo, 3:1 para el texto grande y los componentes de interfaz— como el suelo para todo: es lo que las leyes y los contratos quieren decir con “conforme a WCAG”. Trata el contraste AAA —7:1 para cuerpo, 4,5:1 para texto grande— como una mejora selectiva para las superficies con mucha lectura, no como un objetivo para todo el sitio; el propio W3C desaconseja exigir AAA en sitios enteros. El resto de este artículo de nuestra guía de contraste es la decisión: qué cuesta cada nivel, qué sobrevive a él y dónde el AAA se gana de verdad su sitio.
¿Qué significan de verdad A, AA y AAA?
Las tres letras son niveles de conformidad acumulativos: cada nivel incluye
todo lo que está por debajo, y cada criterio de éxito de WCAG se asigna a un
nivel. Para el contraste en concreto,
dos criterios llevan los números.
En AA, Contraste (mínimo) pide 4,5:1 para el texto de tamaño normal y 3:1
para el texto grande: 24px o más en
peso normal, 18,66px o más en negrita. En AAA,
Contraste (mejorado)
eleva los suelos a 7:1 para el texto normal y 4,5:1 para el grande. Dos
puntos de anclaje hacen concretos los niveles: sobre blanco, el gris más
claro que aprueba como texto de cuerpo en AA es #767676 (≈4,5:1); para
aprobar AAA ese mismo gris debe oscurecerse hasta ≈#595959 (≈7,0:1).
La conformidad se declara por criterio, no por sensación: un producto puede cumplir el criterio de contraste AA en todas partes y el AAA en su vista de lectura, y decir “somos AAA” afirma mucho más que el contraste.
¿Por qué AA es la respuesta estándar?
Porque AA es lo que el mundo exterior quiere decir cuando dice WCAG. La cadena de normas de la Ley Europea de Accesibilidad pasa por la EN 301 549 hasta el nivel AA de WCAG 2.1; la práctica estadounidense bajo la ADA y la Sección 508 remite al mismo nivel; las listas de verificación de compras y las cláusulas de contrato que dicen “conforme a WCAG” significan AA salvo que digan lo contrario. El AAA no aparece prácticamente en ninguna regulación como requisito general. Así que AA no es la opción tímida: es el nivel al que está calibrado todo el ecosistema de conformidad, y cumplirlo del todo es más de lo que logran muchos productos que ya están en el mercado.
¿Por qué el W3C desaconseja el AAA generalizado?
Esta postura viene del propio estándar, y vale la pena citar el fondo: la guía de conformidad del W3C afirma que no se recomienda exigir AAA como política general para sitios enteros, porque algunos contenidos no pueden satisfacer todos los criterios AAA. Para el contraste, el coste honesto es el espacio de la paleta, y se puede calcular en lugar de afirmar.
Sobre un fondo blanco, el suelo de cuerpo AA admite todos los grises hasta
#767676. El suelo AAA se detiene en ≈#595959. La banda entre ambos —los
grises de #595959 a #767676— es justo el rango que las paletas usan para
el texto secundario, las leyendas, los marcadores de posición y las marcas de
tiempo: visibles pero discretos. En AAA toda esa banda de tonos medios queda
vetada para el texto de tamaño normal, lo que significa que la paleta pierde
su herramienta principal para la jerarquía tipográfica por debajo del umbral
de tamaño. La sutileza se vuelve más difícil justo donde hace su trabajo.
Los colores de marca de luminosidad media salen peor parados: quedan del todo
fuera del uso como texto de cuerpo. El azul de marca #2563eb aprueba AA
sobre blanco con ≈5,2:1 pero no llega a 7:1; incluso oscurecido un paso
entero hasta #1D4ED8 solo alcanza ≈6,7:1. El tono no vuelve a ser legal
para texto de cuerpo hasta alrededor de #1E40AF (≈8,7:1): un azul marino
que, a la vista, ya no es el color de marca. Con AAA, el texto de cuerpo en
color es casi una categoría cerrada.
¿Qué sobrevive en ambos objetivos?
Los mismos cinco roles de texto sobre blanco, comprobados contra ambos suelos, con cada número calculado:
| Rol | Color | Ratio sobre blanco | AA 4,5:1 | AAA 7:1 | Arreglo AAA |
|---|---|---|---|---|---|
| texto primario | #111827 | ≈17,7:1 | aprueba | aprueba | no hace falta |
| texto secundario | #6B7280 | ≈4,8:1 | aprueba | falla | oscurecer a #4B5563 (≈7,6:1) |
| atenuado / leyenda | #767676 | ≈4,5:1 | aprueba, por poco | falla | oscurecer a #595959 (≈7,0:1) |
| enlace / marca | #2563eb | ≈5,2:1 | aprueba | falla | ≈#1E40AF (≈8,7:1) |
| texto de error | #DC2626 | ≈4,8:1 | aprueba | falla | ≈#991B1B (≈8,3:1) |
Cuatro de los cinco roles necesitan oscurecerse, y los arreglos se agrupan:
el texto secundario, el atenuado y el primario acaban comprimidos en una
banda oscura estrecha, así que la distancia visual que antes separaba tres
niveles de texto ahora tiene que caber entre #4B5563 y #111827. La
jerarquía sobrevive, pero con menos espacio para
respirar, y los dos roles en
color se desplazan lo bastante como para leerse como colores distintos, lo
que es una conversación de marca, no solo de contraste.
Abre esta paleta en ambos objetivos en Scale Composer: los mismos roles derivados dos veces, AA junto a AAA, con cada ratio calculado en el momento de la derivación y los roles que fallan el suelo más alto vueltos a derivar para cumplirlo.

¿Cuándo se gana su sitio el contraste AAA?
Se repiten tres situaciones. Productos con mucha lectura —documentación, noticias, lectores de libros electrónicos, cualquier formato largo— donde los usuarios pasan tiempo sostenido en el texto de cuerpo y la justificación del criterio (lectores con visión moderadamente baja, en torno a 20/80, que leen sin tecnología de asistencia) describe a usuarios reales en volumen real. Audiencias que tienden a mayores o con baja visión: la sensibilidad al contraste disminuye con la edad, así que un producto para jubilados atiende justo a la población para la que está calibrado el 7:1. Servicios públicos y de salud, donde la audiencia es todo el mundo por definición y las directrices de varios países ya empujan más allá de los mínimos.
Y en cada caso, de forma selectiva. La postura coherente es texto de cuerpo a 7:1 mientras que el cromo de la interfaz, las leyendas y los controles se quedan en AA: comodidad de lectura donde se lee, espacio de paleta donde no. Es una decisión por derivación, no un interruptor de todo el sitio: en Scale Composer el suelo se puede elegir por objetivo, así que una superficie de lectura puede derivarse contra AAA mientras el resto del producto se queda en AA.
¿Cuál es la escalera pragmática?
Tres peldaños, en orden:
- AA en todas partes, cumplido de verdad. Cada rol de texto, cada superficie, ambos temas: verificado en lugar de dado por hecho. Este es el listón de conformidad y un logro real por sí mismo.
- AAA para el texto de cuerpo donde la lectura es el producto. La vista de artículo, la página de documentación, el modo lectura: mejorados a propósito, con los roles oscurecidos de la tabla de arriba.
prefers-contrastpara el resto. Los usuarios que necesitan más contraste en todas partes pueden decirlo; una hoja de estilosprefers-contrast: moreque intercambia los roles de texto derivados para AAA los atiende sin imponer el coste a todo el mundo.
La escalera invierte esfuerzo donde está la evidencia: suelos para todos, mejora donde se concentra la lectura, elección del usuario para la cola larga.
Prueba ambos objetivos en la misma paleta
El coste de 7:1 es más fácil de juzgar con tus propios colores, no con nuestra tabla. Deriva tu paleta en AA y luego cambia el objetivo a AAA: los roles que fallan el suelo más alto se vuelven a derivar más oscuros en su sitio, y puedes ver exactamente cuáles de tus colores sobreviven y cuáles vuelven en azul marino.