Add scan flow MVP and local Axiom skill workspace

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.
This commit is contained in:
Matthias
2026-04-19 21:11:32 +02:00
parent 577214d474
commit a60a76b797
679 changed files with 138964 additions and 73 deletions

View File

@@ -0,0 +1,93 @@
---
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`