Calculadora de razão de contraste
Digite ou escolha duas cores. A razão, os cinco veredictos WCAG e uma amostra de texto se atualizam enquanto você mexe. Se o par reprovar, a calculadora sugere o tom mais próximo da mesma matiz que passa.
Essa não é uma cor que o navegador entende
Essa não é uma cor que o navegador entende
Qualquer cor CSS funciona: hexadecimal como #1d3557, rgb(), hsl() ou uma cor nomeada como teal.
Taxa de contraste WCAG
–
Um título nestas cores
Este parágrafo está no tamanho normal de leitura. Leia por alguns segundos e repare se seus olhos precisam se esforçar. Um link no texto.
Letra menor, como a usada em legendas, avisos legais e dicas de formulário.
Um botãoUm número entre 1 e 21
Você consegue ler um texto quando ele é claramente mais claro ou mais escuro que o que está atrás. A matiz quase não importa. Vermelho puro sobre verde puro são duas cores bem diferentes com quase o mesmo brilho, e as letras parecem vibrar. Por isso a WCAG mede a diferença de luminância relativa, a quantidade de luz que uma cor manda para o olho numa escala de 0 (preto) a 1 (branco).
Para calcular, cada canal vermelho, verde e azul é convertido do valor armazenado para luz linear, e depois os três são ponderados pela sensibilidade do olho a cada um:
L = 0.2126 × R + 0.7152 × G + 0.0722 × B
ratio = (L lighter + 0.05) ÷ (L darker + 0.05)O verde conta mais de 70% do resultado e o azul cerca de 7%. Por isso o azul puro #0000ff se comporta como uma cor escura e o amarelo puro como uma clara. Duas cores idênticas dão 1:1. Preto sobre branco dá 21:1. Inverter texto e fundo não muda a razão.
Os limites e onde se aplicam
| Conteúdo | AA | AAA |
|---|---|---|
| Texto de tamanho normal | 4.5:1 | 7:1 |
| Texto grande: 24 px ou mais, ou 18.66 px ou mais em negrito | 3:1 | 4.5:1 |
| Partes da interface e ícones: bordas de campos, contornos de botões, anéis de foco, linhas de gráficos | 3:1 | nenhum definido |
AA é o nível que leis e regras de compras públicas costumam exigir, incluindo a norma europeia EN 301 549 e a Section 508 nos Estados Unidos. AAA é uma meta para onde as pessoas leem bastante. Logotipos, controles desativados e texto puramente decorativo estão isentos.
Uma boa referência é o cinza #767676, que chega a 4.54:1 sobre branco e passa em AA. Um passo mais claro, #777777 dá 4.47:1 e reprova.
A calculadora corta a razão em duas casas decimais sem arredondar para cima, como a WCAG pretende. Um par em 4.499 aparece como 4.49 e reprova. Ele não é promovido a 4.5.
Como o tom sugerido é escolhido
Quando um texto de tamanho normal fica abaixo de 4.5:1, a calculadora converte a cor do texto em matiz, saturação e luminosidade. Ela mantém as duas primeiras e move a luminosidade em passos de meio por cento, mais escuro e mais claro alternadamente, até a razão contra o seu fundo chegar a 4.5. O primeiro acerto é o tom mais próximo que passa, então o seu azul continua sendo o seu azul. Às vezes nenhuma luminosidade da cor do texto consegue passar, geralmente contra um fundo de tom médio. Nesse caso, ela tenta ajustar o fundo do mesmo jeito. Selecione Usar para aplicar a sugestão.
Fundos de tom médio são o caso difícil. Um cinza médio como #808080 dá cerca de 3.9:1 contra branco e 5.3:1 contra preto, então só um texto bem escuro funciona sobre ele. Laranjas de marca e verdes vivos têm o mesmo problema com texto branco. Você vai ter que escurecer o fundo ou passar para texto escuro.
Como colocar e tirar as cores
Os dois campos aceitam qualquer coisa que um navegador entenda como cor CSS: #1d3557, 1d3557, rgb(29 53 87), hsl(215 50% 23%) ou um nome como teal. Para ler uma cor de uma página no ar, abra as ferramentas de desenvolvedor, selecione o texto e copie os valores calculados de color e background-color.
O endereço da página se atualiza a cada mudança, no formato ?fg=1d3557&bg=ffffff. Copie para mandar a um colega exatamente o par que vocês estão discutindo. Para testar uma paleta de marca inteira de uma vez, use a grade de contraste de paleta.
O que uma razão não diz
- Transparência. Qualquer valor alfa é ignorado. Para texto semitransparente, meça a cor mesclada que a tela acaba exibindo.
- Imagens e degradês. Uma foto de fundo tem muitas cores. Teste a área mais clara e a mais escura atrás do texto, ou coloque um painel sólido embaixo dele.
- Peso e tamanho de fonte abaixo dos limites. Uma fonte fina de 12 px a 4.6:1 passa no papel e continua difícil de ler.
- Temas escuros. A fórmula da WCAG 2 é conhecida por superestimar alguns pares escuros. Se um texto claro sobre fundo escuro passa por pouco, olhe com seus próprios olhos também, por exemplo no simulador de visão.
Perguntas frequentes
Que razão de contraste a WCAG AA exige?
4.5:1 para texto de tamanho normal, 3:1 para texto grande (24 px ou mais, ou 18.66 px em negrito ou mais) e 3:1 para componentes de interface e gráficos com significado. São os critérios de sucesso 1.4.3 e 1.4.11.
Texto branco num botão colorido é acessível?
Depende de quão escuro é o botão. O branco precisa de um fundo mais ou menos tão escuro quanto #767676, ou mais, para chegar a 4.5:1. Os botões habituais em laranja vivo, amarelo, verde-limão e azul-celeste reprovam com texto branco e passam com texto quase preto.
18 px conta como texto grande?
Não. A WCAG define texto grande em pontos, como 18 pt normal ou 14 pt em negrito. Na web, isso dá 24 px normal ou cerca de 18.66 px em negrito. Texto a 18 px normal precisa atingir o limite de 4.5:1.
Texto de placeholder e botões desativados precisam passar?
O texto de placeholder precisa. Espera-se que o visitante o leia, então vale 4.5:1. Controles desativados estão isentos dos critérios de contraste, embora os muito apagados deixem as pessoas sem saber o que é aquele controle.
Por que duas ferramentas dão razões um pouco diferentes para as mesmas cores?
Quase sempre por arredondamento. Algumas ferramentas arredondam para uma ou duas casas decimais, e algumas arredondam para cima onde esta corta. Uma diferença na segunda casa decimal só importa para pares bem em cima de um limite, e esses valem uma leve escurecida de qualquer forma.