# A11ysweep

> Use when asked to audit accessibility or UX polish of a locally runnable app — color contrast, tap-target size, ARIA/labels, keyboard navigation, locale parity, AI-generated UI slop. Triggers on "접근성 점검", "a11y audit", "UX 점검", "대비/탭타깃 확인".

- Skill: `testbeagle/a11ysweep` (Agent Skill)
- Install (CLI): `npx skillmds@latest add testbeagle/a11ysweep`
- Raw SKILL.md: https://api.skillmd.com/api/skills/testbeagle/a11ysweep/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- Author: TestBeagle (https://skillmd.com/u/testbeagle)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/testbeagle/a11ysweep

---


# a11ysweep

Plan-gated accessibility and UX audit of a locally running app: contrast, tap targets, labels, keyboard access, locale parity, and AI-built UI slop — reported against WCAG with evidence.

## Phase 0 — Discover (reuse preflight)

Run/reuse `preflight` for targets, run commands, drivers, output location. Reuse any repo a11y tooling found (e.g. touch-target or localization-parity lint scripts).

## Phase 1 — Plan + approval gate (MANDATORY)

Present the screens/routes to audit and the checks per platform, then stop per the shared gate in `../beagle-shared/approval-gate.md`.

## Phase 2 — Audit

**Web** (`../beagle-shared/drivers-web.md`):
- axe violations + contrast per route: `npx @axe-core/cli http://localhost:PORT/route` (any driver; needs Chrome). With chrome-devtools MCP you may instead inject axe-core via `evaluate_script` and run `axe.run`.
- Contrast: confirm axe's contrast results against computed colors; flag body text below WCAG AA (4.5:1; 3:1 for large text).
- Keyboard (interactive driver required): walk focus order with `agent-browser press Tab` + `snapshot` (or the MCP's `press_key`); flag traps, invisible focus, unreachable controls. Capture-only driver → 검증 불가.
- Labels: inputs/buttons/icons without an accessible name — `agent-browser snapshot` shows the accessible tree; unnamed controls stand out.

**Mobile** (`../beagle-shared/drivers-mobile.md`):
- Tap targets below the platform minimum (iOS 44pt, Android 48dp) — reuse the repo's touch-target check if present.
- Missing accessibility labels (`accessibilityLabel` / `contentDescription`).
- Locale parity: strings present in one language but not another (reuse the repo's localization-parity lint) — capture the same screen in each locale.

**UI slop** (review prompts, not absolute bans — keep intentional, justified design):
- Korean body text below ~14px.
- Default AI-blue/purple palette (e.g. `#3B82F6`) with no brand rationale.
- Uniform 3/4-column grids where rhythm/emphasis would serve the content.
- Box shadows on every surface; extreme gradients the brand doesn't own.

## Phase 3 — Report

Write per `../beagle-shared/report-base.md` (Korean default, anti-slop). Per finding: WCAG 기준(있으면) · 위치 · 왜(검증: axe rule / 측정값 / 스크린샷) · 수정 제안 · 확신. Unaudited screens → 검증 불가.

Optionally offer a static re-check runner via `../beagle-shared/emit-runner.md`.

