From asyrafhussin-agent-skills-1
UI/UX best practices and accessibility audit. Use when reviewing UI code, checking accessibility, running accessibility audits, auditing forms, or ensuring web interface best practices. Triggers on "audit accessibility", "check WCAG", "review UI", "check accessibility", "audit design", "review UX", or "check best practices".
npx claudepluginhub joshuarweaver/cascade-code-languages-misc-1 --plugin asyrafhussin-agent-skills-1This skill uses the workspace's default tool permissions.
WCAG accessibility, semantic HTML, keyboard navigation, forms, and performance patterns for inclusive web interfaces. Contains 23 rules across 4 categories. Supports both **coding reference** and **audit mode**.
AGENTS.mdREADME.mdmetadata.jsonrules/_sections.mdrules/_template.mdrules/a11y-alt-text.mdrules/a11y-aria-labels.mdrules/a11y-color-contrast.mdrules/a11y-error-messages.mdrules/a11y-focus-management.mdrules/a11y-form-labels.mdrules/a11y-heading-hierarchy.mdrules/a11y-keyboard-nav.mdrules/a11y-live-regions.mdrules/a11y-screen-reader.mdrules/a11y-semantic-html.mdrules/a11y-skip-links.mdrules/form-autocomplete.mdrules/form-error-display.mdrules/form-inline-validation.mdSearches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
WCAG accessibility, semantic HTML, keyboard navigation, forms, and performance patterns for inclusive web interfaces. Contains 23 rules across 4 categories. Supports both coding reference and audit mode.
When the user asks to "audit accessibility", "check WCAG compliance", or "review accessibility" — run the checklist below against their codebase.
$ARGUMENTS): audit only those files or componentsCheck the project for:
.tsx/.jsx files → React.vue files → Vue.blade.php files → Laravel Blade.html files → Static HTMLWork through every item below. For each, output:
file:line, description of the issue, and fix recommendation<header>, <main>, <nav>, <footer>, <article>, <section>) — not <div> souph1 → h2 → h3) — no skipped levels<h1> per page<a href="#main-content">Skip to content</a>)aria-label on multiple <nav> elements)tabindex values)outline: none without replacement)<img> elements have alt attributes — descriptive for content images, empty (alt="") for decorative<label> (not just placeholder text)aria-required="true"aria-describedbyrole="alert" or aria-live="assertive" for screen reader announcementtype attributes on inputs (email, tel, url, number)autocomplete attributes present on common fields (name, email, address, credit card)aria-label="Close")aria-live regionsaria-busy="true", status messages)aria-hidden="true")prefers-reduced-motion respected — animations disabled or reducedEnd the audit with:
## Accessibility Audit Summary
- **PASS**: X checks
- **FAIL**: X checks
- **N/A**: X checks
- **WCAG Level**: AA / Partial AA / Below AA
- **Top Priority Fixes**: (list the 3 most impactful FAIL items)
Reference these guidelines when:
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Accessibility | CRITICAL | a11y- |
| 2 | Forms | HIGH | form- |
| 3 | Animation & Motion | CRITICAL | motion- |
| 4 | Performance & UX | MEDIUM | perf- |
a11y-semantic-html - Use semantic HTML elementsa11y-heading-hierarchy - Maintain proper heading hierarchya11y-screen-reader - Optimize for screen reader compatibilitya11y-skip-links - Provide skip links for navigationa11y-keyboard-nav - Ensure full keyboard navigationa11y-focus-management - Manage keyboard focus properlya11y-aria-labels - Add ARIA labels to interactive elementsa11y-color-contrast - Ensure sufficient color contrast (WCAG AA)a11y-alt-text - Provide meaningful alt text for imagesa11y-error-messages - Make error messages accessiblea11y-form-labels - Associate labels with form inputsa11y-live-regions - Announce dynamic content to screen readersform-autocomplete - Use autocomplete attributesform-input-types - Use correct input typesform-error-display - Display form errors clearlyform-validation-ux - Design user-friendly validationform-inline-validation - Implement smart inline validationform-multi-step - Design effective multi-step formsform-placeholder-usage - Use placeholders appropriatelyform-submit-feedback - Provide clear submission feedbackmotion-reduced - Respect prefers-reduced-motion (WCAG AAA)perf-image-loading - Optimize image loading for UXperf-layout-stability - Prevent cumulative layout shift// ❌ Div soup
<div className="header"><div className="nav"><div onClick={handleClick}>Home</div></div></div>
// ✅ Semantic HTML
<header><nav aria-label="Main"><a href="/">Home</a></nav></header>
<main><article><h1>Title</h1><p>Content</p></article></main>
<label htmlFor="email">Email <span aria-hidden="true">*</span></label>
<input id="email" type="email" required aria-required="true" aria-describedby="email-error" autoComplete="email" />
{error && <p id="email-error" role="alert">{error}</p>}
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: 0.01ms !important;
transition-duration: 0.01ms !important;
}
}
Read individual rule files for detailed explanations:
rules/a11y-semantic-html.md
rules/form-autocomplete.md
rules/motion-reduced.md
rules/perf-image-loading.md
For the complete guide with all rules expanded: AGENTS.md