Verificador de contraste de colores

Comprueba las relaciones de contraste WCAG 2.1 para accesibilidad.

Tus datos no salen de tu dispositivo
Texto grande (24 px en negrita)
Texto normal a 16 px · El veloz murciélago hindú comía feliz cardillo y kiwi.
-
Relación de contraste
AA Normal
≥ 4.5:1
-
AA Grande
≥ 3:1
-
AAA Normal
≥ 7:1
-
AAA Grande
≥ 4.5:1
-

Cómo usar

  1. Elige un color de primer plano (texto) y un color de fondo.
  2. La relación de contraste se actualiza al instante.
  3. Comprueba las notas WCAG (AA/AAA) para texto normal y grande.
  4. Haz clic en Invertir para intercambiar los colores.

Preguntas frecuentes

¿Qué es WCAG?

WCAG (Web Content Accessibility Guidelines) son las normas internacionales para hacer accesible el contenido web. El nivel AA es el estándar más requerido. El nivel AAA es el más alto.

¿Qué cuenta como «texto grande»?

El texto grande se define como al menos 18 pt (24 px) o 14 pt (18,66 px) en negrita. Tiene una exigencia de contraste menor porque es más fácil de leer.

¿A qué relación de contraste apuntar?

Para el cuerpo de texto, apunta al menos a 4,5 : 1 (AA). Para la mejor accesibilidad, apunta a 7 : 1 (AAA). Los títulos y textos grandes necesitan al menos 3 : 1.

Qué mide realmente WCAG

