Communitygithub.com

Acessibilidade (WCAG 2.2)

Projete, implemente e audite produtos digitais inclusivos usando WCAG 2.2 Nível AA. Use ao construir ou auditar UI que deve atender ao WCAG 2.2 Nível AA, ou ao revisar uma mudança para suporte a teclado, contraste ou leitor de tela.

O que é Acessibilidade (WCAG 2.2)?

Esta skill capacita desenvolvedores a criar interfaces digitais que seguem os princípios POUR (Perceptível, Operável, Compreensível e Robusto) definidos pelo WCAG 2.2 Nível AA. Ela fornece um guia prático para implementar critérios de sucesso como Tamanho do Alvo (Mínimo) e Aparência do Foco, abrangendo as plataformas Web (WAI-ARIA/HTML5), iOS (SwiftUI) e Android (Jetpack Compose). A skill estrutura o processo em cinco etapas: identificar o papel do componente, definir atributos perceptíveis (contraste 4.5:1), implementar controles operáveis (alvo 24x24 CSS pixels), garantir lógica compreensível e verificar compatibilidade robusta (Name, Role, Value, regiões ao vivo). Além de incluir mapeamentos entre plataformas, exemplos práticos e uma checklist de boas práticas, ela alerta sobre antipadrões como div-buttons e significado apenas por cor. É ideal para quem precisa garantir que produtos digitais sejam inclusivos para usuários de leitores de tela, navegação por teclado e outras tecnologias assistivas.

Funciona com~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/affaan-m/ECC/tree/main/skills/accessibility

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que Acessibilidade (WCAG 2.2) faz?

Esta skill garante que interfaces digitais sejam Perceptíveis, Operáveis, Compreensíveis e Robustas (POUR) para todos os usuários, incluindo aqueles que utilizam leitores de tela, controles por interruptor ou navegação por teclado. Ela foca na implementação técnica dos critérios de sucesso do WCAG 2.2.

Quando Usar

  • Definir especificações de componentes de UI para Web, iOS ou Android.
  • Auditar código existente para barreiras de acessibilidade ou lacunas de conformidade.
  • Implementar novos padrões do WCAG 2.2 como Tamanho do Alvo (Mínimo) e Aparência do Foco.
  • Mapear requisitos de design de alto nível para atributos técnicos (papéis ARIA, traits, hints).

Conceitos Principais

  • Princípios POUR: A base do WCAG (Perceptível, Operável, Compreensível, Robusto).
  • Mapeamento Semântico: Usar elementos nativos em vez de contêineres genéricos para obter acessibilidade integrada.
  • Árvore de Acessibilidade: A representação da UI que as tecnologias assistivas realmente "leem".
  • Gerenciamento de Foco: Controlar a ordem e a visibilidade do cursor do teclado/leitor de tela.
  • Rotulagem e Dicas: Fornecer contexto por meio de aria-label, accessibilityLabel e contentDescription.

Como Funciona

Etapa 1: Identificar o Papel do Componente

Determine a finalidade funcional (ex.: Isso é um botão, um link ou uma aba?). Use o elemento nativo mais semântico disponível antes de recorrer a papéis personalizados.

Etapa 2: Definir Atributos Perceptíveis

  • Garanta que o contraste do texto atenda a 4.5:1 (normal) ou 3:1 (grande/UI).
  • Adicione alternativas textuais para conteúdo não textual (imagens, ícones).
  • Implemente redimensionamento responsivo (até 400% de zoom sem perda de função).

Etapa 3: Implementar Controles Operáveis

  • Garanta um tamanho de alvo mínimo de 24x24 pixels CSS (WCAG 2.2 SC 2.5.8).
  • Verifique se todos os elementos interativos são alcançáveis via teclado e possuem um indicador de foco visível (SC 2.4.11).
  • Forneça alternativas de ponteiro único para movimentos de arrastar.

