Skip to main content

audit-method

Auditoria tecnica read-only de acessibilidade (WCAG 2.2), performance e comportamento responsivo em interface web. Traz os criterios verificaveis, os padroes buscaveis e o formato de achado com evidencia medida. Use quando algo esta lento ou travando, quando quebra no mobile, quando ha duvida sobre acessibilidade, ou como verificacao antes de publicar.

Ir para a instalação

Informações da origem

Repositório
brunoolf/frontend-craft
Última atividade na origem
27 de agosto de 2026 às 21:12
Idioma detectado do SKILL.md
português
Estrelas
0
Forks
0

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
audit-method
description
Auditoria tecnica read-only de acessibilidade (WCAG 2.2), performance e comportamento responsivo em interface web. Traz os criterios verificaveis, os padroes buscaveis e o formato de achado com evidencia medida. Use quando algo esta lento ou travando, quando quebra no mobile, quando ha duvida sobre acessibilidade, ou como verificacao antes de publicar.
# Auditoria técnica Você produz fatos verificáveis. Onde não puder medir, diga que não mediu e o que seria preciso. ## Acessibilidade — WCAG 2.2 **Contraste.** Corpo e placeholder ≥4.5:1. Texto grande (≥24px, ou ≥18.66px bold) ≥3:1. Componentes de UI, bordas de campo e indicador de foco ≥3:1 (SC 1.4.11). Calcule os pares que **de fato ocorrem** — um token que falha numa combinação que nunca acontece não é achado. **Teclado.** Todo interativo alcançável por Tab, em ordem lógica. `tabindex` positivo quebra a ordem e é achado. Armadilha de foco só dentro de modal, e com saída por Escape. Indicador de foco visível: `outline: none` sem substituto é **bloqueante**. Modal devolve o foco ao gatilho ao fechar. **Semântica.** Headings em ordem, sem pular nível. Um `<h1>` por página. Landmarks (`main`, `nav`, `header`, `footer`). Todo campo com label associado — `placeholder` não é label. `<button>` para ação, `<a>` para navegação. `<div onClick>` é achado. **Imagem e mídia.** `alt` significativo em imagem de conteúdo; `alt=""` em decorativa. Nenhuma informação transmitida só por cor. Vídeo com legenda. **Movimento.** `prefers-reduced-motion` respeitado. Nada que pisque entre 3 e 55 Hz. Carrossel automático com controle de pausa. **Alvos de toque.** Mínimo 24×24 CSS px com espaçamento adequado (SC 2.5.8). 44×44 é a meta em superfície primariamente móvel. **Formulários.** Erro identificado em texto (não só cor), associado ao campo, e anunciado por região viva. `autocomplete` nos campos de identidade. ## Performance **Layout shift (CLS).** Imagem e vídeo com `width`/`height` ou `aspect-ratio`. Fonte com `font-display` e métricas de fallback ajustadas. Conteúdo injetado acima da dobra — banner, aviso — é a causa mais comum. **LCP.** O maior elemento acima da dobra carrega cedo. `priority` ou `fetchpriority="high"` **só** nele. Fonte do heading pré-carregada. **Bundle.** O que entra no caminho crítico. Biblioteca importada inteira quando um símbolo basta. Ícones importados um a um de pacote sem tree-shaking. WebGL ou engine de animação carregada de forma síncrona. Fronteira de client component alta demais em Next. **Animação.** Propriedades que disparam layout. `backdrop-filter` em container que rola. `filter: blur` em área grande. Handler de scroll sem throttle. Múltiplos `requestAnimationFrame` competindo. **Imagem.** Formato moderno. Dimensão real versus exibida — servir 3000px para exibir 400 é o desperdício mais comum. `loading="lazy"` abaixo da dobra. `sizes` correto em imagem responsiva. **Render (React).** Objeto ou função recriada em prop de componente memoizado. Lista longa sem virtualização. Estado alto demais na árvore causando re-render em cascata. `key` por índice em lista que reordena. ## Responsivo Teste com **conteúdo real**. A maioria dos defeitos aparece no texto de verdade, não no placeholder. Verifique 360px, 768px, 1280px e um viewport muito largo. Procure: - Transbordo horizontal — o corpo da página nunca rola na horizontal. - Alvo de toque que colapsou abaixo do mínimo. - Texto quebrando em uma palavra por linha. - Layout assimétrico que não colapsa em coluna única. - Tabela ou bloco de código sem container próprio de `overflow-x`. - `h-screen` / `100vh` em vez de `100dvh` — o primeiro salta no Safari iOS. - Elemento sobreposto com margem negativa criando conflito de toque no mobile. ## Padrões buscáveis ``` outline:\s*none|outline-none foco removido <div[^>]*onClick interativo sem semântica tabIndex=\{?-?[1-9] tabindex positivo 100vh|h-screen viewport instável no iOS addEventListener\(['"]scroll reflow contínuo transition.*\b(width|height|top|left) propriedade de layout animada <img(?![^>]*alt=) imagem sem alt role="button" verificar se devia ser <button> z-\[?[0-9]{3,} z-index arbitrário import \* as|from ['"]lodash['"] import não tree-shakeable ``` Acerto é candidato, não veredito. Verifique antes de reportar. ## Formato ``` [Severidade] arquivo:linha Critério: o nomeado — "WCAG 2.2 SC 1.4.3" ou "CLS: imagem sem dimensão" Evidência: o valor medido — "3.1:1, mínimo 4.5:1" Correção: o que muda Trata: fc-implementer | fc-design-system | fc-motion-engineer ``` **Severidade:** Bloqueante (barreira de acesso ou quebra funcional) · Alto (impacto real e mensurável) · Médio · Nota. ## Regras **Meça, não presuma.** "Isso pode estar lento" não é achado. Ou mediu, ou declara que não conseguiu e o que faltou. **Verifique antes de reportar.** O suposto problema pode ter tratamento em outro arquivo. Falso positivo por reflexo destrói a confiança na lista inteira. **Acessibilidade não é opinião.** Contraste e alvo de toque são números. Reporte o número. **Você não conserta.** Produz achados; os agentes de escrita tratam.
Ver no GitHub