Bhinish Dhiman
Por qué el texto de cuerpo de 14px nunca puede aprobar APCA
Traducido del original en inglés. Leer el original
APCA evalúa el contraste en función del tamaño y el peso de la fuente, y a 14px en regular no hay ninguna combinación de colores que supere su umbral, ni siquiera negro sobre blanco. La solución es tipográfica, no cromática. Usa 16px, o mantén 14px y ponlo en un peso más grueso.
La primera vez que una herramienta de contraste te dice que un texto negro sobre fondo blanco no aprueba, das por hecho que la herramienta está rota. Normalmente no lo está. Si el texto es de 14px en peso regular, APCA lo considera inutilizable sin importar qué colores elijas.
Esto sorprende lo suficiente como para que valga la pena explicarlo bien.
El contraste no depende solo del color
WCAG 2 trata el contraste como una propiedad de dos colores. Le das un primer plano y un fondo y te devuelve una proporción, sin saber nada de cómo se va a componer el texto.
APCA trata el contraste como una propiedad de dos colores y de la forma de los glifos que se dibujan con ellos. Esto se acerca más a cómo funciona la vista. Lo que llega a tu ojo no es una combinación abstracta de colores, sino una cantidad de tinta repartida en trazos. Los trazos finos a tamaños pequeños aportan muy poca, y el antialiasing los aclara todavía más en los bordes.
Por eso los umbrales de APCA se mueven con la tipografía. Su tabla de referencia indica, para cada nivel de contraste, el tamaño de fuente mínimo utilizable en cada peso:
| Lc | Peso 300 | Peso 400 | Peso 500 | Peso 700 |
|---|---|---|---|---|
| 90 | 21px | 16px | 15.5px | 14px |
| 75 | 24px | 18px | 16px | 14px |
| 60 | 42px | 24px | 21px | 16px |
| 45 | 72px | 42px | 32px | 24px |
Recorre la columna del peso 400. Con Lc 90, que está cerca del máximo posible, ya que el negro puro sobre blanco puro da Lc 106, el tamaño utilizable más pequeño es 16px.
No hay ninguna fila en la que aparezca 14px con peso 400. Subir el contraste no ayuda, porque 16px ya es el mínimo con el contraste más alto que puede producir la pantalla.
Lo que puedes hacer en su lugar
Ponlo a 16px. Es la solución más simple, y la que de todos modos debería tener la mayor parte del texto de cuerpo. 16px lleva una década siendo el valor predeterminado sensato para el texto de cuerpo.
Mantén 14px y súbele el peso. Mira la columna del peso 700: 14px es utilizable con Lc 90 y Lc 75. Una etiqueta de 14px en negrita con un contraste fuerte está bien para APCA. Esta suele ser la respuesta correcta para las etiquetas de interfaz cuando el espacio vertical es realmente limitado.
Replantéate si de verdad tiene que ser texto. Una marca de tiempo de 14px en gris claro que nadie puede leer no está transmitiendo información. O importa, y entonces hay que hacerla legible, o no importa, y entonces hay que quitarla.
El corolario incómodo
En cuanto aceptas la tabla, muchas convenciones habituales de interfaz dejan de tener defensa.
La etiqueta en mayúsculas de 11px o 12px, en un gris apagado, está en todos los sistemas de diseño modernos. Según APCA, 12px con peso 400 no tiene ningún contraste que apruebe, e incluso con peso 700 necesita un Lc altísimo. Hicimos esta comprobación en nuestra propia interfaz mientras construíamos este sitio y tuvimos que pasar las etiquetas de 11px a 13px y subirles el peso. La herramienta encontró el problema en su propia interfaz.
El texto de marcador de posición (placeholder) es el otro infractor habitual: pequeño, claro y muchas veces la única etiqueta que tiene un campo.
WCAG 2 no está equivocado, solo incompleto
Lo que significa es que WCAG 2 está incompleto en este eje concreto, algo que sus autores sabían. Modelar el tamaño y el peso en 2008 habría requerido datos y capacidad de cálculo que no eran prácticos en ese momento. Una proporción entre dos luminancias era una aproximación razonable, y ha hecho muchísimo bien.
Pero conviene que sepas lo que no puede ver. Un pie de foto de 12px y un titular de 32px con los mismos colores reciben la misma puntuación de WCAG, y solo uno de los dos se puede leer.
Qué hacer en la práctica
Sigue registrando la proporción de WCAG, porque es con lo que se mide la conformidad. Usa APCA para comprobar si eso se puede leer de verdad al tamaño con el que lo vas a publicar.
Y cuando APCA repruebe una combinación de colores a un tamaño pequeño, resiste el impulso de oscurecer el color. Revisa primero la tabla. Muy a menudo la respuesta no es otro color, sino 2px más o un peso más grueso.
Nuestro verificador de contraste muestra las dos cifras con el tamaño y el peso que elijas, y cuando un tamaño es inutilizable con cualquier contraste lo dice directamente, en lugar de reportar un fallo que no puedes arreglar con el color.