CalcOpenly
Español

Comprobador de contraste de colores: WCAG 2.2

Comprueba el contraste WCAG 2.2 entre texto y fondo, con resultados AA y AAA para texto normal, texto grande y componentes de interfaz.

Redactado con herramientas de redacción con IAActualizado Ejemplos verificados: 5

#RRGGBB, un nombre CSS, rgb(), hsl() u oklch().
Probar
Relación de contraste
:1
Relación de contraste: 14,67 :1
Decimales: 2; Hacia cero
AA para texto normal (≥ 4,5:1)
Correcto
AA para texto grande (≥ 3:1)
Correcto
AAA para texto normal (≥ 7:1)
Correcto
AAA para texto grande (≥ 4,5:1)
Correcto
Componentes de interfaz (≥ 3:1)
Correcto
Luminancia del texto
0,0215
Luminancia del fondo
1,0000

#1F2937 sobre #FFFFFF tiene una relación de contraste de 14.67:1 y cumple AA para texto normal; AA para texto grande; AAA para texto normal; AAA para texto grande; Componentes de interfaz.

Texto #1F2937 sobre #FFFFFF

Texto normal, 16 px: El veloz murciélago hindú comía feliz cardillo y kiwi

Texto grande, 24 px (18 pt): El veloz murciélago hindú comía feliz cardillo y kiwi

Texto grande en negrita, 19 px (14 pt): El veloz murciélago hindú comía feliz cardillo y kiwi

Posición de la relación de contraste

