acessibilidade

Garante que páginas HTML sigam práticas de acessibilidade WCAG 2.1 AA. Use quando criar ou modificar páginas HTML, adicionar componentes interativos, ou o usuário mencionar acessibilidade, ARIA, leitores de tela, ou contraste de cores.

181 stars

Best use case

acessibilidade is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Garante que páginas HTML sigam práticas de acessibilidade WCAG 2.1 AA. Use quando criar ou modificar páginas HTML, adicionar componentes interativos, ou o usuário mencionar acessibilidade, ARIA, leitores de tela, ou contraste de cores.

Teams using acessibilidade should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/acessibilidade/SKILL.md --create-dirs "https://raw.githubusercontent.com/majiayu000/claude-skill-registry/main/skills/data/acessibilidade/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/acessibilidade/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How acessibilidade Compares

Feature / AgentacessibilidadeStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Garante que páginas HTML sigam práticas de acessibilidade WCAG 2.1 AA. Use quando criar ou modificar páginas HTML, adicionar componentes interativos, ou o usuário mencionar acessibilidade, ARIA, leitores de tela, ou contraste de cores.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Skill: Acessibilidade Web (WCAG 2.1 AA)

Esta skill garante que todas as páginas do projeto sigam as diretrizes de acessibilidade WCAG 2.1 nível AA, tornando o site acessível para todos os usuários, incluindo pessoas com deficiências.

## Quando Usar

- Ao criar novas páginas HTML
- Ao adicionar componentes interativos (accordion, navbar, modals)
- Quando o usuário mencionar "acessibilidade", "ARIA", "alt text", "leitores de tela"
- Ao revisar código HTML existente
- Quando adicionar imagens, ícones ou conteúdo visual
- Ao criar formulários (se aplicável)

## Princípios WCAG 2.1

### 1. Perceptível
Informação e componentes da interface devem ser apresentados de forma perceptível aos usuários.

### 2. Operável
Componentes da interface e navegação devem ser operáveis por todos os usuários.

### 3. Compreensível
Informação e operação da interface devem ser compreensíveis.

### 4. Robusto
Conteúdo deve ser robusto o suficiente para ser interpretado por diferentes tecnologias assistivas.

## Diretrizes Principais

### Estrutura Semântica

**Hierarquia de Headings:**
- Use h1, h2, h3... em ordem hierárquica
- Não pule níveis (h1 → h3 é incorreto)
- Apenas um h1 por página

**Tags Semânticas HTML5:**
```html
<nav>      <!-- Navegação -->
<main>     <!-- Conteúdo principal -->
<section>  <!-- Seções -->
<article>  <!-- Conteúdo independente -->
<footer>   <!-- Rodapé -->
```

### ARIA (Accessible Rich Internet Applications)

**Roles:**
```html
<div role="progressbar" aria-valuenow="85" aria-valuemin="0" aria-valuemax="100">
```

**Labels:**
```html
<button aria-label="Fechar menu">✕</button>
```

**Atributos ARIA Essenciais:**
- `aria-label`: Texto alternativo para leitores de tela
- `aria-expanded`: Estado expandido/colapsado
- `aria-controls`: Relacionamento entre elementos
- `aria-hidden`: Ocultar elementos decorativos
- `aria-live`: Regiões que atualizam dinamicamente

### Navegação por Teclado

**Requisitos:**
- Todos os elementos interativos devem ser acessíveis via Tab
- Ordem de tab lógica e sequencial
- Indicadores visuais de foco visíveis
- Não use `tabindex` com valores positivos

**Elementos Focáveis:**
- Links (`<a>`)
- Botões (`<button>`)
- Inputs (`<input>`, `<select>`, `<textarea>`)
- Elementos com `tabindex="0"`

### Contraste de Cores

**Requisitos WCAG AA:**
- Texto normal (< 18pt): mínimo 4.5:1
- Texto grande (≥ 18pt ou ≥ 14pt bold): mínimo 3:1

**Combinações Bootstrap Seguras:**
✅ `bg-dark` + `text-white`
✅ `bg-primary` + `text-white`
✅ `bg-light` + `text-dark`
✅ `bg-warning` + `text-dark`

⚠️ **Evite:**
❌ `bg-warning` sem `text-dark`
❌ Cores claras em fundos claros
❌ Texto cinza claro em fundo branco

### Imagens e Conteúdo Visual

**Atributo Alt:**
```html
<!-- Imagem informativa -->
<img src="carta.jpg" alt="Carta Pikachu Base Set graduada nota 9">

<!-- Imagem decorativa -->
<img src="decoracao.png" alt="">
<!-- ou -->
<div aria-hidden="true">🔥</div>
```

**Emojis:**
Como este projeto usa emojis decorativos:
```html
<div class="display-1" aria-hidden="true">🔥</div>
<h2>Charizard</h2>
```

### Links e Botões

