Problema resolvido na íntegra
-
Rácio de contraste entre texto #e2e6f0 e um fundo #1a1d27 5 passos
Calcule a razão de contraste entre texto #e2e6f0 e um fundo #1a1d27 — as cores da própria página. Fazer a média dos canais dá 5,55. As WCAG dão 13,46. Descubra de onde vem o fator de dois e meio.
-
A definição parece inofensiva: uma razão entre duas luminâncias, cada uma ajustada em 0,05 para que o preto puro não origine uma divisão por zero. Os pesos não são iguais, e essa é a primeira surpresa — ao verde é atribuída dez vezes mais luminância do que ao azul.
-
A segunda surpresa é que os valores dos canais não podem ser usados como estão. Um byte num ficheiro de imagem está codificado por gama: 128 não significa metade da luz, significa sensivelmente um quinto. A expressão definida por partes desfaz essa codificação, e é o passo que todos os que criam a sua própria verificação de contraste omitem.
-
Submeta ambas as cores a esse cálculo. A clara fica em 0,79, a escura em 0,0124 — uma diferença por um fator de 63 em luz física, proveniente de bytes que diferem apenas por um fator de cerca de 7.
-
Os desvios de 0,05 comprimem depois esse valor de 63 para 13,46, que é o número exibido pelo painel. Esse desvio não é cosmético: modela a luz que o ecrã reflete mesmo quando apresenta preto, motivo pelo qual um tema escuro não consegue obter um contraste ilimitado numa divisão iluminada.
-
Os pesos explicam a queixa mais comum de um designer. O verde puro e o azul puro são ambos um único canal na força máxima, contudo o verde carrega 0,7152 da luminância e o azul apenas 0,0722.
Resposta
A ferramenta indica 13,46 : 1, confortavelmente além dos 4,5 do nível AA e dos 7 do nível AAA. A razão para efetuar o cálculo à mão é a etapa da gama: omita-a, faça em vez disso a média dos canais, e este par obtém a pontuação de 5,55 — ainda assim uma aprovação, mas errada por um fator de 2,4, sendo que num par mais próximo esse erro é a diferença entre a aprovação e a reprovação. Os pesos constituem a outra metade. O verde é 9,9 vezes mais brilhante do que o azul para o mesmo valor de canal, pelo que o texto azul sobre fundo preto é muito pior do que parece num seletor de cores, e o amarelo sobre fundo branco muito melhor do que os designers esperam. Experimente #0000ff contra #000000 e leia a razão.
-
Referências (2)
- The contrast formula and the 0.03928 threshold block 3 is about: W3C, Web Content Accessibility Guidelines (WCAG) 2.1, "relative luminance" and "contrast ratio" definitions.
- The sRGB transfer function it should have matched: IEC 61966-2-1:1999, Multimedia systems and equipment — Colour measurement and management — Part 2-1: Default RGB colour space — sRGB, which puts the linear/gamma switch at 0.04045.