Indicador de foco removido via CSS
O indicador de foco (anel azul/outline) é a única forma que usuários de teclado têm de saber onde estão na página. Removê-lo via CSS ":focus { outline: none }" é uma das violações mais graves.
Impacto por tipo de deficiência
Usuários que não conseguem usar mouse navegam por teclado — sem indicador de foco, ficam completamente desorientados na página.
Usuários com tremor que alternam entre mouse e teclado dependem do anel de foco para confirmar onde clicaram.
/* ❌ O pior código de acessibilidade existente */
* { outline: none; }
*:focus { outline: none; }
button:focus { outline: 0; }/* ✓ Nunca remover outline — melhorar o estilo se necessário */
:focus-visible {
outline: 3px solid #0048B6;
outline-offset: 2px;
border-radius: 4px;
}
/* ✓ :focus-visible mostra outline só para navegação por teclado */
/* (não mostra ao clicar com mouse — melhor UX para todos) */
/* ✓ Alternativa: custom focus ring */
button:focus-visible {
outline: none;
box-shadow: 0 0 0 3px #0048B6, 0 0 0 5px white;
}