**Texto Descritivo:**
```html
<!-- ✅ Bom -->
<a href="charizard.html">Ver detalhes do Charizard</a>

<!-- ❌ Ruim -->
<a href="charizard.html">Clique aqui</a>
```

**Área de Clique:**
- Mínimo 44x44px (Bootstrap já garante com `.btn`)
- Espaçamento adequado entre elementos clicáveis

### Componentes Bootstrap com ARIA

**Accordion:**
```html
<button class="accordion-button"
        aria-expanded="true"
        aria-controls="collapse1">
    Título
</button>
<div id="collapse1" class="accordion-collapse collapse show">
    Conteúdo
</div>
```

**Navbar Toggle:**
```html
<button class="navbar-toggler"
        type="button"
        data-bs-toggle="collapse"
        data-bs-target="#navbarNav"
        aria-controls="navbarNav"
        aria-expanded="false"
        aria-label="Alternar navegação">
    <span class="navbar-toggler-icon"></span>
</button>
```

**Progress Bars:**
```html
<div class="progress" style="height: 30px;">
    <div class="progress-bar bg-success"
         role="progressbar"
         style="width: 85%;"
         aria-valuenow="85"
         aria-valuemin="0"
         aria-valuemax="100">
        <span class="fw-bold">85%</span>
    </div>
</div>
```

**Modals:**
```html
<div class="modal" id="modalFrente" tabindex="-1" aria-labelledby="modalFrenteLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="modalFrenteLabel">Título</h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Fechar"></button>
            </div>
        </div>
    </div>
</div>
```

### Responsividade e Zoom

**Viewport:**
```html
<meta name="viewport" content="width=device-width, initial-scale=1.0">
```

**Requisitos:**
- Conteúdo deve ser legível até 200% de zoom
- Não bloqueie zoom (não use `maximum-scale=1.0`)
- Layout deve adaptar sem scroll horizontal

### Idioma

**Tag HTML:**
```html
<html lang="pt-BR">
```

**Mudanças de Idioma:**
```html
<p>Este é um <span lang="en">Base Set</span> Charizard</p>
```

## Checklist de Acessibilidade

Ao criar ou modificar uma página, verifique:

**Estrutura:**
- ✅ `<html lang="pt-BR">` definido
- ✅ Hierarquia de headings correta (h1, h2, h3...)
- ✅ Tags semânticas HTML5 usadas apropriadamente

**Conteúdo:**
- ✅ Alt text em todas as imagens informativas
- ✅ `aria-hidden="true"` em imagens/emojis decorativos
- ✅ Links com texto descritivo (não "clique aqui")
- ✅ Contraste de cores adequado (4.5:1 mínimo)

**Interatividade:**
- ✅ Navegação por teclado funcional
- ✅ Indicadores de foco visíveis
- ✅ ARIA labels em botões sem texto
- ✅ Navbar com atributos ARIA corretos
- ✅ Accordion com `aria-expanded` e `aria-controls`
- ✅ Progress bars com `role` e atributos `aria-value*`
- ✅ Modals com `aria-labelledby` e `aria-hidden`

**Responsividade:**
- ✅ Viewport meta tag configurada
- ✅ Funciona em 200% de zoom
- ✅ Sem scroll horizontal em mobile

## Testes de Acessibilidade

### Testes Manuais

1. **Navegação por Teclado:**
   - Use apenas Tab, Enter, Espaço, Setas
   - Verifique se todos os elementos interativos são alcançáveis
   - Confirme que a ordem de foco é lógica

2. **Leitor de Tela:**
   - Windows: NVDA (gratuito)
   - Mac: VoiceOver (nativo)
   - Verifique se todo o conteúdo é lido corretamente

3. **Zoom:**
   - Teste com 200% de zoom no navegador
   - Verifique se não há quebra de layout
   - Confirme que todo o conteúdo permanece legível

4. **Desabilitar CSS:**
   - Veja se o conteúdo ainda faz sentido
   - Verifique se a hierarquia está correta

### Ferramentas Automatizadas

- **axe DevTools:** Extensão para Chrome/Firefox
- **WAVE:** Avaliador de acessibilidade web
- **Lighthouse:** Painel no Chrome DevTools (aba Accessibility)
- **WebAIM Contrast Checker:** https://webaim.org/resources/contrastchecker/

## Correções Comuns

### Problema: Imagem sem alt
```html
<!-- ❌ Antes -->
<img src="carta.jpg">

<!-- ✅ Depois -->
<img src="carta.jpg" alt="Carta Charizard Base Set">
```

### Problema: Link não descritivo
```html
<!-- ❌ Antes -->
<a href="detalhes.html">Clique aqui</a>

<!-- ✅ Depois -->
<a href="detalhes.html">Ver detalhes da carta Charizard</a>
```

