Ejemplo práctico
Prueba el texto normal, el texto placeholder y el estado hover por separado, porque cada uno suele usar un color de primer plano diferente.
Texto grande de encabezado (24px)
Texto normal de 14-16px. La mayoría del texto de interfaz, etiquetas y párrafos entra en esta categoría, por lo que tiene los requisitos de contraste más estrictos.
El ratio de contraste mide cuán distinguible es el texto de su fondo, en una escala de 1:1 (idénticos) a 21:1 (negro sobre blanco). WCAG exige al menos 4.5:1 para texto normal y 3:1 para texto grande en el nivel AA, y 7:1 / 4.5:1 en el nivel AAA.
Este comprobador calcula el ratio a partir de la luminancia relativa exactamente como define WCAG 2.x, muestra resultados de aprobado/suspenso para cada nivel y previsualiza tus colores sobre texto real. Se aceptan las notaciones HEX, RGB y HSL.
Un ratio aprobado es el punto de partida, no la meta. Revisa cómo se comporta el par en estados reales de la interfaz.
Un par que aprueba sobre fondo claro puede fallar tras la inversión del modo oscuro. Revisa cada tema que publiques.
Hover, focus, disabled y visited suelen usar tonos más claros que caen por debajo de 4.5:1 sin que nadie lo note.
Combina el color con iconos, subrayados o etiquetas de texto para que la información sobreviva a las deficiencias de visión cromática.
El umbral relajado de 3:1 solo aplica desde 24px, o 18.66px en negrita. Confirma el tamaño renderizado, no el token de diseño.
Prueba el texto normal, el texto placeholder y el estado hover por separado, porque cada uno suele usar un color de primer plano diferente.
Un primer plano translúcido tiene un contraste efectivo distinto sobre cada fondo que tenga debajo, así que el valor hex por sí solo es insuficiente.
Uso la razón numérica como filtro y luego verifico los estados focus, disabled, modo oscuro y alto contraste en el componente real.
Estas herramientas también pueden resultarle útiles.