¿Qué es el ratio de contraste WCAG?
El ratio de contraste es una relación numérica entre la luminancia relativa de dos colores, que va de 1:1 (mismo color, sin contraste) a 21:1 (blanco sobre negro, máximo contraste). Lo define la fórmula: (L1 + 0.05) / (L2 + 0.05), donde L1 es la luminancia más alta. WCAG 2.1 establece tres niveles: A (mínimo), AA (estándar) y AAA (mejorado). El nivel AA es el más exigido en normativas de accesibilidad web.
Umbrales WCAG AA y AAA
Nivel AA — texto normal (menos de 18pt / 14pt negrita): ratio ≥ 4.5:1. Nivel AA — texto grande (18pt o más, o 14pt en negrita): ratio ≥ 3:1. Nivel AAA — texto normal: ratio ≥ 7:1. Nivel AAA — texto grande: ratio ≥ 4.5:1. Componentes de interfaz y gráficos informativos: ratio ≥ 3:1 (solo AA). Texto decorativo sin información no está sujeto a estos requisitos.
Ejemplo: texto blanco sobre fondo azul
Color de texto: #FFFFFF (blanco). Color de fondo: #1D4ED8 (azul Tailwind blue-700). Luminancia del blanco: 1.0. Luminancia del azul: ≈ 0.0987. Ratio = (1.0 + 0.05) / (0.0987 + 0.05) ≈ 7.12:1. Resultado: pasa WCAG AA y AAA para texto normal. Si usaras blue-400 (#60A5FA) como fondo, el ratio cae a ≈ 3.1:1 y solo pasaría AA para texto grande.
Cómo mejorar el contraste en tu diseño
Oscurece el color de fondo o aclara el texto hasta alcanzar el ratio objetivo. En HSL, reducir la L del fondo o aumentar la L del texto suele ser suficiente. Evita pares de colores complementarios saturados (ej. rojo sobre verde): tienen ratio bajo aunque parezcan "contrastados" visualmente. Para grises, busca diferencias de luminosidad de al menos 50 puntos en HSL. Usa este verificador durante el diseño, no solo al final.