axiom-accessibility
- 作者仓库星标 0
- 作者更新于 2026年8月25日 02:29
- 作者仓库 Axiom
Cursor UI Tool Availability
xcui is an external tool and is not bundled with the Cursor plugin; it has no Axiom MCP wrapper. Before UI automation, check command -v xcui. If it is absent, AXe fallback is limited to compatible input verbs: tap, slider, type, swipe, drag, touch, gesture, button, key, key-sequence, key-combo, and screenshot. Then check command -v axe before that fallback and handle DEVELOPER_DIR explicitly if AXe reports a SimulatorKit loading error. AXe cannot replace wait, assert, a11y, dialog, voiceover, resize, or doctor. If neither tool is available, stop UI automation, explain the external setup requirement, and continue only with non-UI simulator and log checks. If AXe exists but the requested workflow requires an xcui-only capability, stop that UI workflow and report the limitation.
Accessibility
You MUST use this skill for ANY accessibility work including VoiceOver, Dynamic Type, color contrast, WCAG compliance, and UX flow auditing.
Cursor Subagent Routing
Delegate to the appropriate Cursor subagent when this router calls for a specialized auditor.
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-auditaccessibility
Automated Scanning
Accessibility audit → Delegate to the accessibility-auditor subagent or /axiom-audit accessibility
- VoiceOver labels and hints
- Dynamic Type violations
- Color contrast failures
- WCAG compliance scanning
UX flow audit → Delegate to the ux-flow-auditor subagent
- 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"
→ Delegate to the accessibility-auditor subagent
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
- 流狐分类
- 工程开发
- 作者声明 Agent
- 未找到明确声明;不据此推断已兼容或已测试
- 静态检查
- 88 / 100 · 启发式扫描,不代表运行安全
- 作者 / 版本 / 许可
- @CharlesWiltgen · 未声明 license
- 流狐 Token 估算
- 低消耗
- 流狐接入估算
- 即装即用
- 是否需要外部 API Key
- 未发现要求
- 检测到的系统要求
- macOS
- 底层运行要求
- 未声明
- 检测到的文件与系统行为
-
- 只读
- 允许写入 / 修改
- 检测到的网络行为
- 仅限本地
- 安装命令数
- 无(仅作为资料)
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
作者没有在当前 SKILL.md 中定义固定输出样例。 xcui is an external tool and is not bundled with the Cursor plugin; it has no Axiom MCP wrapper. Before UI automation, check command -v xcui. If it is absent, AXe fallback is limited to compatible input verbs: tap, slider, type, swipe, drag, touch, gesture,…
Delegate to the appropriate Cursor subagent when this router calls for a specialized auditor.
Symptom / Task · Reference VoiceOver labels, hints, navigation · See skills/accessibility-diag.md Dynamic Type scaling violations · See skills/accessibility-diag.md
Full watchOS development context → See axiom-watchos Live accessibility validation on the simulator (set toggles, assert announcements) → simulator-tester agent + xcui — see axiom-tools (skills/xcui-ref.md)
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…
Accessibility audit → Delegate to the accessibility-auditor subagent or /axiom-audit accessibility VoiceOver labels and hints Dynamic Type violations
## Cursor UI Tool Availability
`xcui` is an external tool and is not bundled with the Cursor plugin; it has no Axiom MCP wrapper. Before UI automation, check `command -v xcui`. If it is absent, AXe fallback is limited to compatible input verbs: `tap`, `slider`, `type`, `swipe`, `drag`, `touch`, `gesture`, `button`, `key`, `key-sequence`, `key-combo`, and `screenshot`. Then check `command -v axe` before that fallback and handle `DEVELOPER_DIR` explicitly if AXe reports a SimulatorKit loading error. AXe cannot replace `wait`, `assert`, `a11y`, `dialog`, `voiceover`, `resize`, or `doctor`. If neither tool is available, stop UI automation, explain the external setup requirement, and continue only with non-UI simulator and log checks. If AXe exists but the requested workflow requires an xcui-only capability, stop that UI workflow and report the limitation.
# Accessibility
**You MUST use this skill for ANY accessibility work including VoiceOver, Dynamic Type, color contrast, WCAG compliance, and UX flow auditing.**
## Cursor Subagent Routing
Delegate to the appropriate Cursor subagent when this router calls for a specialized auditor.
## 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` |
… 作者原文负责流程事实;流狐只索引当前章节、要点、文件与命令。
章节 -> Cursor UI Tool Availability → Cursor Subagent Routing → Quick Reference → Cross-Suite Routes → Decision Tree → Automated Scanning
要点 -> Accessibility audit · UX flow audit · xcui is an external tool and is not bundled with the Cursor plugin; it has no Axiom MCP wrapper. · You MUST use this skill for ANY accessibility work including VoiceOver, Dynamic Type, color contrast, WCAG compliance, and UX flow auditing. · Delegate to the appropriate Cursor subagent when this router calls for a specialized auditor. · 1. ANY VoiceOver, Dynamic Type (including tvOS Large Text), contrast, touch target, or WCAG issue → skills/accessibility-diag.md 2. · | Thought | Reality | |---------|---------| | "I'll add VoiceOver labels when I'm done building" | Accessibility is foundational, not polish.
文件/命令 -> xcui · command -v xcui · tap · slider · type · swipe · drag · touch
内容 SHA-256 -> df828a67d368
原文结构
适用与边界
原文中的明确线索
xcui、command -v xcui、tap、slider、type、swipe、drag、touch