Etapa 4: Garantir Lógica Compreensível

  • Use padrões de navegação consistentes.
  • Forneça mensagens de erro descritivas e sugestões para correção (SC 3.3.3).
  • Implemente "Entrada Redundante" (SC 3.3.7) para evitar solicitar os mesmos dados duas vezes.

Etapa 5: Verificar Compatibilidade Robusta

  • Use padrões corretos de Name, Role, Value.
  • Implemente regiões aria-live ou ao vivo para atualizações dinâmicas de status.

Diagrama da Arquitetura de Acessibilidade

flowchart TD
  UI["Componente de UI"] --> Platform{Plataforma?}
  Platform -->|Web| ARIA["WAI-ARIA + HTML5"]
  Platform -->|iOS| SwiftUI["Traits de Acessibilidade + Rótulos"]
  Platform -->|Android| Compose["Semântica + Descrição de Conteúdo"]

  ARIA --> AT["Tecnologia Assistiva (Leitores de Tela, Interruptores)"]
  SwiftUI --> AT
  Compose --> AT

Mapeamento Entre Plataformas

FuncionalidadeWeb (HTML/ARIA)iOS (SwiftUI)Android (Compose)
Rótulo Principalaria-label / <label>.accessibilityLabel()contentDescription
Dica Secundáriaaria-describedby.accessibilityHint()Modifier.semantics { stateDescription = ... }
Papel de Açãorole="button".accessibilityAddTraits(.isButton)Modifier.semantics { role = Role.Button }
Atualizações Ao Vivoaria-live="polite".accessibilityLiveRegion(.polite)Modifier.semantics { liveRegion = LiveRegionMode.Polite }

Exemplos

Web: Busca Acessível

<form role="search">
  <label for="search-input" class="sr-only">Buscar produtos</label>
  <input type="search" id="search-input" placeholder="Buscar..." />
  <button type="submit" aria-label="Enviar Busca">
    <svg aria-hidden="true">...</svg>
  </button>
</form>

iOS: Botão de Ação Acessível

Button(action: deleteItem) {
    Image(systemName: "trash")
}
.accessibilityLabel("Excluir item")
.accessibilityHint("Remove permanentemente este item da sua lista")
.accessibilityAddTraits(.isButton)

Android: Alternância Acessível

Switch(
    checked = isEnabled,
    onCheckedChange = { onToggle() },
    modifier = Modifier.semantics {
        contentDescription = "Ativar notificações"
    }
)

Antipadrões a Evitar

  • Div-Botões: Usar um <div> ou <span> para um evento de clique sem adicionar um papel e suporte por teclado.
  • Significado Apenas por Cor: Indicar um erro ou status apenas com uma mudança de cor (ex.: tornar uma borda vermelha).
  • Foco Modal Não Contido: Modais que não retêm o foco, permitindo que usuários de teclado naveguem pelo conteúdo de fundo enquanto o modal está aberto. O foco deve ser contido e escapável através da tecla Escape ou de um botão explícito de fechar (WCAG SC 2.1.2).
  • Texto Alt Redundante: Usar "Imagem de..." ou "Foto de..." no texto alt (leitores de tela já anunciam o papel "Imagem").

Lista de Verificação de Boas Práticas

  • Elementos interativos atendem ao tamanho de alvo 24x24px (Web) ou 44x44pt (Nativo).
  • Indicadores de foco são claramente visíveis e de alto contraste.
  • Modais retêm o foco enquanto abertos e o liberam corretamente ao fechar (tecla Escape ou botão de fechar).
  • Dropdowns e menus restauram o foco para o elemento gatilho ao fechar.
  • Formulários fornecem sugestões de erro baseadas em texto.
  • Botões somente com ícone têm um rótulo de texto descritivo.
  • O conteúdo é redimensionado corretamente quando o texto é ampliado.

Referências

Skills Relacionadas

  • frontend-patterns
  • design-system
  • liquid-glass-design
  • swiftui-patterns

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

affaan-m/content-engine

Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.

