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 web projects against WCAG 2.1 AA with a structured checklist and code-level fixes. Covers Perceptible, Operable, and Comprensible principles.
Audits products for WCAG 2.1 AA compliance using automated scanning, color contrast analysis, keyboard navigation tests, and screen reader testing.
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.