ErrorAAAAA134,572114.67:1
Cómo se calcula S
  1. Linealizar cada canal

    Clin={C/12.92C≤0.04045((C+0.055)/1.055)2.4C>0.04045(R,G,B)lin,f=(0.0137,0.0222,0.0382)\begin{aligned} C_{lin} &= \begin{cases} C/12.92 & C \le 0.04045 \\ ((C + 0.055)/1.055)^{2.4} & C > 0.04045\end{cases} \\ (R, G, B)_{lin,f} &= (0.0137, 0.0222, 0.0382) \end{aligned}

    WCAG usa 0,04045 como umbral de transferencia sRGB. El valor anterior, 0,03928, se actualizó en mayo de 2021; ningún canal de 8 bits queda entre ambos umbrales.

  2. Luminancia relativa

    Lf=0.02153,Lb=1.00000L_f = 0.02153,\quad L_b = 1.00000
  3. Relación de contraste (claro entre oscuro)

    1.00000+0.050.02153+0.05=14.6791\frac{1.00000 + 0.05}{0.02153 + 0.05} = 14.6791

    Se compara sin redondear con los umbrales: 4,5 para texto normal en AA; 3 para texto grande e interfaz; y 7 y 4,5 en AAA.

Acerca de Comprobador de contraste de colores: WCAG 2.2

WCAG mide el contraste como (L1 + 0,05) ÷ (L2 + 0,05), donde L1 y L2 son las luminancias relativas del color más claro y del más oscuro. Cada luminancia se obtiene de canales sRGB linealizados, con pesos de 0,2126 para rojo, 0,7152 para verde y 0,0722 para azul. La relación va de 1:1 para colores idénticos a 21:1 para negro sobre blanco.

Diseñadores y desarrolladores lo comprueban antes de publicar textos, botones e iconos. El ejemplo inicial, texto gris pizarra #1F2937 sobre blanco, mide 14,67:1 y supera las cinco comprobaciones. En cambio, #777777 sobre blanco muestra 4,47:1, justo por debajo del 4,5:1 necesario para texto normal en nivel AA.

La relación se trunca a dos decimales y se compara sin redondear, como exige WCAG: 4,499:1 no alcanza el umbral 4,5:1. Aquí f indica el primer plano y b el fondo. Se ignora el canal alfa; mezcla primero un color semitransparente con su fondo.

Comparar los colores que coinciden en la pantalla

El comprobador de contraste WCAG compara un color de texto o primer plano con su fondo. Devuelve la relación de contraste y cinco resultados: AA para texto normal, AA para texto grande, AAA para texto normal, AAA para texto grande y componentes de interfaz. Introduce los colores utilizados por el diseño y lee el resultado correspondiente al elemento que estás revisando.

La pareja inicial es #1F2937 sobre #FFFFFF. La relación calculada es aproximadamente 14,679 y se muestra como 14,67:1. Supera los cinco umbrales. La presentación corta el valor a dos decimales; las decisiones utilizan el resultado completo antes de ese formato.

La herramienta comprueba una pareja de colores. Para evaluar una página completa también hay que revisar los estados, el contenido, los controles y las demás condiciones de accesibilidad que correspondan. Un buen resultado de contraste no informa por sí solo sobre el foco, las etiquetas o el funcionamiento con teclado.

Seguir la luminancia durante el cálculo

El cálculo toma los canales rojo, verde y azul de cada color sRGB, los normaliza entre cero y uno y los transforma a luz lineal. Después combina los canales con los pesos 0,2126, 0,7152 y 0,0722. Estos pesos dan una contribución diferente a cada canal.

La definición de luminancia relativa de WCAG utiliza el umbral de transferencia 0,04045. Por debajo se divide el canal normalizado entre 12,92; por encima se aplica la expresión no lineal. Los números de canal codificados no se utilizan directamente como si fueran medidas de intensidad luminosa.

La relación final es (luminancia más clara + 0,05) ÷ (luminancia más oscura + 0,05). El color claro ocupa siempre el numerador. Por eso intercambiar el primer plano y el fondo conserva la relación matemática. Negro y blanco producen 21:1; dos colores idénticos producen 1:1.

La luminosidad porcentual HSL es otra cantidad. Un azul y un verde con el mismo porcentaje HSL pueden tener luminancias y contrastes diferentes. Para comprobar la combinación, utiliza sus colores reales y no una posición parecida de los deslizadores del selector.

Elegir el umbral que corresponde al contenido

El criterio de contraste mínimo establece 4,5:1 para texto normal y 3:1 para texto grande. Se considera grande el texto de al menos 18 puntos con peso regular o 14 puntos en negrita. Con 96 píxeles CSS por pulgada, corresponden a 24 píxeles y aproximadamente 18,67 píxeles CSS.

El criterio de contraste mejorado utiliza 7:1 para texto normal y 4,5:1 para texto grande. Una combinación apta para un título grande puede seguir siendo insuficiente para una leyenda pequeña.

El contraste no textual aplica 3:1 a la información visual pertinente de controles y gráficos frente a los colores adyacentes. Para utilizar el resultado de interfaz hay que identificar qué parte del dibujo comunica la información necesaria.

En un botón, compara el texto con su relleno y considera por separado la información visual que permite reconocer el control y su estado. En un icono, revisa la parte significativa frente al fondo inmediato. Un gráfico puede exigir varias comparaciones porque sus series se tocan entre sí y con distintos fondos.

Separar el veredicto del redondeo visible

La comparación utiliza el valor sin redondear. Una relación de 4,499:1 no alcanza 4,5:1, aunque redondearla a un decimal produciría 4,5. El corte de la presentación a dos decimales evita algunas apariencias engañosas cerca del límite.

Para #777777 sobre blanco, el cálculo da aproximadamente 4,4781 y la pantalla muestra 4,47:1. No supera AA para texto normal. Para #767676 sobre blanco, el valor es aproximadamente 4,5422 y se muestra 4,54:1: supera AA normal, pero no AAA normal.

Los dos grises son cercanos, aunque quedan a lados distintos del umbral. En el diseño real, comprueba además el tamaño, el peso, la fuente y su representación. Un margen suficiente facilita mantener la combinación cuando cambian los estados o se ajusta una variable de estilo.

EscenarioRelación mostradaAA normalAAA normal
Predeterminado14,67SuperaSupera
Negro sobre blanco21,00SuperaSupera
#777777 sobre blanco4,47No superaNo supera
#767676 sobre blanco4,54SuperaNo supera
Blanco idéntico1,00No superaNo supera

La relación es adimensional y cada número se lee respecto a uno. Estos ejemplos usan colores sRGB opacos y un fondo blanco. Si cambia el fondo, hay que volver a calcular la pareja correspondiente.

Resolver la transparencia antes de comparar

Los campos admiten colores hexadecimales, nombres CSS compatibles y las notaciones admitidas rgb(), hsl() y oklch(). La vista previa muestra los colores que recibe el cálculo. Una sintaxis incorrecta genera un error de entrada que debe corregirse antes de interpretar resultados.

El componente alfa se ignora. Un negro transparente se procesa como negro opaco, de modo que su resultado no describe la apariencia del negro transparente sobre un fondo concreto. Obtén primero el color visible después de la composición utilizada por la interfaz real.

Ciertas entradas de otros espacios pueden quedar fuera de sRGB. La herramienta avisa cuando recorta canales para situarlos dentro de ese intervalo. El contraste del color recortado no describe todas las condiciones de una representación de gama amplia. Los canales rgb() fuera del intervalo numérico admitido se rechazan.

El conversor de colores ayuda a inspeccionar representaciones. El simulador de daltonismo permite explorar cambios de tono bajo otro modelo. Cada comparación aporta información diferente a la revisión del componente.

Repetir la comprobación en fondos y estados variables

Una fotografía, un degradado, un estado seleccionado o un cambio al pasar el puntero pueden alterar el color adyacente. Revisa las parejas pertinentes en cada ubicación y estado. Un resultado satisfactorio en una zona de una imagen no garantiza el mismo resultado en las demás.

Registra el primer plano, el fondo, la categoría de texto y el veredicto exacto. Así otra persona podrá reproducir la comprobación y evitará reutilizar una aprobación para texto grande en un contexto de texto pequeño. La vista previa ayuda a interpretar la pareja; los cinco resultados indican los umbrales que alcanza.

Ejemplos resueltos

Negro sobre blanco alcanza el máximo

Color del texto
#000000
Color del fondo
#FFFFFF
Relación de contraste
21,00 :1
AA para texto normal (≥ 4,5:1)
Correcto
AAA para texto normal (≥ 7:1)
Correcto

Fuente de comprobación: Comprobación del ejemplo: Definición de WCAG 2.2: (1 + 0,05) / (0 + 0,05) = 21

#777777 sobre blanco queda justo por debajo de AA

Color del texto
#777777
Color del fondo
#FFFFFF
Relación de contraste
4,48 :1
AA para texto normal (≥ 4,5:1)
Error
AA para texto grande (≥ 3:1)
Correcto
Componentes de interfaz (≥ 3:1)
Correcto

Fuente de comprobación: Cálculo independiente

#767676 sobre blanco cumple AA

Color del texto
#767676
Color del fondo
#FFFFFF
Relación de contraste
4,54 :1
AA para texto normal (≥ 4,5:1)
Correcto
AAA para texto normal (≥ 7:1)
Error
AAA para texto grande (≥ 4,5:1)
Correcto

Fuente de comprobación: Cálculo independiente

Un color sobre sí mismo (caso límite)

Color del texto
teal
Color del fondo
#008080
Relación de contraste
1,00 :1
AA para texto grande (≥ 3:1)
Error
Componentes de interfaz (≥ 3:1)
Error

Fuente de comprobación: Comprobación del ejemplo: Definición de WCAG 2.2: (L + 0,05) / (L + 0,05) = 1

Preguntas

¿Qué relación de contraste exige WCAG?

El nivel AA exige al menos 4,5:1 para texto normal y 3:1 para texto grande (criterio 1.4.3), y 3:1 para componentes de interfaz y gráficos significativos (1.4.11). El nivel AAA eleva el texto normal a 7:1 y el grande a 4,5:1 (1.4.6). Los logotipos, controles desactivados y textos puramente decorativos están exentos.

¿Qué se considera texto grande en WCAG?

Texto de al menos 18 puntos, o de 14 puntos si está en negrita. En CSS, donde 1 pt son 1,333 px, equivale a 24 px en peso normal y unos 18,66 px en negrita. La explicación de W3C los sitúa aproximadamente en 1,5 em y 1,2 em respecto al texto normal predeterminado, y advierte de que las fuentes muy finas pueden necesitar más contraste. El texto grande solo necesita 3:1 en AA, en lugar de 4,5:1.

¿Cuál es el gris más claro que cumple AA sobre blanco?

#767676, que da 4,54:1 sobre #FFFFFF. El siguiente tono más claro, #777777, muestra 4,47:1 y no cumple, porque WCAG compara la relación exacta con 4,5 sin redondear hacia arriba. Para texto grande puedes usar tonos más claros: cualquier gris que alcance 3:1, como #949494 con 3,03:1, cumple AA.

¿WCAG 2.2 cambió los requisitos de contraste?

No. WCAG 2.2 se convirtió en recomendación W3C el 5 de octubre de 2023 y añadió 9 criterios, principalmente sobre visibilidad del foco, tamaño de objetivos y autenticación. Los criterios de contraste 1.4.3, 1.4.6 y 1.4.11 son los mismos que en WCAG 2.1. Una pareja de colores que cumplía en 2.1 sigue cumpliendo en 2.2, con los mismos umbrales 4,5:1 y 3:1.

¿Importa el orden del color de texto y del fondo?

No. La fórmula coloca siempre la luminancia del color más claro en el numerador: texto blanco sobre #1F2937 y texto #1F2937 sobre blanco dan 14,67:1. Lo que cambia es la percepción: texto claro sobre fondo oscuro puede parecer más fino o grueso según la fuente y la pantalla. Comprueba también cómo se ve en pantalla, sobre todo con tamaños pequeños.

Acerca de esta calculadora

r=L1+0.05L2+0.05L=0.2126Rlin+0.7152Glin+0.0722Blin\begin{aligned} r &= \frac{L_1 + 0.05}{L_2 + 0.05} \\[4pt] L &= 0.2126 R_{lin} + 0.7152 G_{lin} \\ &\quad + 0.0722 B_{lin} \end{aligned}

Fuentes

  1. W3C WCAG 2.2 — Success Criteria 1.4.3, 1.4.6 and 1.4.11; definitions of contrast ratio and relative luminance
  2. W3C Understanding SC 1.4.3 — large text is at least 18 pt, or 14 pt bold

Verificado con las referencias

Esta calculadora incluye 5 ejemplos resueltos con respuestas de fuentes independientes. Forman parte del conjunto de pruebas y también puedes ejecutarlos aquí.

Pon esta calculadora en tu sitio

Pega esto donde quieras que aparezca la calculadora. Su uso es gratuito, se mantiene al día con las correcciones que hacemos aquí y el crédito que aparece debajo enlaza con la versión completa, para que tus lectores puedan consultarla.

Altura
Vista previa de la inserción

Conserva el crédito. Es la única condición y es lo que mantiene gratuitas estas calculadoras.