Contraste de Color: Directrices WCAG para diseño accesible

Aprende a verificar y corregir ratios de contraste de color para cumplimiento WCAG 2.1 AA/AAA, con consejos prácticos para diseño UI accesible.

7 min de lectura Accesibilidad · WCAG · Color 6 secciones + FAQ

El contraste de color es uno de los requisitos de accesibilidad más frecuentemente violados en la web — y uno de los más fáciles de corregir. Un contraste deficiente entre el texto y su fondo hace el contenido ilegible para usuarios con baja visión, daltonismo o en condiciones de mucha luz. WCAG 2.1 define umbrales numéricos precisos para ratios de contraste aceptables.

Esta guía explica cómo se calculan los ratios de contraste, qué significan los niveles WCAG en la práctica, dónde el contraste falla más comúnmente en diseños reales y cómo corregir esos fallos sistemáticamente.

Qué es el ratio de contraste de color

El ratio de contraste de color es una medida numérica de la diferencia en luminancia percibida entre dos colores — típicamente texto y fondo. El ratio va de 1:1 (colores idénticos, sin contraste) a 21:1 (negro puro sobre blanco puro, contraste máximo). La fórmula compara la luminancia relativa del color más claro (L1) con el más oscuro (L2): contraste = (L1 + 0.05) / (L2 + 0.05). Un ratio de 4.5:1 significa que el color más claro es 4.5 veces más luminante que el más oscuro.

Herramienta gratuita Verificador de Contraste de Color Verifica instantáneamente el cumplimiento WCAG 2.1 AA/AAA para dos colores cualesquiera

Niveles WCAG 2.1 (A/AA/AAA)

WCAG 2.1 define tres niveles de conformidad. El nivel A es el mínimo. El nivel AA es el estándar legal e industrial en la mayoría de países. El nivel AAA es el más alto. Para contraste de texto: el texto normal (menor de 18pt o 14pt negrita) requiere 4.5:1 para AA y 7:1 para AAA. El texto grande (18pt+ o 14pt+ negrita) requiere 3:1 para AA y 4.5:1 para AAA. Los componentes UI requieren 3:1 para AA.

Cómo calcular la luminancia

La luminancia relativa se calcula a partir de valores RGB linealizados. La fórmula tiene en cuenta la respuesta no lineal del ojo humano a la luz. Se aplican pesos perceptuales (rojo=0.2126, verde=0.7152, azul=0.0722). El canal verde contribuye más a la luminosidad percibida — por eso el verde puro (#00FF00) tiene mayor luminancia que el azul puro (#0000FF).

/* Cálculo de luminancia (JavaScript) */
function getLuminance(r, g, b) {
  const [rs, gs, bs] = [r, g, b].map(c => {
    c = c / 255;
    return c <= 0.03928
      ? c / 12.92
      : Math.pow((c + 0.055) / 1.055, 2.4);
  });
  return 0.2126 * rs + 0.7152 * gs + 0.0722 * bs;
}
Herramienta gratuita Generador de Paletas de Color Genera paletas accesibles con conciencia de contraste integrada

Fallos de contraste comunes

Los fallos de contraste más frecuentes en diseños reales: texto gris claro sobre fondo blanco (el texto atenuado falla con ratios de ~2.5:1), colores de marca de saturación media usados como texto sobre blanco, enlaces de texto de color sin subrayado sobre fondos de color, estados deshabilitados con poca diferencia visual, elementos UI solo con icono con contraste insuficiente. Los diseños en modo oscuro suelen introducir nuevos fallos.

Corregir contraste en temas oscuro/claro

Al construir un sistema de diseño de doble tema, es esencial probar el contraste en ambos modos de forma independiente. El mismo par fondo-texto que supera AA en modo claro puede fallar en modo oscuro si simplemente se invierte el tono sin recalcular el contraste. El enfoque práctico: definir escalas de color separadas para cada tema. Para el color de marca primario, puede necesitarse un paso de luminosidad diferente para el modo oscuro.

Herramientas y automatización

La verificación manual en tiempo de diseño no es suficiente. Las herramientas de auditoría de accesibilidad automatizadas (axe, Lighthouse, Pa11y) pueden detectar fallos de contraste en tiempo de construcción o en pipelines CI. La herramienta Color Contrast de PixCode acepta dos colores cualesquiera y devuelve el ratio, el nivel WCAG y sugerencias de alternativas conformes.

Herramienta gratuita Conversor HEX a RGB Convierte colores al formato necesario para cálculos de luminancia

Preguntas Frecuentes

¿Qué es el ratio de contraste de color en accesibilidad web? +
El ratio de contraste de color es una medida numérica de la diferencia de luminancia entre dos colores (típicamente texto y fondo). Va de 1:1 (sin contraste) a 21:1 (negro sobre blanco). WCAG 2.1 requiere mínimo 4.5:1 para texto normal (nivel AA) y 3:1 para texto grande.
¿Cómo calcula WCAG el ratio de contraste? +
Ratio de contraste WCAG = (L1 + 0.05) / (L2 + 0.05), donde L1 es la luminancia relativa del color más claro y L2 la del más oscuro. La luminancia relativa se calcula a partir de valores RGB linealizados ponderados: L = 0.2126R + 0.7152G + 0.0722B (tras corrección gamma).
¿Cuál es la diferencia entre WCAG AA y AAA para contraste? +
AA requiere 4.5:1 para texto normal y 3:1 para texto grande. AAA requiere 7:1 para texto normal y 4.5:1 para texto grande. AA es el estándar legal y práctico para la mayoría de contenido web.
¿El ratio de contraste se aplica también a iconos e imágenes? +
Sí. El criterio WCAG 2.1 1.4.11 (Contraste no textual) requiere que los componentes UI y objetos gráficos informativos tengan al menos 3:1 de contraste con los colores adyacentes. Las imágenes puramente decorativas están exentas.
¿Por qué los colores de marca suelen incumplir los requisitos de contraste? +
Los colores de marca se eligen típicamente por atractivo estético, no por conformidad de contraste. Los colores de saturación media en el rango de luminosidad media (L: 40–60% en HSL) producen ratios de 2:1–3.5:1 sobre fondo blanco. La solución: usar una variante más oscura o clara del color de marca para el texto.
¿El contraste debe verificarse por separado para el modo oscuro? +
Sí. El contraste debe evaluarse de forma independiente para cada tema. Un par de colores que supera 4.5:1 sobre fondo blanco puede fallar sobre fondo oscuro si se usa el mismo tono sin ajustar la luminosidad.
¿Puedo usar el verificador de contraste de PixCode para cualquier formato de color? +
La herramienta Color Contrast de PixCode acepta entradas HEX, RGB y HSL para colores de primer plano y fondo. Devuelve el ratio de contraste, estado de superación/fallo WCAG AA y AAA para texto normal y grande.