Teste de disponibilidade de interfaces
1) Porquê e o que achamos «pronto»
A disponibilidade (A11y) é um conjunto mensurável de condições em que o produto é igualmente compreendido e gerenciado para pessoas com diferentes características de percepção e motorização, dispositivos e contextos. Pronto significa:- critérios WCAG 2 foram cumpridos. 1/2. Nível 2 AA para plataformas de destino;
- uma interface inteira do teclado;
- trabalhar corretamente com as telas de tela;
- os contrastes estão de acordo com as normas;
- todos os estados/erros/estatais estão disponíveis fora da visão e sem o mouse;
- Consideramos a localização, a RENAULT, a redute motion e as características móveis.
2) Estratégia de teste (pirâmide A11y)
1. Auto/linters (revestimento rápido de 40 a 60% das classes de problemas).
2. Verificação manual de pattern (teclado, foco, conteúdo, lógica).
3. Sessões Assisive Tech (AT): screeners, zoom, filtros de cores.
4. Testes de campo com usuários (se possível).
O objetivo é capturar defeitos de sistema no nível de componentes/pattern para não se reproduzir em fichas.
3) Folha de cheque de verificação básica (Rápido
- Teclado: tudo é alcançável com tabelas/setas; a ordem de foco é lógica; há uma armadilha de foco nos modais; O ESC/Enter/Space está funcionando.
- O foco é visto em qualquer assunto/fundo.
- Contraste: texto ≥ 4. 5:1 (normal), 3:1 (grande), ícones/controles são legíveis.
- Semântica: Marcas de formatação corretas ('button', 'a', 'label', 'ul/li', 'th/td'), papéis e 'aria-' apenas se necessário.
- Ecrã: cabeçalhos na hierarquia, nomes significativos de botões/links, alternativas para ícones/imagens.
- Formulários: explícitos 'label', dicas/erros estão relacionados ('ária-describedy') e os textos de erro são específicos.
- Dinâmica: brindes/banners/erros são anunciados através de 'aria-live' ('polite '/' assertive').
- As animações respeitam 'preferers-reduced-motion'; sem «tremer» a interface.
- Localização/RENAULT: As telas-chave estão alinhadas, os números/datas/moedas são formatados pelos utilitários.
- Mobilidade: alvos de toque ≥ 44 x 44 px, zoom não proibido, rotação de tela não quebra conteúdo.
4) Papéis, responsabilidades e artefatos
Sistema de design: A11y requisitos na descrição de cada componente.
Desenvolvedores: máquinas automáticas, testes unit/interação com A11y-asserts.
QA: cenários manuais + sessões AT; relatório com seriedade/frequência.
UX/Conteúdo: Microopy erros/estatais, lisura em voz alta.
Artefactos: folha de cheque, cenários, screeners AT, lista de defeitos com WCAG, recomendações.
5) Verificações automáticas
Linters/analisadores: axe, eclint-plugin-jsx-a11y, pa11y, Lighthouse.
Em Pipeline: bloqueamos o PR em violações críticas (role/label/contraste/se-armadilhas).
Os resultados de contraste são testes visuais de tópicos/estados.
6) Teste manual: cenários
6. 1 Teclado
Passe a página apenas com o teclado (Tab/Shift + Tab/Enter/Space/Seta).
Verifique a visibilidade do foco, a prioridade, a disponibilidade de todas as ações, a falta de armadilhas e de elementos mortos.
No modal, o truque dentro, quando fechado, volta ao iniciador.
6. 2 Screeners (conjunto mínimo)
Desktop: NVDA/JAWS (Windows), VoiceOver (macOS).
Mobile: VoiceOver (iOS), TalkBack (Android).
Verificamos: cabeçalhos corretos (hierarquia H), nomes de botões/links, leitura de tabelas ('th '/' scope'), declaração de status, erros de formulário compreensíveis.
6. 3 Conteúdo e microcopy
Lemos textos críticos em voz alta, sem ambiguidades, sem «erro 400».
Erro = «o que é errado + como corrigir + limite/formato».
6. 4 Dinâmicas e regiões vivas
O brinde do sucesso é 'aria-live =' polite ', e o erro é' assertive '.
Progresso/download explicados pelo texto; skeleton é preferível a spinner.
7) Formas e erros (aprofundado)
Cada campo tem um label associado (não placeholder).
Os erros estão relacionados ao campo 'ária-invalid =' true ',' aria-describedy = '[id erro]'.
As fórmulas de formatos (data, telefone) são especificadas com antecedência; máscaras não quebram a entrada/inserção.
O banner total de erros no submit + scroll automático e o foco para o primeiro erro.
Os erros são específicos, sem jargão técnico.
8) Tabelas, listas, gráficos
Tabelas: cabeçalhos 'th' s 'scope =' col/row ', assinaturas, currículos.
As listas são reais 'ul/ol/li', não divas.
Gráficos - tabelas ou descrições alternativas; lendas disponíveis; as cores ≠ o único sinal.
9) Mídia e animação
Vídeo: legendas/transcrição; controle do teclado; sem o carro (ou com o silencioso).
GIF/microanimação: Desligue quando 'prefers-reduced-motion'; Evitamos os flashes.
Vibrações/sons - opcionais e duplicados visualmente/texto.
10) Disponibilidade móvel
Interações 44 x 44 px, espaçamento suficiente.
Não é permitido fazer zoom (meta viewport sem 'user-escalable = no').
Forma/teclado: Tipos corretos ('tel', 'email', 'number') que não escondem as funcionalidades do sistema.
Verificar em tópicos escuros e com fontes do sistema «maiores».
11) Localização, Números e RENAULT
Linhas através de chaves i18n com contexto; línguas longas (DE/TR) não quebram o layout.
Formatos de datas/moedas - utilitários, não linhas.
Modo de verba de espelho do ícone de navegação, verificando a ordem de foco e carruagem, entrada bidirecional.
12) Especificidades de flow crítico (iGaming)
Pagamentos/conclusões
Instruções claras, limites/prazo/comissão - texto.
Erros do provedor são declarados claramente, sem códigos; há uma alternativa à ação.
Confirmação de operação: foco no CTA lógico, possibilidade de cancelamento.
CUS/verificação
Dicas passo a passo para fotos/documentos; Progresso e ETA.
Erros «desfocado/desligado/cortado» - com exemplos de correção.
Tom neutro, nada de humor.
13) Avaliação da gravidade dos defeitos
Blocker: Não é possível concluir uma tarefa-chave (teclado/tela).
Critical: Funcionalidade crítica funciona, mas com barreiras sérias.
Maior: Atrapalha, há um caminho de volta.
Menor: Cosméticos/inadequação de guídeos sem afetar a tarefa.
Cada defeito é uma referência ao critério WCAG e ao cenário reproduzido.
14) Critérios de recepção (Definition of Done, A11y)
O cenário de teclado sem o mouse está 100%.
axe/Lightouse: não há violações críticas/elevadas.
Contraste AA em todos os temas/estados.
Ecrã-escavador de caminhos-chave (navbar, uniformes, modalks, brindes).
Documentação A11y para os novos componentes/fic (modelo de papel, ária, foco, exemplos).
A regressão dos testes A11y é verde em CI.
15) Processos e automação
Antes do desenvolvimento: A11y critérios em tarefas, layouts com estados de foco/erro.
Em desenvolvimento: Linters/ache na montagem local; visuais de contraste/foco.
Em CI: pa11y/axe-scan por páginas críticas; queda de bild em Blocker/Critical.
Após o lançamento: auditorias trimestrais, monitoramento de queixas do usuário através da marca A11y.
16) Anti-pattern
Playsholder em vez de label.
em vez de «button »/« a».
Anéis de foco desligados para a beleza.
A cor é o único hospedeiro.
Modalks sem trap de foco/ESC.
Proibição de escala no celular.
«Erro 400/500» sem explicação humana.
17) Modelos de cenário de teste
Cenário 1 - Navegação por teclado (página com formulário)
1. Até o primeiro campo, digite os dados.
2. Shift + Tab para trás - verifique a ordem correta.
3. Chame a validação (submit) - o foco é transferido para o primeiro erro.
4. Feche o modal com a tecla ESC, o foco voltou ao iniciador.
Cenário 2 - Screader (página de pagamento)
1. Navegue até o cabeçalho da página (h1) e ouça as seções.
2. Abra a seleção do método - a declaração de papéis/estados é audível.
3. Verifique conscientemente o valor errado - a mensagem foi lida e está ligada ao campo.
4. Um brinde de sucesso sobre o pagamento foi declarado «polite».
Cenário 3 - Dinâmica
1. Inicie a operação à espera> 3 c - há um texto sobre o processo/ETA.
2. Em caso de erro de rede, o banner 'assertive' está disponível no teclado e há um caminho 'repetir/ajudar'.
18) Micro-modelos úteis
Papéis/ária para brindes
html
<div role = "status" aria-live = "polite"> Payment accepted. Balance updated. </div>
<div role = "alert" aria-live = "assertive"> The payment was denied. Try another method. </div>
Relação de erro de campo
html
<label for = "amount "> Amount </label>
<input id="amount" aria-invalid="true" aria-describedby="amount-error">
<div id = "amount-error "> Minimum 100 UAH. Please enter a larger amount. </div>
Modal (atributos de sentido)
html
<div role="dialog" aria-modal="true" aria-labelledby="m-title">
<h2 id =" m-title "> Confirm Payment </h2>
<! -- content -->
<button> Confirm </button>
<button> Cancel </button>
</div>
19) Plano rápido de implementação de práticas A11y
1. Auditar componentes/patterns atuais (contraste/foco/semântica de papel).
2. Editar sistema de design: adicione uma seção A11y a cada componente.
3. Ferramentas: personalizar lentes/axe/pa11y/Lightouse localmente e em CI.
4. Treinamento: guias curtas para designers/desenvolvedores/copiadores.
5. Piloto: consertar 3 ou 5 defeitos mais frequentes (modais, uniformes, brindes).
6. Regulamento: DoD com critérios A11y; Auditoria trimestral.
Esparguete final
Verifica o teclado, o foco, os contrastes, a tela, a dinâmica.
Declara as estatais através da ária-live; erros - associados a campos.
Respeita a reduse motion, não proíba a escala.
Pense em semântica (tags/papel) em vez de «como é».
Automatiza os testes, mas complementa sempre os manuais.
Identifique os defeitos com referência ao WCAG, seriedade e cenário de reprodução.