Critérios de Sucesso WCAG · Level AAA
WCAG 1.4.6: Contraste (Aprimorado)
As WCAG 1.4.6 exige uma taxa de contraste mínima de 7:1 para texto normal e 4.5:1 para texto grande entre as cores de primeiro plano e de fundo, indo além do limite AA para garantir a legibilidade para pessoas com baixa visão, deficiências de cor ou que utilizam o conteúdo em condições de iluminação desafiadoras.
O Que Esta Regra Significa
WCAG 1.4.6 Contrast (Enhanced) é um critério de sucesso de Nível AAA sob a Diretriz 1.4 (Distinguishable). Ele exige que a apresentação visual de texto e imagens de texto tenha uma taxa de contraste de pelo menos 7:1 em relação ao seu plano de fundo. Para texto grande — definido como pelo menos 18pt (aproximadamente 24px) para peso regular, ou pelo menos 14pt (aproximadamente 18.67px) para peso negrito — a taxa de contraste exigida é de pelo menos 4.5:1. Isso representa um aumento significativo em relação ao critério de Nível AA 1.4.3, que exige apenas 4.5:1 para texto normal e 3:1 para texto grande.
A taxa de contraste é calculada usando a luminância relativa das duas cores envolvidas, conforme definido na especificação WCAG. A fórmula considera os valores RGB linearizados das cores de primeiro plano e de fundo para produzir uma taxa que varia de 1:1 (sem contraste, cores idênticas) a 21:1 (contraste máximo, preto sobre branco ou branco sobre preto).
Este critério se aplica a todo texto renderizado na interface, incluindo texto dentro de imagens, ícones contendo texto e texto renderizado em elementos canvas quando a saída renderizada é acessível. Ele afeta títulos, corpo de texto, rótulos, texto de placeholder em campos de formulário quando transmite informação significativa, rótulos de botões, texto de links, itens de navegação e qualquer outro conteúdo textual visível na tela.
WCAG 1.4.6 compartilha as mesmas exceções oficiais que o critério 1.4.3. As seguintes situações são explicitamente excluídas da exigência:
- Texto incidental: Texto ou imagens de texto que são puramente decorativos, que não são visíveis para ninguém ou que fazem parte de uma imagem que contém outro conteúdo visual significativo. Um exemplo seria texto visível no plano de fundo de uma fotografia usada como decoração.
- Logotipos: Texto que faz parte de um logotipo ou nome de marca não possui exigência de contraste. Isso se aplica apenas à parte de wordmark do logotipo de uma empresa, não ao corpo de texto adjacente ou rótulos de UI.
- Componentes inativos da interface do usuário: Texto dentro de controles de formulário desabilitados, botões desabilitados ou outros elementos de interface que não estão atualmente operáveis está isento. No entanto, essa isenção deve ser aplicada com parcimônia — a UI inativa ainda deve ser suficientemente perceptível para comunicar sua existência.
Uma aprovação sob este critério significa que todas as instâncias de conteúdo textual que não são explicitamente excetuadas atendem ou excedem a taxa de 7:1 (ou 4.5:1 para texto grande). Uma reprovação ocorre quando qualquer texto não excetuado fica abaixo desses limiares, mesmo por uma pequena margem. O contraste deve se manter em todos os estados suportados — hover, focus, active, visited — já que o critério se aplica à apresentação renderizada em cada um desses estados.
Por Que Isso Importa
Aproximadamente 2.2 bilhões de pessoas em todo o mundo vivem com algum tipo de deficiência visual, de acordo com a Organização Mundial da Saúde. Destas, centenas de milhões apresentam condições que reduzem diretamente a capacidade de distinguir entre cores ou perceber texto de baixo contraste, incluindo catarata, glaucoma, degeneração macular e várias formas de deficiência de visão de cores. Para essa população, interfaces que atendem apenas ao limiar de contraste AA de 4.5:1 ainda podem apresentar barreiras significativas à leitura e à compreensão.
A taxa de 7:1 exigida por este critério é especificamente calibrada para levar em conta a perda de sensibilidade ao contraste associada ao envelhecimento dos olhos e a condições comuns de baixa visão. Pesquisas em ciência da visão mostram que uma pessoa com sensibilidade ao contraste moderadamente reduzida — aproximadamente equivalente a uma pessoa com visão 20/80 usando lentes corretivas — pode experimentar uma redução efetiva de contraste de aproximadamente três para um. Uma taxa de design de 7:1, após essa redução perceptiva, ainda oferece cerca de 2.3:1 de contraste percebido, o que está próximo do limiar mínimo em que o texto se torna legível. Sem essa margem, tais usuários podem ser totalmente incapazes de ler o conteúdo.
Considere um cenário do mundo real: um cliente de banco de 68 anos gerenciando suas finanças online em uma tarde ensolarada, com a luz do sol refletindo na tela do laptop. Mesmo com visão clinicamente funcional, o brilho e a redução natural da sensibilidade ao contraste que acompanha o envelhecimento podem tornar texto cinza médio em um fundo branco completamente ilegível. Um design que atinge contraste de 7:1 em condições normais ainda será utilizável nesse contexto; um que mal atinge 4.5:1 não será.
Além do impacto específico relacionado à deficiência, texto de alto contraste beneficia praticamente todos os usuários em ambientes de leitura subótimos: luz solar intensa ao ar livre, telas desgastadas com retroiluminação reduzida, displays monocromáticos de e-ink e projetores de baixa qualidade em salas de reunião. A exigência de contraste aprimorado representa, portanto, não apenas uma melhoria de acessibilidade, mas também uma ampla melhoria de usabilidade.
Do ponto de vista de otimização para mecanismos de busca, texto de alto contraste tende a se correlacionar com hierarquias tipográficas mais limpas e estruturadas. Embora os mecanismos de busca não meçam diretamente o contraste, a disciplina de design necessária para atender aos padrões de contraste AAA normalmente produz páginas com hierarquia visual mais forte e melhores índices de legibilidade, o que contribui para taxas de rejeição mais baixas e tempos de permanência mais longos — sinais que beneficiam indiretamente o desempenho de SEO.
Regras Relacionadas do Axe-core
- color-contrast-enhanced: Esta é a principal regra do axe-core associada à WCAG 1.4.6. Ela avalia as cores de primeiro plano e de fundo computadas de todos os nós de texto no DOM e calcula sua taxa de contraste usando a fórmula de luminância da WCAG. A regra sinaliza qualquer elemento de texto em que a taxa de contraste fique abaixo de 7:1 para texto de tamanho normal ou abaixo de 4.5:1 para texto grande (conforme definido por font-size e font-weight computados). Ela relata a taxa real encontrada, a taxa exigida e o elemento responsável, tornando a correção direta. A regra diferencia entre texto normal e grande usando os mesmos limiares de tamanho definidos pela WCAG: 18pt (24px) para peso regular e 14pt (18.67px) para negrito.
- Limitações que exigem testes manuais: Regras automatizadas como color-contrast-enhanced não conseguem detectar falhas de contraste em vários cenários importantes. Texto renderizado dentro de elementos
<canvas>é invisível para o scanner baseado em DOM e requer inspeção visual manual. Texto sobreposto a planos de fundo em gradiente ou fotográficos apresenta um desafio particularmente difícil: a taxa de contraste varia ao longo do texto dependendo de qual parte do gradiente ou imagem fica atrás de cada letra. Ferramentas automatizadas normalmente amostram uma única cor de fundo ou relatam resultados inconclusivos nesses casos. Texto que muda de cor em hover ou focus também deve ser testado manualmente em cada estado interativo, já que varreduras automatizadas normalmente capturam apenas o estado renderizado padrão. Além disso, texto cujo contraste depende de propriedades personalizadas de CSS resolvidas em tempo de execução via JavaScript pode não ser avaliável durante uma varredura estática.
Como Testar
- Varredura automatizada com axe DevTools: Instale a extensão de navegador axe DevTools (Chrome ou Firefox). Abra a página alvo, ative a extensão e execute uma varredura de página inteira. No painel de resultados, filtre pelo ID da regra color-contrast-enhanced ou pesquise por "enhanced" na lista de problemas. Para cada elemento sinalizado, o painel exibe o elemento, a taxa de contraste real e a taxa exigida. Observe quaisquer elementos relatados como necessitando de revisão em vez de aprovação ou reprovação definitiva — estes normalmente envolvem planos de fundo computados que não puderam ser resolvidos e exigem verificação manual.
- Varredura automatizada com Lighthouse: Abra o Chrome DevTools, navegue até a aba Lighthouse e execute uma auditoria de acessibilidade. O Lighthouse usa axe-core internamente, portanto exibirá as mesmas violações de color-contrast-enhanced. O relatório as agrupa sob Acessibilidade e vincula a cada elemento reprovado. Esteja ciente de que o Lighthouse audita a página em seu estado padrão e não testa estados interativos como hover ou focus.
- Amostragem manual de cores: Use o seletor de cores das ferramentas de desenvolvedor do navegador ou uma ferramenta dedicada como o Colour Contrast Analyser (TPGi) para amostrar manualmente as cores de primeiro plano e de fundo de elementos de texto. Isso é especialmente importante para texto sobre imagens, gradientes ou planos de fundo semitransparentes. Amostre vários pontos ao longo do texto onde o plano de fundo varia e verifique se a taxa de contraste mínima em todos os pontos amostrados atende a 7:1 para texto normal ou 4.5:1 para texto grande.
- Testando estados interativos: Usando o DevTools do navegador, force elementos em seus estados hover, focus, active e visited (via painel :hov no Chrome DevTools ou equivalente). Reexecute a verificação de contraste em cada estado para garantir que mudanças de cor aplicadas via pseudo-classes CSS não introduzam falhas de contraste. Preste atenção especial aos estados visited de links, estados hover de botões e indicadores de foco de campos de formulário.
- Verificação com leitor de tela (NVDA + Firefox): Embora leitores de tela não testem contraste diretamente, verificar se o texto é acessível ao NVDA confirma que ele é texto real no DOM (não uma imagem de texto sem alternativa). Inicie o Firefox, abra o NVDA e navegue pela página usando o cursor de leitura. Qualquer texto que o NVDA não consiga ler deve ser investigado para determinar se é uma imagem de texto que requer teste de contraste em nível de imagem.
- Verificação com leitor de tela (VoiceOver + Safari no macOS): Ative o VoiceOver com Command+F5 e navegue pela página usando VO+Seta para a Direita. Assim como com o NVDA, texto que o VoiceOver ignora ou lê incorretamente pode indicar renderização de texto não padrão que requer inspeção manual de contraste.
- Simulação em escala de cinza: Ative o modo de exibição em escala de cinza por meio das configurações de acessibilidade do sistema operacional (disponível em Windows, macOS, iOS e Android). Isso remove todas as informações de cor e torna as diferenças de contraste imediatamente visíveis. Texto que se torna difícil de ler no modo em escala de cinza quase certamente falha na exigência de contraste aprimorado.
Como Corrigir
Texto de Corpo em Fundo Claro — Incorreto
<!-- Fails 1.4.6: #767676 on #ffffff yields approximately 4.54:1,
which passes AA (1.4.3) but falls far short of the 7:1 AAA requirement -->
<p style='color: #767676; background-color: #ffffff;'>
Please review our terms and conditions before proceeding.
</p>
Texto de Corpo em Fundo Claro — Correto
<!-- Passes 1.4.6: #595959 on #ffffff yields approximately 7.0:1,
meeting the enhanced contrast requirement for normal-weight body text -->
<p style='color: #595959; background-color: #ffffff;'>
Please review our terms and conditions before proceeding.
</p>
Título Colorido em Fundo de Marca — Incorreto
<!-- Fails 1.4.6: brand blue #4A90D9 on white #ffffff yields approximately 3.0:1.
Even though this is a heading and may appear large, bold headings at
common web sizes (e.g. 20px bold) may not qualify as WCAG "large text"
depending on rendering, and 3.0:1 fails even the large-text 4.5:1 threshold -->
<h2 style='color: #4A90D9; background-color: #ffffff;'>
Welcome to Our Services
</h2>
Título Colorido em Fundo de Marca — Correto
<!-- Passes 1.4.6: dark navy #1A3A5C on white #ffffff yields approximately 12.6:1.
Exceeds the 7:1 requirement for normal text and comfortably surpasses
the 4.5:1 large-text requirement. Brand identity is preserved through
the use of a darker shade within the same hue family. -->
<h2 style='color: #1A3A5C; background-color: #ffffff;'>
Welcome to Our Services
</h2>
Texto Sobre um Fundo em Gradiente — Incorreto
<!-- Fails 1.4.6: The gradient transitions from a dark color that provides
adequate contrast on the left to a light color that provides insufficient
contrast on the right. Text spanning the full width will fail at some point. -->
<div style='background: linear-gradient(to right, #1a1a1a, #cccccc); padding: 20px;'>
<p style='color: #ffffff;'>Create your account today and get started.</p>
</div>
Texto Sobre um Fundo em Gradiente — Correto
<!-- Passes 1.4.6: A semi-transparent dark overlay behind the text ensures
that foreground text maintains at least 7:1 contrast regardless of
the underlying gradient value at any point beneath the text block. -->
<div style='background: linear-gradient(to right, #1a1a1a, #cccccc); padding: 20px;'>
<p style='color: #ffffff; background-color: rgba(0,0,0,0.75); padding: 8px 12px; display: inline-block;'>
Create your account today and get started.
</p>
</div>
Texto de Placeholder em Campo de Formulário — Incorreto
<!-- Fails 1.4.6: default browser placeholder styling is typically around
#aaaaaa on white, yielding approximately 2.32:1. If placeholder text
conveys meaningful information (e.g. format hints), it must meet contrast requirements. -->
<input type='text' placeholder='DD/MM/YYYY' style='background: #ffffff;'>
Texto de Placeholder em Campo de Formulário — Correto
<!-- Passes 1.4.6: Override the default placeholder color to achieve 7:1 contrast.
Also adds a visible label as best practice, since placeholders disappear on input. -->
<label for='dob'>Date of Birth</label>
<input type='text' id='dob' placeholder='DD/MM/YYYY'
style='background: #ffffff; color: #000000;'>
<style>
input::placeholder {
color: #595959; /* approximately 7.0:1 on white — meets AAA */
}
</style>
Erros Comuns
- Confiar apenas em combinações de cores que passam AA sem verificar os limiares AAA: Muitos designers usam o cinza médio comum
#767676sobre branco, que passa em 1.4.3 com cerca de 4.54:1, mas falha em 1.4.6 por uma margem significativa. Sempre verifique em relação ao alvo de 7:1, não apenas 4.5:1. - Presumir que as isenções para texto grande se aplicam de forma muito ampla: A exceção para texto grande (4.5:1 em vez de 7:1) se aplica apenas a texto com pelo menos 18pt (24px) em peso regular ou pelo menos 14pt (18.67px) em negrito. Texto em 20px com peso regular não se qualifica e ainda deve atender a 7:1.
- Ignorar contraste em estados interativos: Aplicar uma cor mais clara em hover para criar affordance visual sem verificar se o estado em hover ainda atende a 7:1. Por exemplo, escurecer o plano de fundo de um botão em hover mantendo o texto branco ainda pode passar, mas clarear o texto em hover frequentemente causa falhas.
- Negligenciar cadeias de propriedades personalizadas de CSS: Definir uma cor de texto como
var(--color-primary)onde--color-primaryé definida globalmente, mas sobrescrita localmente no escopo de um componente sem reverificar o contraste. A cor efetivamente renderizada pode diferir do valor do token global e produzir uma taxa reprovada em contextos específicos de componentes. - Tratar a isenção de estado desabilitado como licença de design: Usar a isenção de UI inativa como justificativa para estilizar elementos desabilitados com contraste 1:1 (texto invisível), tornando os usuários incapazes de saber que um campo existe. Elementos desabilitados ainda devem ser visualmente perceptíveis, mesmo que estejam isentos da exigência de 7:1.
- Não testar texto renderizado sobre imagens ou vídeo: Colocar texto diretamente sobre uma imagem hero ou plano de fundo em vídeo e verificar o contraste apenas em relação à cor média, em vez da parte mais clara da imagem sobre a qual o texto passa. O contraste mínimo deve se manter em cada pixel sob o texto, não em média.
- Aplicar correções de contraste apenas em breakpoints de desktop: Designs responsivos que usam cores de fundo diferentes em breakpoints móveis — por exemplo, alternando de um fundo branco no desktop para um fundo bege claro em cartões no mobile — podem introduzir novas falhas de contraste em telas menores que não estavam presentes durante os testes em desktop.
- Esquecer o contraste do texto em indicadores de foco: Quando um anel de foco personalizado ou estado de foco altera tanto o plano de fundo quanto a cor do texto de um elemento focado, a nova combinação texto-plano de fundo no estado focado deve, independentemente, satisfazer a taxa de 7:1, independentemente do que o estado padrão atinge.
- Presumir que a isenção de logotipo se estende ao texto descritivo adjacente: Colocar um slogan ou descrição de produto no mesmo bloco tipográfico que um logotipo de marca e reivindicar a isenção de logotipo para todo o bloco. A isenção se aplica estritamente ao texto que é parte integrante do próprio logotipo, não a qualquer texto próximo.
- Não validar o contraste após sobrescritas de frameworks CSS: Importar uma biblioteca de componentes de terceiros ou framework CSS que redefine ou sobrescreve cores de texto com valores abaixo de 7:1 e então publicar esses padrões sem auditoria. Os padrões de frameworks quase nunca são calibrados para padrões de contraste AAA.
Relação com os Regulamentos de Acessibilidade da Turquia
A Circular Presidencial 2025/10 da Turquia, publicada no Diário Oficial nº 32933 em 21 de junho de 2025, estabelece requisitos obrigatórios de acessibilidade digital para uma ampla gama de instituições e organizações que operam na Turquia. A circular determina a conformidade com a WCAG 2.2 em Nível AA como padrão básico. Os tipos de entidades abrangidas incluem instituições e agências públicas, plataformas de e-commerce, bancos e prestadores de serviços financeiros, hospitais e organizações de saúde, empresas de telecomunicações com 200,000 ou mais assinantes, agências de viagem, empresas de transporte privado e escolas privadas autorizadas pelo Ministério da Educação Nacional (MoNE).
WCAG 1.4.6 Contrast (Enhanced) é um critério de Nível AAA e, portanto, não é um requisito obrigatório sob a Circular Presidencial. Organizações que alcançam apenas conformidade de Nível AA — o padrão básico exigido por lei — não estarão em violação da circular por omitirem a exigência de contraste aprimorado de 7:1, desde que satisfaçam o limiar AA de 4.5:1 para texto normal definido pelo critério 1.4.3.
No entanto, alcançar conformidade AAA em contraste representa um compromisso significativo com design inclusivo que vai muito além da conformidade legal mínima. Para instituições públicas, que têm a obrigação mais ampla de atender todos os cidadãos, independentemente do status de deficiência, adotar voluntariamente o padrão de contraste aprimorado sinaliza uma dedicação genuína ao acesso universal. Organizações de saúde e hospitais — setores em que pacientes podem já estar sob estresse físico ou cognitivo, ou podem estar interagindo com sistemas digitais em condições desafiadoras, como iluminação clínica intensa — têm um argumento prático particularmente forte para exceder o limiar mínimo de contraste. Da mesma forma, bancos e prestadores de serviços financeiros cujos clientes incluem cada vez mais pessoas idosas estão bem posicionados para se beneficiar da credibilidade e da confiança do usuário que a conformidade de contraste AAA comunica.
Organizações que buscam certificação ISO 30071-1, alinhamento com a norma europeia EN 301 549 ou qualquer processo internacional de aquisição que avalie maturidade em acessibilidade descobrirão que a conformidade de contraste em Nível AAA fortalece sua posição. À medida que a fiscalização da acessibilidade digital amadurece globalmente e especificamente na Turquia, critérios atualmente em Nível AAA historicamente migraram para status obrigatório em atualizações regulatórias sucessivas. Adotar contraste aprimorado agora posiciona as organizações à frente de prováveis exigências futuras e reduz o custo de eventual remediação.
Para organizações que utilizam o SDK de overlay da Accsible, as ferramentas de ajuste de contraste da plataforma podem ajudar usuários a aplicar modos de alto contraste em nível de widget, fornecendo uma camada compensatória que ajuda a preencher a lacuna entre os níveis de contraste do design publicado e as necessidades individuais do usuário. Isso não substitui o atendimento ao critério em nível de código-fonte, mas oferece suporte significativo em tempo de execução para usuários que precisam de contraste aprimorado e visitam sites que ainda não alcançaram conformidade AAA completa.