### Problema: Botão sem label
```html
<!-- ❌ Antes -->
<button class="btn-close" data-bs-dismiss="modal"></button>

<!-- ✅ Depois -->
<button class="btn-close" data-bs-dismiss="modal" aria-label="Fechar"></button>
```

### Problema: Emoji sem aria-hidden
```html
<!-- ❌ Antes -->
<div class="display-1">🔥</div>

<!-- ✅ Depois -->
<div class="display-1" aria-hidden="true">🔥</div>
```

### Problema: Contraste insuficiente
```html
<!-- ❌ Antes -->
<span class="badge bg-warning">Aviso</span>

<!-- ✅ Depois -->
<span class="badge bg-warning text-dark">Aviso</span>
```

## Recursos

- [WCAG 2.1 Quick Reference](https://www.w3.org/WAI/WCAG21/quickref/)
- [Bootstrap 5 Accessibility](https://getbootstrap.com/docs/5.3/getting-started/accessibility/)
- [WebAIM Contrast Checker](https://webaim.org/resources/contrastchecker/)
- [axe DevTools](https://www.deque.com/axe/devtools/)
- [WAVE Extension](https://wave.webaim.org/extension/)

## Integração com Outras Skills

Esta skill trabalha em conjunto com:
- **bootstrap-guidelines:** Para usar classes Bootstrap acessíveis
- **codigo-html:** Para estrutura HTML semântica
- **estrutura-paginas:** Para layout acessível de páginas

Ao criar ou modificar páginas, sempre considere acessibilidade como prioridade, não como complemento.

Related Skills

tech-blog

159
from majiayu000/claude-skill-registry

Generates comprehensive technical blog posts, offering detailed explanations of system internals, architecture, and implementation, either through source code analysis or document-driven research.

Content & DocumentationClaude

lets-go-rss

159
from majiayu000/claude-skill-registry

A lightweight, full-platform RSS subscription manager that aggregates content from YouTube, Vimeo, Behance, Twitter/X, and Chinese platforms like Bilibili, Weibo, and Douyin, featuring deduplication and AI smart classification.

Content & Documentation

whisper-transcribe

159
from majiayu000/claude-skill-registry

Transcribes audio and video files to text using OpenAI's Whisper CLI, enhanced with contextual grounding from local markdown files for improved accuracy.

Media Processing

ux

159
from majiayu000/claude-skill-registry

This AI agent skill provides comprehensive guidance for creating professional and insightful User Experience (UX) designs, covering user research, information architecture, interaction design, visual guidance, and usability evaluation. It aims to produce actionable, user-centered solutions that avoid generic AI aesthetics.

UX Design & StrategyClaude

grail-miner

159
from majiayu000/claude-skill-registry

This skill assists in setting up, managing, and optimizing Grail miners on Bittensor Subnet 81, handling tasks like environment configuration, R2 storage, model checkpoint management, and performance tuning.

DevOps & Infrastructure

chrome-debug

159
from majiayu000/claude-skill-registry

This skill empowers AI agents to debug web applications and inspect browser behavior using the Chrome DevTools Protocol (CDP), offering both collaborative (headful) and automated (headless) modes.

Coding & DevelopmentClaude

astro

159
from majiayu000/claude-skill-registry

This skill provides essential Astro framework patterns, focusing on server-side rendering (SSR), static site generation (SSG), middleware, and TypeScript best practices. It helps AI agents implement secure authentication, manage API routes, and debug rendering behaviors within Astro projects.

Coding & Development

vly-money

159
from majiayu000/claude-skill-registry

Generate crypto payment links for supported tokens and networks, manage access to X402 payment-protected content, and provide direct access to the vly.money wallet interface.

Fintech & CryptoClaude

modal-deployment

159
from majiayu000/claude-skill-registry

Run Python code in the cloud with serverless containers, GPUs, and autoscaling using Modal. This skill enables agents to generate code for deploying ML models, running batch jobs, serving APIs, and scaling compute-intensive workloads.

DevOps & Infrastructure

thor-skills

159
from majiayu000/claude-skill-registry

An entry point and router for AI agents to manage various THOR-related cybersecurity tasks, including running scans, analyzing logs, troubleshooting, and maintenance.

SecurityClaude

ontopo

159
from majiayu000/claude-skill-registry

An AI agent skill to search for Israeli restaurants, check table availability, view menus, and retrieve booking links via the Ontopo platform, acting as an unofficial interface to its data.

General Utilities

advanced-skill-creator

181
from majiayu000/claude-skill-registry

Meta-skill that generates domain-specific skills using advanced reasoning techniques. PROACTIVELY activate for: (1) Create/build/make skills, (2) Generate expert panels for any domain, (3) Design evaluation frameworks, (4) Create research workflows, (5) Structure complex multi-step processes, (6) Instantiate templates with parameters. Triggers: "create a skill for", "build evaluation for", "design workflow for", "generate expert panel for", "how should I approach [complex task]", "create skill", "new skill for", "skill template", "generate skill"