screen-reader-testing
Faz seu agente testar sites usando leitores de tela para garantir que sejam acessíveis.
O que ela faz
Esta ferramenta ajuda a testar se sites e aplicativos funcionam bem com leitores de tela, como VoiceOver, NVDA e JAWS. Ela garante que pessoas com deficiência visual possam usar a web.
Quando usar
- ✓Verificar se um site é compatível com leitores de tela.
- ✓Corrigir problemas de acessibilidade.
- ✓Garantir que tecnologias assistivas funcionem corretamente.
Exemplo do que pedir para a IA
“Teste este site para garantir que ele seja acessível para usuários de leitores de tela.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta simula o uso de leitores de tela populares em diferentes sistemas operacionais e navegadores. Ela verifica se os elementos da página são lidos corretamente e se a navegação é intuitiva.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add wshobson/agents --skill screen-reader-testingOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/accessibility-compliance/skills/screen-reader-testing/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Testando com Leitores de Tela
Guia prático para testar aplicações web com leitores de tela para validação abrangente de acessibilidade.
Quando Usar Esta Habilidade
- Validar compatibilidade com leitores de tela
- Testar implementações de ARIA
- Depurar problemas de tecnologia assistiva
- Verificar acessibilidade de formulários
- Testar anúncios de conteúdo dinâmico
- Garantir acessibilidade de navegação
Conceitos Principais
1. Principais Leitores de Tela
| Leitor de Tela | Plataforma | Navegador | Uso |
|---|---|---|---|
| VoiceOver | macOS/iOS | Safari | ~15% |
| NVDA | Windows | Firefox/Chrome | ~31% |
| JAWS | Windows | Chrome/IE | ~40% |
| TalkBack | Android | Chrome | ~10% |
| Narrator | Windows | Edge | ~4% |
2. Prioridade de Teste
Minimum Coverage:
1. NVDA + Firefox (Windows)
2. VoiceOver + Safari (macOS)
3. VoiceOver + Safari (iOS)
Comprehensive Coverage:
+ JAWS + Chrome (Windows)
+ TalkBack + Chrome (Android)
+ Narrator + Edge (Windows)
3. Modos do Leitor de Tela
| Modo | Propósito | Quando Usado |
|---|---|---|
| Navegação/Virtual | Ler conteúdo | Leitura padrão |
| Foco/Formulários | Interagir com controles | Preencher formulários |
| Aplicação | Widgets personalizados | Aplicações ARIA |
Antes de testar no macOS, leia configuração, comandos e checklists do VoiceOver.
Para a cobertura necessária do iOS Safari, leia configuração e gestos do VoiceOver touch.
Antes de testar com NVDA, leia configuração, modos, comandos e scripts de teste do NVDA.
Antes de testar com JAWS ou TalkBack, leia configuração e comandos da plataforma.
Cenários Comuns de Teste
1. Diálogo Modal
<!-- Accessible modal structure -->
<div
role="dialog"
aria-modal="true"
aria-labelledby="dialog-title"
aria-describedby="dialog-desc"
>
<h2 id="dialog-title">Confirm Delete</h2>
<p id="dialog-desc">This action cannot be undone.</p>
<button>Cancel</button>
<button>Delete</button>
</div>
// Focus management
function openModal(modal) {
// Store last focused element
lastFocus = document.activeElement;
// Move focus to modal
modal.querySelector("h2").focus();
// Trap focus
modal.addEventListener("keydown", trapFocus);
}
function closeModal(modal) {
// Return focus
lastFocus.focus();
}
function trapFocus(e) {
if (e.key === "Tab") {
const focusable = modal.querySelectorAll(
'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])',
);
const first = focusable[0];
const last = focusable[focusable.length - 1];
if (e.shiftKey && document.activeElement === first) {
last.focus();
e.preventDefault();
} else if (!e.shiftKey && document.activeElement === last) {
first.focus();
e.preventDefault();
}
}
if (e.key === "Escape") {
closeModal(modal);
}
}
2. Regiões Dinâmicas (Live Regions)
<!-- Status messages (polite) -->
<div role="status" aria-live="polite" aria-atomic="true">
<!-- Content updates will be announced after current speech -->
</div>
<!-- Alerts (assertive) -->
<div role="alert" aria-live="assertive">
<!-- Content updates interrupt current speech -->
</div>
<!-- Progress updates -->
<div
role="progressbar"
aria-valuenow="75"
aria-valuemin="0"
aria-valuemax="100"
aria-label="Upload progress"
></div>
<!-- Log (additions only) -->
<div role="log" aria-live="polite" aria-relevant="additions">
<!-- New messages announced, removals not -->
</div>
3. Interface de Abas (Tabs)
<div role="tablist" aria-label="Product information">
<button role="tab" id="tab-1" aria-selected="true" aria-controls="panel-1">
Description
</button>
<button
role="tab"
id="tab-2"
aria-selected="false"
aria-controls="panel-2"
tabindex="-1"
>
Reviews
</button>
</div>
<div role="tabpanel" id="panel-1" aria-labelledby="tab-1">
Product description content...
</div>
<div role="tabpanel" id="panel-2" aria-labelledby="tab-2" hidden>
Reviews content...
</div>
// Navegação por teclado nas abas
tablist.addEventListener("keydown", (e) => {
const tabs = [...tablist.querySelectorAll('[role="tab"]')];
const index = tabs.indexOf(document.activeElement);
let newIndex;
…
Perguntas frequentes
Quais leitores de tela são testados?
Os principais leitores de tela testados são VoiceOver (macOS/iOS), NVDA (Windows), JAWS (Windows), TalkBack (Android) e Narrator (Windows).
O que é 'Modo de Navegação' e 'Modo de Foco'?
O Modo de Navegação é usado para ler o conteúdo da página, enquanto o Modo de Foco é usado para interagir com elementos como botões e campos de formulário.
Por que testar com vários leitores de tela?
Cada leitor de tela pode interpretar o conteúdo de forma ligeiramente diferente, então testar com vários garante uma experiência mais consistente e acessível para todos os usuários.
Detalhes
Descrição original do autor
Test web applications with screen readers including VoiceOver, NVDA, and JAWS. Use when validating screen reader compatibility, debugging accessibility issues, or ensuring assistive technology support.
repo: wshobson/agents
Popularidade
- Estrelas no GitHub
- 41 mil
- Posição no ranking
- #4792
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
wcag-audit-patterns
Ajuda seu agente a auditar sites para acessibilidade e corrigir problemas de acordo com as diretrizes WCAG.
wshobson/agents
multi-reviewer-patterns
Faz seu agente coordenar revisões de código paralelas, deduplicando achados e consolidando relatórios.
wshobson/agents
parallel-debugging
Permite ao agente depurar problemas complexos com investigações paralelas e análise de causa raiz.
wshobson/agents
parallel-feature-development
Coordena o desenvolvimento de novas funcionalidades por vários agentes. Ajuda a evitar conflitos quando vários agentes trabalham juntos.
wshobson/agents
Skills parecidas
dashboard-builder
Ajuda seu agente a criar painéis de monitoramento úteis. Ele transforma dados em gráficos que respondem a perguntas importantes sobre o sistema.
affaan-m/ECC
dev-team
Simula uma equipe de desenvolvimento colaborativa, onde diferentes papéis respondem a um problema juntos. É útil para obter múltiplas perspectivas sem trocar de agente manualmente.
affaan-m/ECC
ecc-council
Faz seu agente reunir um conselho de quatro vozes para tomar decisões difíceis. É útil quando há várias opções boas e é preciso debater antes de escolher.
affaan-m/ECC