This snapshot establishes the camera-to-result recognition flow and related tests while checking in the project skill/docs assets required for the configured local tooling.
94 lines
3.4 KiB
Markdown
94 lines
3.4 KiB
Markdown
---
|
|
name: axiom-ios-accessibility
|
|
description: Use when fixing or auditing ANY accessibility issue - VoiceOver, Dynamic Type, color contrast, touch targets, WCAG compliance, App Store accessibility review.
|
|
license: MIT
|
|
---
|
|
|
|
# iOS Accessibility Router
|
|
|
|
**You MUST use this skill for ANY accessibility work including VoiceOver, Dynamic Type, color contrast, and WCAG compliance.**
|
|
|
|
## When to Use
|
|
|
|
Use this router when:
|
|
- Fixing VoiceOver issues
|
|
- Implementing Dynamic Type
|
|
- Checking color contrast
|
|
- Ensuring touch target sizes
|
|
- Preparing for App Store accessibility review
|
|
- WCAG compliance auditing
|
|
- Assistive Access support (cognitive disabilities, iOS 17+)
|
|
|
|
## Routing Logic
|
|
|
|
### Accessibility Issues
|
|
|
|
**All accessibility work** → `/skill axiom-accessibility-diag`
|
|
- VoiceOver labels and hints
|
|
- Dynamic Type scaling
|
|
- Color contrast (WCAG)
|
|
- Touch target sizes
|
|
- Keyboard navigation
|
|
- Reduce Motion support
|
|
- Assistive Access (cognitive disabilities, iOS 17+)
|
|
- Accessibility Inspector usage
|
|
- App Store Review preparation
|
|
|
|
### Automated Scanning
|
|
|
|
**Accessibility audit** → Launch `accessibility-auditor` agent or `/axiom:audit accessibility` (VoiceOver issues, Dynamic Type violations, color contrast failures, WCAG compliance scanning)
|
|
|
|
## Decision Tree
|
|
|
|
1. ANY accessibility issue → accessibility-diag
|
|
2. Want automated accessibility scan? → accessibility-auditor (Agent)
|
|
|
|
## 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. |
|
|
|
|
## Critical Patterns
|
|
|
|
#### Image Accessibility
|
|
|
|
- Use `Image(decorative: "photo")` for purely decorative images — automatically hidden from VoiceOver (equivalent to `accessibilityHidden(true)` but semantically clearer)
|
|
- Use `accessibilityInputLabels()` for buttons with complex or changing labels — improves Voice Control accuracy by providing alternative labels
|
|
- Respect `accessibilityDifferentiateWithoutColor` environment value — when active, provide non-color cues (icons, patterns, labels) alongside color indicators
|
|
|
|
#### accessibility-diag Coverage
|
|
|
|
- 8 critical accessibility issues (including Assistive Access)
|
|
- WCAG compliance levels (A, AA, AAA)
|
|
- Assistive Access mode (cognitive disabilities, iOS 17+)
|
|
- Accessibility Inspector workflows
|
|
- VoiceOver testing checklist
|
|
- App Store Review requirements
|
|
|
|
## Example Invocations
|
|
|
|
User: "My button isn't being read by VoiceOver"
|
|
→ Invoke: `/skill axiom-accessibility-diag`
|
|
|
|
User: "How do I support Dynamic Type?"
|
|
→ Invoke: `/skill axiom-accessibility-diag`
|
|
|
|
User: "Check my app for accessibility issues"
|
|
→ Invoke: `/skill axiom-accessibility-diag`
|
|
|
|
User: "Prepare for App Store accessibility review"
|
|
→ Invoke: `/skill axiom-accessibility-diag`
|
|
|
|
User: "Scan my app for accessibility issues automatically"
|
|
→ Invoke: `accessibility-auditor` agent
|
|
|
|
User: "How do I support Assistive Access?"
|
|
→ Invoke: `/skill axiom-accessibility-diag`
|
|
|
|
User: "My app doesn't show up in Assistive Access"
|
|
→ Invoke: `/skill axiom-accessibility-diag`
|