affaan-m/ECC

Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.

affaan-m/fal-ai-media

Unified media generation via fal.ai MCP — image, video, and audio. Covers text-to-image (Nano Banana), text/image-to-video (Seedance, Kling, Veo 3), text-to-speech (CSM-1B), and video-to-audio (ThinkSound). Use when the user wants to generate images, videos, or audio with AI.

affaan-m/manim-video

日本語翻訳:このファイルは manim-video 用の日本語翻訳が必要です

affaan-m/remotion-video-creation

Remotion のベストプラクティス - React で動画を作成する。3D、アニメーション、音声、字幕、チャート、トランジションなどをカバーするドメイン固有の29のルール。

affaan-m/video-editing

AI-assisted video editing workflows for cutting, structuring, and augmenting real footage. Covers the full pipeline from raw capture through FFmpeg, Remotion, ElevenLabs, fal.ai, and final polish in Descript or CapCut. Use when the user wants to edit video, cut footage, create vlogs, or build video content.

agent-architecture-audit

Full-stack diagnostic for agent and LLM applications. Audits the 12-layer agent stack for wrapper regression, memory pollution, tool discipline failures, hidden repair loops, and rendering corruption. Produces severity-ranked findings with code-first fixes. Essential for developers building agent applications, autonomous loops, or any LLM-powered feature. Use when an agent or LLM feature misbehaves and the failing layer is unknown, or before shipping an agent stack.

agent-eval

Head-to-head comparison of coding agents (Claude Code, Aider, Codex, etc.) on custom tasks with pass rate, cost, time, and consistency metrics. Use when choosing between coding agents, or when a change to an agent setup needs measured pass rate, cost, and time rather than an impression.

agent-harness-construction

Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates. Use when defining or revising an agent

agentic-engineering

Operate as an agentic engineer using eval-first execution, decomposition, and cost-aware model routing. Use when planning or executing engineering work that agents will carry out end to end.

agentic-os

Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.

agent-introspection-debugging

Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.

agent-payment-x402

Add x402 payment execution to AI agents with per-task budgets, spending controls, and non-custodial wallets. Supports Base through agentwallet-sdk and X Layer through OKX Payments / OKX Agent Payments Protocol. Use when an agent must pay for something itself and needs per-task budgets, spending controls, and a non-custodial wallet.

agent-self-evaluation

Use after completing any non-trivial task. The agent self-rates its output on 5 axes — accuracy, completeness, clarity, actionability, conciseness — with concrete evidence per criterion. Produces a structured 1-5 scorecard with specific improvement suggestions.

agent-sort

Build an evidence-backed ECC install plan for a specific repo by sorting skills, commands, rules, hooks, and extras into DAILY vs LIBRARY buckets using parallel repo-aware review passes. Use when ECC should be trimmed to what a project actually needs instead of loading the full bundle.

ai-first-engineering

Engineering operating model for teams where AI agents generate a large share of implementation output. Use when setting team process, review gates, or ownership rules for a codebase largely written by agents.

ai-regression-testing

Regression testing strategies for AI-assisted development. Sandbox-mode API testing without database dependencies, automated bug-check workflows, and patterns to catch AI blind spots where the same model writes and reviews code. Use when adding regression coverage to AI-assisted code, or when the same model both wrote and reviewed a change.

android-clean-architecture

Clean Architecture patterns for Android and Kotlin Multiplatform projects — module structure, dependency rules, UseCases, Repositories, and data layer patterns. Use when structuring modules, layers, or data flow in an Android or KMP project.

angular-developer

Generates Angular code and provides architectural guidance. Trigger when creating projects, components, or services, or for best practices on reactivity (signals, linkedSignal, resource), forms, dependency injection, routing, SSR, accessibility (ARIA), animations, styling (component styles, Tailwind CSS), testing, or CLI tooling.

api-connector-builder

Build a new API connector or provider by matching the target repo

Habilidades Relacionadas