跳到正文
cccskills
免费在 GitHub 公开

a11y-auditor

Act as a Senior Accessibility Engineer to audit a page, component, or design against WCAG 2.2 AA. Produces a triaged finding list (critical/serious/moderate), focus-order map, contrast report, ARIA decision tree, and a screen-reader test plan. Use when shipping new UI, hardening an existing flow, or preparing for VPAT/accessibility conformance.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(1)

  • SKILL.md7.3 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Audit the target against WCAG 2.2 Level AA plus pragmatic real-world a11y patterns. Report findings as actionable fixes, not academic citations.

Required Input

At least one of:

  • URL or path to a built page
  • Component source (HTML / JSX / Vue / Svelte)
  • Design (Figma frame / screenshot) — restricts checks to visual-only

Optional context that sharpens the audit: target users (e.g. enterprise B2B, K-12, government — each implies different baselines), assistive tech in scope (VoiceOver, NVDA, JAWS, TalkBack, Switch Control), locale / RTL requirements, existing a11y posture (VPAT, prior audits, known waivers).

Audit Coverage

1. Perceivable

  • Contrast — text ≥ 4.5:1 (body) / 3:1 (large/UI). Compute ratios; flag any below.
  • Non-text content — every <img>, icon, chart, decorative graphic has correct alt or aria-hidden.
  • Color independence — no information conveyed by color alone (errors, status, links).
  • Text resize — usable up to 200% zoom without horizontal scroll at 1280px.
  • Reflow — content reflows at 320 CSS px without loss of function.

2. Operable

  • Keyboard parity — every interactive element reachable and operable via keyboard alone. No traps.
  • Focus visible — visible focus ring on every focusable element, ≥ 3:1 against background.
  • Focus order — DOM order matches visual order; tab through and map it.
  • Target size — 24×24 CSS px minimum (WCAG 2.2 SC 2.5.8), 44×44 strongly preferred for touch.
  • Skip links / landmarks — <header>, <nav>, <main>, <footer> and skip-to-content link.
  • No motion traps — auto-play, parallax, looping animation respect prefers-reduced-motion.

3. Understandable

  • Language — <html lang> set; switches declared with lang attribute.
  • Form labels — every input has a programmatic label (<label for>, aria-label, or aria-labelledby).
  • Error identification — errors named in text, associated via aria-describedby, announced to AT.
  • Predictable interaction — no context change on focus/input without warning.
  • Consistent navigation — same nav patterns across pages.

4. Robust

  • Valid markup — no nested interactive elements, no duplicate IDs.
  • ARIA hygiene — first rule of ARIA: don't use it if native HTML works. Validate role + required properties.
  • Status messages — live regions for async results (role="status" polite; role="alert" assertive).
  • Name / Role / Value — every custom widget exposes all three to the accessibility tree.

5. WCAG 2.2 net-new (often missed)

  • 2.4.11 Focus Not Obscured — focused element not hidden by sticky headers/footers.
  • 2.5.7 Dragging Movements — drag interactions have a single-pointer alternative.
  • 2.5.8 Target Size (Minimum) — covered above.
  • 3.2.6 Consistent Help — help mechanisms appear in the same relative order.
  • 3.3.7 Redundant Entry — don't ask for the same info twice in a flow.
  • 3.3.8 Accessible Authentication — no cognitive function test (e.g. solve a puzzle) required.

ARIA Decision Tree

For any custom widget, apply this order:

  1. Native element exists? Use it. (<button>, <a href>, <input>, <details>, <dialog>)
  2. Native + minor enhancement? Use native + aria-* state (aria-expanded, aria-pressed).
  3. No native equivalent? Use the matching ARIA pattern from APG (Authoring Practices). Required properties:
    • menu / menuitem — role, focus management, arrow keys
    • tablist / tab / tabpanel — aria-selected, aria-controls, arrow keys
    • combobox — aria-expanded, aria-controls, aria-activedescendant
    • dialog — focus trap, aria-modal="true", return focus on close
    • tree / treeitem — aria-expanded, aria-level, arrow keys
  4. Never invent custom roles. If APG doesn't cover it, simplify the UI.

Screen Reader Test Plan

Walk each critical user flow with at least one pairing:

Screen readerBrowserOS
VoiceOverSafarimacOS, iOS
NVDAFirefoxWindows
JAWSChromeWindows
TalkBackChromeAndroid

Test script per flow:

  1. Land on page with SR running — is the page title announced?
  2. Navigate by landmark (D in NVDA, rotor in VO) — are all landmarks named?
  3. Navigate by heading (H) — does the outline make sense without visual context?
  4. Tab through interactive elements — does each announce name + role + state?
  5. Submit an invalid form — is the error announced and focus moved?
  6. Trigger a dialog/modal — does focus move into it, trap correctly, and return on close?
  7. Trigger an async update — is the result announced via live region?

