AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Accessibility Audit Helper

skill-notysoty-openagentskills-accessibility-audit-helper · by Notysoty

Reviews UI code and components for WCAG 2.1 accessibility violations and provides specific fixes.

No reviews yet
0 installs
32 views
0.0% view→install

Install

$ agentstack add skill-notysoty-openagentskills-accessibility-audit-helper

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-notysoty-openagentskills-accessibility-audit-helper)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
5mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Accessibility Audit Helper? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Accessibility Audit Helper

What this skill does

This skill directs the agent to review HTML, JSX, or React component code for WCAG 2.1 accessibility violations. It checks for missing alt text, improper heading hierarchy, ARIA misuse, keyboard trap risks, color contrast hints, missing focus indicators, and more. Every finding is categorized by severity with a concrete before/after code fix included.

Use this before shipping any UI feature, during code review, or as a regular accessibility sweep of your component library.

How to use

Claude Code / Cline

Copy this file to .agents/skills/accessibility-audit-helper/SKILL.md in your project root.

Then share the component or page code and ask:

  • "Run an accessibility audit on src/components/Modal.tsx using the Accessibility Audit Helper skill."
  • "Use the Accessibility Audit Helper skill to check this form for a11y issues."

Paste the component code directly or provide a file path for the agent to read.

Cursor

Add the "Prompt / Instructions" section to your .cursorrules file. Open the component you want audited and ask Cursor to run an accessibility audit.

Codex

Paste the component or page HTML/JSX into the chat along with the instructions below.

The Prompt / Instructions for the Agent

When asked to audit UI code for accessibility, follow these steps:

  1. Read the full component or file. If it references child components or imports, note them but focus the audit on the provided code.
  1. Check each of these categories systematically:

Images and Media

  • All ` elements must have an alt attribute; decorative images use alt=""`
  • Icons used as buttons or links must have an aria-label or aria-labelledby
  • SVGs used for meaning must have a ` or aria-label; decorative SVGs need aria-hidden="true"`

Heading Hierarchy

  • Headings must not skip levels (e.g., H1 → H3 with no H2)
  • Each page should have exactly one ``
  • Headings must describe the section content, not just style large text

Interactive Elements

  • All buttons must have visible, descriptive text or an aria-label
  • Links must have descriptive text — "Click here" or "Read more" alone are violations
  • Custom interactive elements (divs/spans with click handlers) must have role, tabIndex={0}, and keyboard event handlers (onKeyDown for Enter/Space)
  • ` elements must not be nested inside ` tags, and vice versa

Forms

  • Every form input must have an associated ` (via htmlFor/id, aria-label, or aria-labelledby`)
  • Required fields must be indicated (not just by color) — use aria-required="true" or required
  • Error messages must be programmatically associated with the field using aria-describedby
  • Form groups (e.g., radio buttons) should use ` and `

Keyboard and Focus

  • Interactive elements must be reachable via keyboard (Tab key)
  • No positive tabIndex values (1, 2, 3...) — these break natural tab order
  • Modal dialogs must trap focus within them when open and return focus when closed
  • Menus and dropdowns must be navigable with arrow keys and closable with Escape
  • Focus must never disappear (no outline: none without a replacement focus style)

ARIA

  • ARIA roles must be used correctly — do not add role="button" to an already-interactive ``
  • aria-hidden="true" must not be applied to elements that contain focusable children
  • Live regions (aria-live) should be used for dynamically updated content (status messages, alerts)
  • Do not use aria-label on non-interactive elements unless there's a semantic reason

Color and Contrast (static analysis)

  • Flag any inline color styles or Tailwind text/background combinations that are likely to fail WCAG AA contrast (4.5:1 for normal text, 3:1 for large text)
  • Flag information conveyed by color alone (red = error) without a non-color indicator

Document Structure

  • Pages should have a ` landmark, a , and a ` (when applicable)
  • Navigation landmarks should have aria-label when multiple `` elements exist on a page
  1. Categorize every finding by WCAG severity:
  • Critical (WCAG Level A) — completely blocks access for assistive technology users; must fix before shipping
  • Serious (WCAG Level AA) — significantly degrades the experience; should fix before shipping
  • Moderate (best practice / Level AAA) — improves experience; fix when possible
  1. For every finding, provide:
  • The WCAG criterion violated (e.g., WCAG 2.1 SC 1.1.1)
  • A plain-English explanation of the problem
  • The specific line or element with the violation
  • A concrete code fix (before/after)
  1. Output format:
## Accessibility Audit Results

### Summary
[X] Critical violations · [Y] Serious violations · [Z] Moderate violations

---

### Critical Violations

#### 1. [Violation title] — WCAG 2.1 SC [X.X.X]
**Problem:** [Plain English explanation]
**Location:** [Element / line description]

**Before:**
```[lang]
[problematic code]

Fix:

```[lang] [corrected code]


---
[repeat for each finding, grouped by severity]

### Passed Checks
- [List checks that passed cleanly]

Example

Input to Agent: > "Use the Accessibility Audit Helper skill on this component: > > ``tsx > export function SearchBar({ onSearch }) { > return ( > > onSearch(e.target.value)} /> > > > > > ); > } > ``"

Output from Agent: > ## Accessibility Audit Results > > ### Summary > 2 Critical violations · 1 Serious violation · 0 Moderate violations > > --- > > ### Critical Violations > > #### 1. Input has no label — WCAG 2.1 SC 1.3.1 > Problem: The text input has no associated label. Screen readers will only announce "edit text" with no context about its purpose. > Location: ` > > **Before:** > `tsx > > ` > > **Fix:** > `tsx > Search > > ` > > #### 2. SVG icon has no accessible name — WCAG 2.1 SC 1.1.1 > **Problem:** The SVG is inside a clickable element but has no title or aria-label. Screen readers cannot determine its purpose. > > **Before:** > `tsx > > ` > > **Fix:** > `tsx > > ` > (The parent button carries the accessible name; hide the SVG from the a11y tree.) > > --- > > ### Serious Violations > > #### 3. Clickable div is not keyboard accessible — WCAG 2.1 SC 2.1.1 > **Problem:** A with an onClick handler is not reachable or activatable via keyboard. > > **Before:** > `tsx > ... > ` > > **Fix:** > `tsx > ... > `` > > --- > > ### Passed Checks > - No positive tabIndex values > - No aria-hidden on focusable children > - No heading hierarchy issues

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.