
Accessibility Auditor
FreeStreamline your app's accessibility compliance process.
Free · Opens the source repo
What Accessibility Auditor does
The Accessibility Auditor skill is designed for developers and designers focused on ensuring their applications meet accessibility standards. It provides a comprehensive suite of tools and instructions for addressing a wide range of accessibility issues, from VoiceOver support to color contrast compliance. This skill is essential for anyone involved in creating applications that are usable by all, including those with disabilities.
Using this skill, you can easily navigate through various accessibility tasks. It includes detailed guidance on how to fix VoiceOver labels, ensure Dynamic Type scaling is correct, and check for color contrast issues in line with WCAG standards. The skill also covers touch target sizes and keyboard navigation, making it a versatile resource for improving user experience across different platforms, including iOS and watchOS.
The Accessibility Auditor skill is particularly useful when preparing applications for App Store submission, as it helps identify potential rejection points related to accessibility. By following the provided instructions, developers can conduct thorough audits of their applications, ensuring compliance with accessibility guidelines and enhancing the overall usability for all users.
Whether you're conducting a full accessibility audit or just addressing specific issues, this skill provides the structured approach needed to make your application accessible and compliant. It's an invaluable resource for any team prioritizing inclusivity in their design and development processes.
When to use it
Use this skill when you need to audit or fix accessibility issues in your application, especially before App Store submission.
When not to use it
This skill may not be suitable for projects that do not require accessibility compliance or for teams that already have established accessibility practices in place.
What you can build with it
Preparing for App Store Submission
Use the Accessibility Auditor to ensure your app meets all accessibility requirements before submission.
Conducting a Comprehensive Accessibility Audit
Leverage the skill to perform a thorough review of your app's accessibility features and compliance.
Improving User Experience for All
Utilize the skill to address specific accessibility issues, enhancing usability for users with disabilities.
How to install Accessibility Auditor
View source1. Install with the skills CLI
npx skills add charleswiltgen/axiom/axiom-accessibility --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by charleswiltgenAccessibility
You MUST use this skill for ANY accessibility work including VoiceOver, Dynamic Type, color contrast, WCAG compliance, and UX flow auditing.
<!-- AXIOM_AUDITOR_INLINE_BEGIN — auto-maintained by scripts/build-inlined-auditors.ts; do not hand-edit --><!-- AXIOM_AUDITOR_INLINE_END -->Not on Claude Code? Where this router says "Launch
some-auditoragent", read that auditor's file in this suite and follow it inline — the same procedure, needing only file search and read.Available here:
skills/accessibility-auditor.md. Homed in another suite:axiom-concurrency/skills/concurrency-auditor.md,axiom-data/skills/swiftdata-auditor.md,axiom-swiftui/skills/swiftui-nav-auditor.md,axiom-swiftui/skills/ux-flow-auditor.md.Agents that need Bash — builds, tests, simulators, crash symbolication — stay Claude Code-only; there is no inline equivalent for those.
Quick Reference
| Symptom / Task | Reference |
|---|---|
| VoiceOver labels, hints, navigation | See skills/accessibility-diag.md |
| Dynamic Type scaling violations | See skills/accessibility-diag.md |
| Dynamic Type on tvOS (Large Text, tvOS 27) | See skills/accessibility-diag.md |
| Long-form reading apps (continuous reading, Speak Screen, text navigation) | See skills/accessibility-diag.md |
| Captions & subtitle styling in video players (generated subtitles, style preview) | See skills/accessibility-diag.md |
| Custom control technique choice (adjustable, passthrough, direct touch) | See skills/accessibility-diag.md |
| Accessibility Nutrition Labels | See skills/accessibility-diag.md |
| Color contrast (WCAG AA/AAA) | See skills/accessibility-diag.md |
| Touch target sizes (< 44x44pt) | See skills/accessibility-diag.md |
| Keyboard navigation (iPadOS/macOS) | See skills/accessibility-diag.md |
| Button Shapes, Large Content Viewer, Full Keyboard Access, Switch Control | See skills/accessibility-diag.md |
| VoiceOver order broken after resize / column collapse; table & grid semantics | See skills/accessibility-diag.md |
| Reduce Motion support | See skills/accessibility-diag.md |
| Assistive Access (cognitive, iOS 17+) | See skills/accessibility-diag.md |
| Accessibility Inspector workflows | See skills/accessibility-diag.md |
| App Store Review preparation | See skills/accessibility-diag.md |
| UX dead ends, dismiss traps | See skills/ux-flow-audit.md |
| Buried CTAs, missing empty states | See skills/ux-flow-audit.md |
| Missing loading/error states | See skills/ux-flow-audit.md |
| Deep link dead ends | See skills/ux-flow-audit.md |
| Accessibility dead ends (gesture-only) | See skills/ux-flow-audit.md |
| watchOS-specific (VoiceOver rotor on Digital Crown, AssistiveTouch, Double Tap) | See skills/watchos-a11y.md |
Cross-Suite Routes
- Full watchOS development context → See axiom-watchos
- Live accessibility validation on the simulator (set toggles, assert announcements) →
simulator-testeragent +xcui— see axiom-tools (skills/xcui-ref.md)
Decision Tree
digraph accessibility {
start [label="Accessibility issue" shape=ellipse];
what [label="What type?" shape=diamond];
start -> what;
what -> "skills/accessibility-diag.md" [label="VoiceOver/labels/hints"];
what -> "skills/accessibility-diag.md" [label="Dynamic Type"];
what -> "skills/accessibility-diag.md" [label="color contrast"];
what -> "skills/accessibility-diag.md" [label="touch targets"];
what -> "skills/accessibility-diag.md" [label="keyboard nav"];
what -> "skills/accessibility-diag.md" [label="resizable window / desktop-class"];
what -> "skills/accessibility-diag.md" [label="Reduce Motion"];
what -> "skills/accessibility-diag.md" [label="Assistive Access"];
what -> "skills/accessibility-diag.md" [label="custom control techniques"];
what -> "skills/accessibility-diag.md" [label="continuous reading / text navigation"];
what -> "skills/accessibility-diag.md" [label="captions / subtitle styling"];
what -> "skills/accessibility-diag.md" [label="App Store prep / Nutrition Labels"];
what -> "skills/ux-flow-audit.md" [label="UX dead end/dismiss trap"];
what -> "skills/ux-flow-audit.md" [label="missing states"];
what -> "skills/watchos-a11y.md" [label="watchOS VoiceOver / AssistiveTouch / Double Tap"];
what -> "accessibility-auditor" [label="automated scan" shape=box];
}
- ANY VoiceOver, Dynamic Type (including tvOS Large Text), contrast, touch target, or WCAG issue →
skills/accessibility-diag.md - Assistive Access (cognitive disabilities, iOS 17+) →
skills/accessibility-diag.md - App Store accessibility rejection or Nutrition Labels →
skills/accessibility-diag.md - Reading app: VoiceOver stops at paragraphs/pages, Speak Screen halts →
skills/accessibility-diag.md - UX dead ends, dismiss traps, buried CTAs, missing states →
skills/ux-flow-audit.md - watchOS-specific accessibility (rotor on Digital Crown, AssistiveTouch, Double Tap) →
skills/watchos-a11y.md - Want automated accessibility scan? →
accessibility-auditoragent or/axiom:audit accessibility
Automated Scanning
Accessibility audit → Launch accessibility-auditor agent or /axiom:audit accessibility
- VoiceOver labels and hints
- Dynamic Type violations
- Color contrast failures
- WCAG compliance scanning
UX flow audit → Launch ux-flow-auditor agent
- Dead-end views, dismiss traps
- Buried CTAs, missing empty/loading/error states
- Deep link dead ends, accessibility dead ends
Critical Patterns
Image Accessibility
- Use
Image(decorative: "photo")for purely decorative images — automatically hidden from VoiceOver (equivalent toaccessibilityHidden(true)but semantically clearer) - Use
accessibilityInputLabels()for buttons with complex or changing labels — improves Voice Control accuracy by providing alternative labels - Respect
accessibilityDifferentiateWithoutColorenvironment value — when active, provide non-color cues (icons, patterns, labels) alongside color indicators
Anti-Rationalization
| Thought | Reality |
|---|---|
| "I'll add VoiceOver labels when I'm done building" | Accessibility is foundational, not polish. accessibility-diag prevents App Store rejection. |
| "My app doesn't need accessibility" | All apps need accessibility. It's required by App Store guidelines and benefits all users. |
| "Dynamic Type just needs .scaledFont" | Dynamic Type has 7 common violations. accessibility-diag catches them all. |
| "Color contrast looks fine to me" | Visual assessment is unreliable. WCAG ratios require measurement. accessibility-diag validates. |
| "UX issues are just polish" | UX dead ends cause 1-star reviews. They're defects, not enhancements. |
| "The dismiss gesture handles it" | fullScreenCover has no dismiss gesture. That's the trap. |
Example Invocations
User: "My button isn't being read by VoiceOver"
→ See skills/accessibility-diag.md
User: "How do I support Dynamic Type?"
→ See skills/accessibility-diag.md
User: "Check my app for accessibility issues"
→ See skills/accessibility-diag.md
User: "Prepare for App Store accessibility review"
→ See skills/accessibility-diag.md
User: "Scan my app for accessibility issues automatically"
→ Launch accessibility-auditor agent
User: "How do I support Assistive Access?"
→ See skills/accessibility-diag.md
User: "How do I prepare my tvOS app for Large Text?"
→ See skills/accessibility-diag.md
User: "VoiceOver reads my screen in the wrong order after the window resizes"
→ See skills/accessibility-diag.md
User: "How do I support Button Shapes / the Large Content Viewer in my custom controls?"
→ See skills/accessibility-diag.md
User: "VoiceOver stops reading at the end of each page in my book app"
→ See skills/accessibility-diag.md
User: "How do I let users restyle subtitles or get generated captions in my video player?"
→ See skills/accessibility-diag.md
User: "Check for UX dead ends and dismiss traps"
→ See skills/ux-flow-audit.md
User: "My fullScreenCover has no way to dismiss"
→ See skills/ux-flow-audit.md
User: "Are there missing empty states in my app?"
→ See skills/ux-flow-audit.md
Frequently asked questions about Accessibility Auditor
Similar skills
Quality Playbook Generator
Run comprehensive quality audits on any codebase.
PR Draft Summary
Automate PR summary generation for openai-agents-python.
Final Release Review
Streamline your release candidate audits with ease.
Unit Test Vue Pinia
Efficiently write and review unit tests for Vue 3 applications.
Slang Shader Expert
Optimize and integrate Slang shaders with ease.
Telemetry Standards
Ensure consistent event tracking in Supabase Studio.