El «contraste» en la accesibilidad web no es «lo diferentes que se ven los colores», sino una relación precisa de luminancia relativa entre dos colores. La luminancia es una aproximación perceptiva de cuánto brillo aparenta un color para un observador con visión típica. La relación va de 1 : 1 (dos colores con luminancia idéntica, invisibles uno contra otro) a 21 : 1 (negro puro #000000 contra blanco puro #ffffff). Tres criterios de éxito normativos de WCAG usan esta relación:

El umbral de 4,5 : 1 no es arbitrario. La propia derivación de WCAG parte de una referencia ANSI de 3 : 1 para la visión normal multiplicada por 1,5 para los usuarios con una agudeza 20/40 (el umbral que suele usarse para definir legalmente la «baja visión»). 4,5 = 3 × 1,5. El umbral AAA de 7 : 1 extiende la misma lógica hasta una agudeza de aproximadamente 20/80. Los logotipos, los nombres de marca y el texto incidental o decorativo están exentos, pero todo lo demás cae bajo la regla.

La fórmula

La fórmula de contraste de la técnica G18 de WCAG tiene tres pasos. Las entradas son valores de canal sRGB de 8 bits (0-255), cada uno convertido primero a un rango de 0 a 1:

  1. Linealizar el sRGB (deshacer la curva gamma). Para cada canal V: si V ≤ 0,04045, V_linear = V ÷ 12,92; en caso contrario, V_linear = ((V + 0,055) ÷ 1,055)^2,4. (Los documentos antiguos de WCAG usaban 0,03928; el W3C lo actualizó por fe de erratas a 0,04045 para coincidir con la especificación formal de sRGB; la diferencia numérica es insignificante.)
  2. Calcular la luminancia relativa: L = 0,2126·R + 0,7152·G + 0,0722·B (linealizados). Los pesos provienen de la función de luminosidad fotópica del observador estándar CIE 1931: el ojo humano es más sensible al verde (~71 %), luego al rojo (~21 %) y luego al azul (~7 %). Por eso el texto azul puro sobre blanco puede no cumplir el contraste aunque los colores se vean muy diferentes.
  3. Tomar la relación: (L1 + 0,05) ÷ (L2 + 0,05), donde L1 es el color más claro y L2 el más oscuro. El desplazamiento de 0,05 modela el reflejo ambiental en una pantalla típica y evita que la relación se dispare cuando uno de los colores es casi negro.

Ejemplo resuelto para negro sobre blanco: el blanco tiene L = 1,0 y el negro tiene L = 0, así que la relación es (1 + 0,05) ÷ (0 + 0,05) = 21. Ese es el contraste máximo posible en sRGB.

¿Qué cuenta como «texto grande»?

WCAG define el texto de gran tamaño como de al menos 18 puntos (peso normal) o 14 puntos en negrita. Convertido a píxeles CSS con la equivalencia indicada por el W3C de 1 pt = 1,333 px:

La mayoría de los navegadores usan 16 px / 12 pt para el cuerpo de texto por defecto, no grande. Un error común es tratar cualquier título como grande; un <h3> con estilo de 18 px normal sigue cayendo bajo la regla de 4,5 : 1 para el texto normal.

El famoso caso límite: #767676 sobre blanco

Los diseñadores que persiguen el minimalismo a menudo eligen grises medios para el cuerpo de texto. Dos valores que se ven idénticos al ojo están en lados opuestos de la línea de WCAG:

Primer planoFondoRelaciónAA Normal
#000000#ffffff21.00Cumple (máx.)
#595959#ffffff~7.0Cumple + AAA
#767676#ffffff4.54Cumple (por poco)
#777777#ffffff4.48No cumple
#959595#ffffff3.00No cumple (solo grande)
#ffff00#ffffff1.07No cumple

Un cambio de un solo carácter en el hexadecimal, la diferencia entre #767676 y #777777, hace pasar el mismo gris de aprobado a suspenso, porque WCAG prohíbe explícitamente redondear las proporciones al alza. WebAIM señala específicamente #777777 como un «tono de gris de uso común» que no cumple el nivel AA. Esta única trampa explica una parte medible de los fallos de las auditorías automatizadas en los análisis de sitios reales.

Dónde se queda corta la fórmula

La fórmula de luminancia relativa es rápida y determinista, pero tiene defectos perceptivos bien documentados:

APCA (Accessible Perceptual Contrast Algorithm) es el candidato a reemplazo que se está prototipando para WCAG 3. Devuelve un único valor Lc con signo de aproximadamente −108 a +106, tiene en cuenta la polaridad e incluye una tabla de consulta de peso y tamaño de fuente. APCA es actualmente una referencia beta no comercial, no un objetivo legal de conformidad (los sitios en producción deberían seguir apuntando a WCAG 2.1 / 2.2 AA), pero es una comprobación de legibilidad más precisa, sobre todo para el modo oscuro. Las DevTools de Chrome incluyen una vista previa de APCA en su selector de color.

Por qué esto importa legalmente

WCAG 2.2 se convirtió en Recomendación del W3C el 5 de octubre de 2023, pero los criterios de contraste se mantienen sin cambios desde la 2.1. El contraste de color es uno de los problemas más citados en las demandas por accesibilidad digital, y varias jurisdicciones lo hacen efectivamente obligatorio:

Contraste de color frente a daltonismo

Un punto de confusión habitual: la relación de WCAG se basa en la luminancia y sigue siendo útil para la mayoría de los usuarios daltónicos, ya que una relación de 4,5 : 1 derivada de la luminancia corresponde a una señal perceptiva fuerte incluso cuando se pierden las señales de tono. Por eso los criterios de contraste conviven con un criterio aparte, 1.4.1 Uso del color, que prohíbe basarse solo en el color para transmitir información. El contraste no te dice si un gráfico de rojo frente a verde es legible para una persona con deuteranopía, solo si cada color contrasta individualmente con el fondo del gráfico. Los gráficos y la interfaz con estados necesitan patrones, etiquetas o formas superpuestos al color.

Lista de comprobación práctica

Más preguntas

¿Por qué el amarillo puro sobre blanco no cumple si se ve brillante?

El amarillo (#ffff00) sobre blanco es de 1,07 : 1, casi sin contraste alguno. La fórmula de luminancia pondera el verde al 71 % y el rojo al 21 %, así que el amarillo (R+G) tiene una luminancia muy cercana a la del blanco. El amarillo sobre negro, en cambio, es de 19,56 : 1, una de las combinaciones más legibles que se conocen, razón por la cual se usa en las señales de tráfico y en las advertencias de los cascos de obra.

¿Debería apuntar siempre a AAA?

No. La propia WCAG dice: «No se recomienda que se requiera la conformidad de nivel AAA como política general para sitios completos, porque no es posible satisfacer todos los Criterios de Éxito de nivel AAA para algunos contenidos.» El nivel AA es el objetivo legal casi en todas partes; el AAA es para la lectura informativa de alto riesgo (contenido extenso, documentos gubernamentales destinados al público general, publicaciones que priorizan la accesibilidad).

¿Pueden las herramientas automatizadas detectar todos los fallos de contraste?

No. Las auditorías como axe-core, Lighthouse y similares detectan de forma fiable los fallos de texto sobre color plano, pero no pueden comprobar el texto superpuesto a imágenes de fondo, degradados CSS, fondos de pseudoelementos o colores de borde CSS; esos se marcan como «incompletos» y necesitan revisión manual. Un selector en vivo como este resulta útil por sí solo para muestrear el color de fondo dominante de una imagen y comprobar solo el par de texto y fondo antes de publicar.

¿Esta herramienta admite transparencia / alfa?

Esta página comprueba pares de colores hexadecimales opacos. Si tu texto o fondo usa alfa, el contraste real depende de lo que haya detrás; tendrás que calcular primero el primer plano compuesto y comprobar el color opaco resultante.

¿Se envía algo a un servidor?

No. La fórmula de luminancia y la relación se calculan en tu navegador; los colores nunca salen de tu dispositivo. La página funciona sin conexión una vez cargada.

Herramientas relacionadas

Convertidor de colores Generador de paletas de colores gratis en línea Generador de degradado CSS