Axiom Accessibility

charleswiltgen/axiom/.claude-plugin/plugins/axiom/skills/axiom-accessibility

作者 charleswiltgene45d98ffbb5fMIT1.1K 个星标收录于 2026年10月9日更新于 2026年10月8日仓库今天更新

Use when fixing or auditing ANY accessibility issue — VoiceOver, Dynamic Type, color contrast, touch targets, WCAG compliance, App Store accessibility review.

AI 生成的概览

将 Apple 平台无障碍工作(VoiceOver、动态字体、对比度、WCAG 与 UX 流程审计)路由到参考文件和审计代理。

功能
这是一个面向 Apple 平台无障碍工作的路由型技能。它把 VoiceOver 标签、动态字体缩放、颜色对比度、触控目标、键盘导航、辅助访问、字幕以及 App Store 无障碍审核等症状和任务,映射到配套的参考文件,并把自动扫描指向 accessibility-auditor 代理。它还会把 UX 流程问题(如死胡同、关闭陷阱、缺失状态)转到单独的 UX 流程审计文件,把 watchOS 特有问题转到 watchOS 文件。它产出的是指导与审计方向,而不是文件或代码。
适用场景
在修复或审计 Apple 平台应用的任何无障碍问题时使用,包括 VoiceOver、动态字体、颜色对比度、触控目标、WCAG 合规和 App Store 无障碍审核。它也适用于 UX 流程检查,例如死胡同、关闭陷阱以及缺失的空状态、加载或错误状态,以及 watchOS 特有的无障碍问题。
运行要求
没有脚本;该技能仅为说明性内容。它假定代理能够搜索和读取文件,部分被引用的审计代理需要 Bash 来执行构建、测试、模拟器和崩溃符号化。相关套件和代理以名称方式引用。

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 — auto-maintained by scripts/build-inlined-auditors.ts; do not hand-edit -->

Not on Claude Code? Where this router says "Launch some-auditor agent", read that auditor's file in this suite and follow it inline — the same procedure, needing only file search and read.

Available here: skills/accessibility-auditor.md. Homed in another suite: axiom-concurrency/skills/concurrency-auditor.md, axiom-data/skills/swiftdata-auditor.md, axiom-swiftui/skills/swiftui-nav-auditor.md, axiom-swiftui/skills/ux-flow-auditor.md.

Agents that need Bash — builds, tests, simulators, crash symbolication — stay Claude Code-only; there is no inline equivalent for those.

<!-- AXIOM_AUDITOR_INLINE_END -->

Quick Reference

Symptom / TaskReference
VoiceOver labels, hints, navigationSee skills/accessibility-diag.md
Dynamic Type scaling violationsSee 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 LabelsSee 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 ControlSee skills/accessibility-diag.md
VoiceOver order broken after resize / column collapse; table & grid semanticsSee skills/accessibility-diag.md
Reduce Motion supportSee skills/accessibility-diag.md
Assistive Access (cognitive, iOS 17+)See skills/accessibility-diag.md
Accessibility Inspector workflowsSee skills/accessibility-diag.md
App Store Review preparationSee skills/accessibility-diag.md
UX dead ends, dismiss trapsSee skills/ux-flow-audit.md
Buried CTAs, missing empty statesSee skills/ux-flow-audit.md
Missing loading/error statesSee skills/ux-flow-audit.md
Deep link dead endsSee 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-tester agent + 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

dot
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];}
  1. ANY VoiceOver, Dynamic Type (including tvOS Large Text), contrast, touch target, or WCAG issue → skills/accessibility-diag.md
  2. Assistive Access (cognitive disabilities, iOS 17+) → skills/accessibility-diag.md
  3. App Store accessibility rejection or Nutrition Labels → skills/accessibility-diag.md
  4. Reading app: VoiceOver stops at paragraphs/pages, Speak Screen halts → skills/accessibility-diag.md
  5. UX dead ends, dismiss traps, buried CTAs, missing states → skills/ux-flow-audit.md
  6. watchOS-specific accessibility (rotor on Digital Crown, AssistiveTouch, Double Tap) → skills/watchos-a11y.md
  7. Want automated accessibility scan? → accessibility-auditor agent or /axiom:audit accessibility

Automated Scanning

Accessibility audit → Launch accessibility-auditor agent or /axiom:audit accessibility

  • VoiceOver labels and hints
  • Dynamic Type violations
  • Color contrast failures
  • WCAG compliance scanning

UX flow audit → Launch ux-flow-auditor agent

  • 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 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

Anti-Rationalization

ThoughtReality
"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" → Launch accessibility-auditor agent

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

来源与署名

来源:charleswiltgen/axiom位于.claude-plugin/plugins/axiom/skills/axiom-accessibility提交e45d98f

许可证: MIT

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架