Contraste de Cores: Diretrizes WCAG para design acessível

Aprenda a verificar e corrigir taxas de contraste de cores para conformidade WCAG 2.1 AA/AAA, com dicas práticas para design UI acessível.

7 min de leitura Acessibilidade · WCAG · Cor 6 seções + FAQ

O contraste de cores é um dos requisitos de acessibilidade mais frequentemente violados na web — e um dos mais fáceis de corrigir. Um contraste fraco entre o texto e o seu fundo torna o conteúdo ilegível para utilizadores com baixa visão, daltonismo ou ao visualizar em pleno sol. WCAG 2.1 define limites numéricos precisos para taxas de contraste aceitáveis.

Este guia explica como as taxas de contraste são calculadas, o que os níveis WCAG significam na prática, onde o contraste falha mais comumente em designs reais e como corrigir essas falhas sistematicamente.

O que é taxa de contraste de cores

A taxa de contraste de cores é uma medida numérica da diferença de luminância percebida entre duas cores — tipicamente texto e fundo. A taxa vai de 1:1 (cores idênticas, sem contraste) a 21:1 (preto puro sobre branco puro, contraste máximo). A fórmula compara a luminância relativa da cor mais clara (L1) com a mais escura (L2): contraste = (L1 + 0.05) / (L2 + 0.05). Uma taxa de 4.5:1 significa que a cor mais clara é 4.5 vezes mais luminante que a mais escura.

Ferramenta gratuita Verificador de Contraste de Cores Verifique instantaneamente a conformidade WCAG 2.1 AA/AAA para quaisquer duas cores

Níveis WCAG 2.1 (A/AA/AAA)

WCAG 2.1 define três níveis de conformidade. O nível A é o mínimo. O nível AA é o padrão legal e industrial na maioria dos países. O nível AAA é o mais alto. Para contraste de texto: texto normal (abaixo de 18pt ou 14pt negrito) requer 4.5:1 para AA e 7:1 para AAA. Texto grande (18pt+ ou 14pt+ negrito) requer 3:1 para AA e 4.5:1 para AAA. Componentes UI requerem 3:1 para AA.

Como calcular a luminância

A luminância relativa é calculada a partir de valores RGB linearizados. A fórmula contabiliza a resposta não linear do olho humano à luz. São aplicados pesos perceptuais (vermelho=0.2126, verde=0.7152, azul=0.0722). O canal verde contribui mais para o brilho percebido — por isso o verde puro (#00FF00) tem luminância muito maior que o azul puro (#0000FF).

/* Cálculo de luminância (JavaScript) */
function getLuminance(r, g, b) {
  const [rs, gs, bs] = [r, g, b].map(c => {
    c = c / 255;
    return c <= 0.03928
      ? c / 12.92
      : Math.pow((c + 0.055) / 1.055, 2.4);
  });
  return 0.2126 * rs + 0.7152 * gs + 0.0722 * bs;
}
Ferramenta gratuita Gerador de Paletas de Cores Gere paletas acessíveis com consciência de contraste integrada

Falhas de contraste comuns

As falhas de contraste mais frequentes em designs reais: texto cinza claro sobre fundo branco (texto atenuado falha com ~2.5:1), cores de marca de saturação média usadas como texto sobre branco, links de texto colorados sem sublinhado sobre fundos colorados, estados desabilitados com pouca diferença visual, elementos UI só com ícone com contraste insuficiente. Os designs em modo escuro frequentemente introduzem novas falhas.

Corrigir contraste em temas escuro/claro

Ao construir um sistema de design de tema duplo, é essencial testar o contraste em ambos os modos de forma independente. O mesmo par fundo-texto que passa AA no modo claro pode falhar no modo escuro se simplesmente se inverter o tom sem recalcular o contraste. A abordagem prática: definir escalas de cores separadas para cada tema.

Ferramentas e automação

A verificação manual no momento do design não é suficiente. Ferramentas de auditoria de acessibilidade automatizadas (axe, Lighthouse, Pa11y) podem detetar falhas de contraste em tempo de build ou em pipelines CI. A ferramenta Color Contrast do PixCode aceita quaisquer duas cores e devolve a taxa, o nível WCAG e sugestões de alternativas conformes.

Ferramenta gratuita Conversor HEX para RGB Converta cores para o formato necessário para cálculos de luminância

Perguntas Frequentes

O que é taxa de contraste de cores na acessibilidade web? +
A taxa de contraste de cores é uma medida numérica da diferença de luminância entre duas cores (tipicamente texto e fundo). Vai de 1:1 (sem contraste) a 21:1 (preto sobre branco). WCAG 2.1 requer mínimo 4.5:1 para texto normal (nível AA) e 3:1 para texto grande.
Como o WCAG calcula a taxa de contraste? +
Taxa de contraste WCAG = (L1 + 0.05) / (L2 + 0.05), onde L1 é a luminância relativa da cor mais clara e L2 a da mais escura. A luminância relativa é calculada a partir de valores RGB linearizados ponderados: L = 0.2126R + 0.7152G + 0.0722B (após correção gamma).
Qual é a diferença entre WCAG AA e AAA para contraste? +
AA requer 4.5:1 para texto normal e 3:1 para texto grande. AAA requer 7:1 para texto normal e 4.5:1 para texto grande. AA é o padrão legal e prático para a maioria dos conteúdos web.
A taxa de contraste aplica-se também a ícones e imagens? +
Sim. O critério WCAG 2.1 1.4.11 (Contraste não textual) exige que componentes UI e objetos gráficos informativos tenham pelo menos 3:1 de contraste com as cores adjacentes. As imagens puramente decorativas estão isentas.
Por que as cores de marca frequentemente não cumprem os requisitos de contraste? +
As cores de marca são tipicamente escolhidas por apelo estético, não por conformidade de contraste. Cores de saturação média na faixa de luminosidade média (L: 40–60% em HSL) produzem frequentemente taxas de 2:1–3.5:1 sobre fundo branco. A solução: usar uma variante mais escura ou clara da cor de marca para o texto.
O contraste deve ser verificado separadamente para o modo escuro? +
Sim. O contraste deve ser avaliado independentemente para cada tema. Um par de cores que passa 4.5:1 sobre fundo branco pode falhar sobre fundo escuro se se usar o mesmo tom sem ajustar a luminosidade.
Posso usar o verificador de contraste do PixCode para qualquer formato de cor? +
A ferramenta Color Contrast do PixCode aceita entradas HEX, RGB e HSL para cores de primeiro plano e fundo. Devolve a taxa de contraste, estado de aprovação/reprovação WCAG AA e AAA para texto normal e grande.