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:
7
.claude/skills/axiom-ios-accessibility/.openskills.json
Normal file
7
.claude/skills/axiom-ios-accessibility/.openskills.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"source": "CharlesWiltgen/Axiom",
|
||||
"sourceType": "git",
|
||||
"repoUrl": "https://github.com/CharlesWiltgen/Axiom",
|
||||
"subpath": ".claude-plugin/plugins/axiom/skills/axiom-ios-accessibility",
|
||||
"installedAt": "2026-04-12T08:05:35.617Z"
|
||||
}
|
||||
93
.claude/skills/axiom-ios-accessibility/SKILL.md
Normal file
93
.claude/skills/axiom-ios-accessibility/SKILL.md
Normal 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`
|
||||
Reference in New Issue
Block a user