# Acessibilidade

Meta de engenharia: WCAG 2.2 AA nos critérios aplicáveis. Esta entrega não é certificação. Normas visuais da marca não asseguram acessibilidade de cada combinação; testes estão separados abaixo.

## Implementação

O núcleo define foco visível, texto de ajuda, labels, estados e movimento reduzido. Novos componentes incluem IDs por instância, `aria-expanded`, seleção, mensagens com `role=status`, região de rolagem delimitada e navegação por teclado. Diálogos nativos recebem foco, tratam Escape/Tab e devolvem foco ao acionador. Tabs usam seleção e setas, incluindo direção RTL. Dropdowns permitem setas/Home/End/Escape. Ícones decorativos têm `aria-hidden`.

O viewport legado deixou de impedir zoom. Logos reservam o mínimo da p.11 — 170 px de wordmark na versão principal, 170 px de caixa na preferencial — e a margem de proteção medida em 0,163254 da largura do wordmark, com reorganização do cabeçalho estreito. Não reduzir a marca para corrigir overflow. Valores longos devem quebrar em componentes novos; tabelas largas usam região própria com nome acessível.

## Contraste calculado

`scripts/check-design-system.mjs` calcula luminância sRGB e mede texto principal/secundário, ação, estados, foco, borda de campo e tooltip nos dois temas: 18 pares. Alvos: 4,5:1 para texto normal; 3:1 para borda relevante/foco. Consulte valores reais em `evidencias/verificacao-estatica.json`. Esse teste cobre tokens, não todas as combinações contextuais do legado.

## Procedimento de QA

1. Build real; abrir dashboard, tabela, formulário, autenticação, portal e institucional.
2. Larguras 320/390/620/860/1120/1440; claro/escuro, densidade compacta, texto longo e imagem ausente.
3. Zoom 200%, Tab/Shift+Tab, Enter/Espaço, setas/Home/End em tabs/menus, Escape e retorno de foco em sobreposições.
4. Acionar busca vazia/sem resultados, paginação, validação, loading/erro/sucesso, arquivo local, calendário, carrossel e troca de tema sem duplicação de gráficos.
5. Conferir nomes acessíveis, semântica, IDs únicos, mensagens dinâmicas e resumos/tabelas dos gráficos; testar com leitor de tela na matriz da equipe.

Cada resultado deve constar de `validacao.md`. Testes de browser ainda não executados não podem ser substituídos pelo sucesso de `node --check` ou dos stubs. Auditoria integral das 88 páginas legadas e leitor de tela devem constar como pendência quando não houver evidência.
