From dev-team-kit-fv
Reviews digital products against WCAG 2.2 AA with automated, keyboard, screen reader, and contrast tests. Use for pre-merge a11y audits, form/component validation, and defining accessibility requirements.
How this skill is triggered — by the user, by Claude, or both
Slash command
/dev-team-kit-fv:22-accessibility-specialistThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Acessibilidade nao e um check cosmetico de ultima hora — e um conjunto de requisitos verificaveis (WCAG 2.2 AA) que decidem se 15-20% dos usuarios conseguem usar o produto. Esta skill traz rigor dedicado sem depender de UI/UX, Frontend ou SEO improvisarem.
Acessibilidade nao e um check cosmetico de ultima hora — e um conjunto de requisitos verificaveis (WCAG 2.2 AA) que decidem se 15-20% dos usuarios conseguem usar o produto. Esta skill traz rigor dedicado sem depender de UI/UX, Frontend ou SEO improvisarem.
Esta skill segue GLOBAL.md, policies/execution.md, policies/handoffs.md, policies/quality-gates.md, policies/token-efficiency.md, policies/verification-before-completion.md (toda claim de "acessivel" precisa de evidencia: axe limpo, teste de teclado, ou screen reader) e policies/stack-flexibility.md.
Quando memory/constitution.md define eixo UX/acessibilidade:
Ferramentas automaticas pegam ~30-40% das violacoes WCAG. As outras exigem mao e ouvido.
| Metodo | Cobre | Como |
|---|---|---|
| Automatico | contraste, alt faltando, label faltando, ARIA invalido, ordem de heading | axe-core (via @axe-core/playwright, jest-axe, ou extensao Axe DevTools); Lighthouse a11y |
| Teclado | foco, ordem, traps, ativacao, skip links | Desconecte o mouse. Tab/Shift+Tab/Enter/Space/Esc/setas pelo fluxo inteiro |
| Screen reader | nome/role/estado anunciados, live regions, contexto | NVDA (Win, gratis) ou VoiceOver (Mac, Cmd+F5); navegue por landmarks e headings |
| Zoom / reflow | 200%-400% zoom sem perda de conteudo, reflow a 320px | Browser zoom + viewport estreito; sem scroll horizontal em texto |
Perceivable
<img> com alt (decorativa → alt=""); icone-botao com label acessivel<table> com <th>Operable
outline: none sem substituto)Understandable
<label> associado (htmlFor/id), nao so placeholderaria-describedby)Robust
aria-live (toast, erro, contador)Motion
prefers-reduced-motion respeitado em toda animacao nao-essencialIcone-botao sem nome acessivel (1.1.1 / 4.1.2)
<!-- ERRADO: screen reader anuncia "button" sem contexto -->
<button><svg>...</svg></button>
<!-- CERTO -->
<button aria-label="Fechar dialogo"><svg aria-hidden="true">...</svg></button>
Erro de form so por cor (1.4.1 / 3.3.1)
<!-- ERRADO: borda vermelha e a unica pista -->
<input class="border-red-500" />
<!-- CERTO: texto + associacao + estado programatico -->
<input aria-invalid="true" aria-describedby="email-err" />
<p id="email-err" role="alert">Email invalido: falta o @</p>
prefers-reduced-motion (2.3.3)
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
Regra de ouro ARIA: HTML nativo > ARIA. <button> ja e focavel, clicavel por teclado e tem role. Um <div role="button" tabindex="0"> exige reimplementar Enter/Space na mao — e quase sempre faz errado.
outline: none sem :focus-visible substituto → teclado fica invisivelaria-label em elemento nao-interativo (ignorado) ou duplicando texto visiveltabindex positivo (tabindex="3") → quebra a ordem natural, vira pesadelo de manutencaojest-axe/@axe-core/playwright para regredirpolicies/handoffs.md e, quando util, templates/accessibility-check.mdnpx claudepluginhub felvieira/claude-skills-fv --plugin dev-team-kit-fvAudits products for WCAG 2.1 AA compliance using automated scanning, color contrast analysis, keyboard navigation tests, and screen reader testing.
Audits web accessibility for WCAG 2.1 AA compliance using checklists across perceptible, operable, comprehensible, robust principles, with issues and code fixes.
Audits web/app accessibility covering semantics, keyboard flow, focus, labels, ARIA, contrast, and responsive behavior. Useful for frontend changes or existing UI needing accessibility review.