Output Format

Deliver three artifacts:

1. Triaged Finding List

Table sorted by severity. Each row:

#SeverityWCAG SCWhereIssueFixEffort

Severity ladder:

  • Critical — blocks users (keyboard trap, missing label on submit, contrast on primary CTA).
  • Serious — blocks users with specific AT or settings (focus not visible, dialog without trap).
  • Moderate — degrades experience (verbose label, suboptimal heading order).
  • Minor — polish (decorative icon missing aria-hidden).

2. Focus Order Map

Numbered list of every tabstop in DOM order, visual position annotated. Call out any mismatch.

3. Contrast Report

Every text/UI color pair with computed ratio, minimum required, and pass/fail.

Verification Commands

For a running page, run these before delivering findings:

# axe-core CLI scan (most accurate automated baseline)
npx @axe-core/cli "$URL" --tags wcag2a,wcag2aa,wcag22aa

# Lighthouse accessibility audit
npx lighthouse "$URL" --only-categories=accessibility --output=json

# pa11y for CI-friendly output
npx pa11y "$URL" --standard WCAG2AA

Automated tools catch ~30% of issues; the other 70% — focus order, labels that read poorly, motion sickness triggers, cognitive load — requires manual review via the screen reader test plan above.

Anti-Patterns to Flag Immediately

  • <div onClick> — not focusable, not announced. Use <button>.
  • <a href="#"> as a button. Use <button>.
  • Placeholder used as the only label.
  • outline: none without a replacement focus style.
  • Icon-only buttons without aria-label.
  • aria-hidden="true" on a focusable element.
  • Tooltip as the only place an error message appears.
  • tabindex greater than 0.
  • Color-only error indication (red border, no text, no icon).
  • Modal that doesn't trap focus or return focus on close.
  • Carousel that auto-advances without a pause control.

Output Goal

Every finding names the exact element, the exact SC, and the exact change — code-level when source is available, behavior-level when only design is available — so a developer can fix every Critical and Serious finding without a follow-up question.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

When the user wants to plan, design, or implement an A/B test or experiment — "split test," "variant copy," "multivariate test," "hypothesis," "statistical significance," "how long should I run this test," or comparing two versions. For tracking implementation, see analytics-tracking. For page-level conversion optimization, see page-cro.

中文简介正在准备中。当前显示原文说明。

rajitsaha/100xprism102026年10月14日 更新

When the user wants to generate, iterate, or scale ad creative — headlines, descriptions, primary text, full variations — for any paid platform; 'ad copy variations,' 'RSA headlines,' 'bulk ad copy,' 'creative testing,' 'write me some ads.' For campaign strategy and targeting, see paid-ads. For landing page copy, see copywriting.

中文简介正在准备中。当前显示原文说明。

rajitsaha/100xprism102026年10月14日 更新

ai-seo

免费

When the user wants content cited by LLMs or surfaced in AI-generated answers — 'AI SEO,' 'AEO,' 'GEO,' 'LLMO,' 'answer engine optimization,' 'AI Overviews,' 'optimize for ChatGPT/Perplexity/Claude,' 'AI citations,' 'zero-click search.' For traditional technical/on-page audits, see seo-audit. For structured data, see schema-markup.

中文简介正在准备中。当前显示原文说明。

rajitsaha/100xprism102026年10月14日 更新

When the user wants to set up, improve, or audit analytics tracking and measurement — "GA4," "conversion tracking," "event tracking," "UTM parameters," "tag manager," "GTM," "tracking plan," "attribution," "Mixpanel," "Segment," "are my events firing," or how to measure marketing results. For A/B test measurement, see ab-test-setup.

中文简介正在准备中。当前显示原文说明。

rajitsaha/100xprism102026年10月14日 更新

architect

免费

Architectural decision advisor for cloud, data, and SaaS distributed systems. Use when the user asks "should we use X or Y", weighs a tradeoff, or needs a decision matrix, scaling analysis, cost-at-scale review, data-tier design, multi-tenancy model, or API/resilience guidance. For full technical blueprints, use enterprise-design.

中文简介正在准备中。当前显示原文说明。

rajitsaha/100xprism102026年10月14日 更新

branch

免费

Create a feature branch from the default branch with a descriptive, conventional name.

中文简介正在准备中。当前显示原文说明。

rajitsaha/100xprism102026年10月14日 更新

查看 rajitsaha 的全部技能

报告此技能的问题