charleswiltgen/axiom/axiom-accessibility
Claude Code and agent skill by charleswiltgen/axiom
- community
Checking that the SKILL.md file is still in the repository.
Use when fixing or auditing ANY accessibility issue — VoiceOver, Dynamic Type, color contrast, touch targets, WCAG compliance, App Store accessibility review.
Install
npx vskill@latest install charleswiltgen/axiom/axiom-accessibilitySKILL.md
Accessibility
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 — rewritten for Codex by scripts/build-codex.ts; do not hand-edit -->
Auditors are skills here. Where this router says "Launchsome-auditoragent", invoke thematching Codex skill instead — same procedure, no Claude Code agent required.Available:axiom-audit-accessibility,axiom-audit-concurrency,axiom-audit-swiftdata,axiom-audit-swiftui-nav,axiom-audit-ux-flow.The ones that shell out — builds, tests, simulators, crash symbolication — need shell access to run.
<!-- AXIOM_AUDITOR_INLINE_END -->
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 | |
| 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) - Asserting VoiceOver speech in an XCUITest (
XCUIDevice.shared.voiceOverService,OS27) → axiom-testing (skills/ui-testing.md Pattern 7)
Decision Tree
- 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 - Accessibility Nutrition Labels, or an App Review note about accessibility →
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 oraxiom-audit-accessibility
Automated Scanning
Accessibility audit → axiom-audit-accessibility
- VoiceOver labels and hints
- Dynamic Type violations
- Color contrast failures
- WCAG compliance scanning
UX flow audit → axiom-audit-ux-flow
- 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. Retrofitting labels across a finished app takes far longer, and until they're done VoiceOver support can't be declared. | |
| "My app doesn't need accessibility" | All apps need accessibility. It isn't an App Store rule, but people who rely on VoiceOver or Larger Text can't use the app without it, and its Accessibility Nutrition Labels show that before they download. | |
| "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" → axiom-audit-accessibility
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
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingaxiom-codex/skills/axiom-accessibility/SKILL.md
Popularity
- Repository stars
- 1,097
- Repository forks
- 81
- 7-day trend score
- 35
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/charleswiltgen/axiom/axiom-accessibility)