mcpField
A
axiom-accessibility

axiom-accessibility

github.com/charleswiltgen设计与 UI1.2k1.2k 次安装今天更新
代码仓库

关于 axiom-accessibility

axiom-accessibility 是面向 Apple 应用无障碍与用户流程审查的路由技能,将 VoiceOver、动态字体、对比度和 UX 流程问题指向相应指南与审查流程。

主要功能

  1. 01提供 VoiceOver 与动态字体指引
  2. 02检查对比度、触控目标和 WCAG
  3. 03指引排查 UX 流程死路和缺失状态
  4. 04提供无障碍与 UX 审查流程
  5. 05包含 watchOS 无障碍参考资料

适用场景

  1. 01诊断缺失的 VoiceOver 标签
  2. 02检查动态字体或颜色对比度问题
  3. 03查找关闭陷阱和缺失的错误状态
  4. 04审查 watchOS 无障碍行为

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/charleswiltgen/axiom --skill axiom-accessibility

安装后在 Claude Code 中输入/axiom-accessibility确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

skills/
accessibility-auditor.md
accessibility-diag.md
ux-flow-audit.md
watchos-a11y.md

详细介绍

无障碍

任何无障碍相关工作都必须使用此技能,包括 VoiceOver、动态字体、颜色对比度、WCAG 合规性和 UX 流程审计。

无法启动 Axiom Agent? 如果此路由将你指向某个 Agent,请直接按照其流程操作。通过 MCP,axiom_get_agent 会返回该 Agent;在其他环境中,请读取下方的文件,只需使用文件搜索和读取功能即可。

此处可用:skills/accessibility-auditor.md。 位于其他套件中: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。

对于其他 Agent,通过 MCP,axiom_get_agent 也会返回该 Agent;请使用 axiom_xclog_*、axiom_xcsym_* 和 axiom_xcprof_* 工具运行其 xclog、xcsym 和 xcprof 步骤。在其他环境中,请在 Axiom 的技能中搜索 skills/<agent>.md;如果没有该文件,请使用本套件的技能自行完成相关工作,并使用 PATH 中的任意 Axiom 工具。

快速参考

症状 / 任务参考
VoiceOver 标签、提示、导航请参阅 skills/accessibility-diag.md
动态字体缩放违规请参阅 skills/accessibility-diag.md
tvOS 上的动态字体(大号文本,tvOS 27)请参阅 skills/accessibility-diag.md
长篇阅读应用(连续阅读、朗读屏幕、文本导航)请参阅 skills/accessibility-diag.md
视频播放器中的字幕与副标题样式(生成式字幕、样式预览)请参阅 skills/accessibility-diag.md
自定义控件技术选择(可调整、直通、直接触控)请参阅 skills/accessibility-diag.md
无障碍营养标签请参阅 skills/accessibility-diag.md
颜色对比度(WCAG AA/AAA)请参阅 skills/accessibility-diag.md
触控目标尺寸(< 44x44pt)请参阅 skills/accessibility-diag.md
键盘导航(iPadOS/macOS)请参阅 skills/accessibility-diag.md
按钮形状、大号内容查看器、全键盘访问、切换控制请参阅 skills/accessibility-diag.md
调整大小 / 列折叠后 VoiceOver 顺序错乱;表格与网格语义请参阅 skills/accessibility-diag.md
减少动态效果支持请参阅 skills/accessibility-diag.md
辅助访问(认知障碍,iOS 17+)请参阅 skills/accessibility-diag.md
无障碍检查器工作流请参阅 skills/accessibility-diag.md
UX 流程死路、无法关闭的陷阱请参阅 skills/ux-flow-audit.md
隐藏的 CTA、缺失的空状态请参阅 skills/ux-flow-audit.md
缺失的加载 / 错误状态请参阅 skills/ux-flow-audit.md
深度链接死路请参阅 skills/ux-flow-audit.md
无障碍死路(仅限手势操作)请参阅 skills/ux-flow-audit.md
watchOS 特定功能(Digital Crown 上的 VoiceOver 转子、辅助触控、轻点两下)请参阅 skills/watchos-a11y.md

跨套件路由

  • watchOS 开发完整背景 → 请参阅 axiom-watchos
  • 在模拟器上实时验证无障碍功能(设置开关、断言播报内容) → simulator-tester Agent + xcui — 请参阅 axiom-tools(skills/xcui-ref.md)
  • 在 XCUITest 中断言 VoiceOver 语音(XCUIDevice.shared.voiceOverService、OS27) → axiom-testing(skills/ui-testing.md 模式 7)

决策树

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. 任何 VoiceOver、动态字体(包括 tvOS 大号文本)、对比度、触控目标或 WCAG 问题 → skills/accessibility-diag.md
  2. 辅助访问(认知障碍,iOS 17+) → skills/accessibility-diag.md
  3. 无障碍营养标签,或 App Review 中有关无障碍的备注 → skills/accessibility-diag.md
  4. 阅读应用:VoiceOver 在段落 / 页面处停止,朗读屏幕中断 → skills/accessibility-diag.md
  5. UX 流程死路、无法关闭的陷阱、隐藏的 CTA、缺失的状态 → skills/ux-flow-audit.md
  6. watchOS 特定无障碍功能(Digital Crown 上的转子、辅助触控、轻点两下) → skills/watchos-a11y.md
  7. 想要自动化无障碍扫描? → accessibility-auditor Agent 或 /axiom:audit accessibility

自动扫描

无障碍审计 → 启动 accessibility-auditor agent 或 /axiom:audit accessibility

  • VoiceOver 标签和提示
  • Dynamic Type 违规
  • 颜色对比度问题
  • WCAG 合规扫描

UX 流程审计 → 启动 ux-flow-auditor agent

  • 无出口视图、无法关闭的陷阱
  • 隐藏的 CTA、缺少空状态/加载状态/错误状态
  • 深层链接无出口、无障碍功能无出口

关键模式

图像无障碍
  • 对纯装饰性图像使用 Image(decorative: "photo")——VoiceOver 会自动忽略这些图像(效果等同于 accessibilityHidden(true),但语义更清晰)
  • 对标签复杂或会变化的按钮使用 accessibilityInputLabels()——通过提供备用标签提高 Voice Control 的准确性
  • 遵循 accessibilityDifferentiateWithoutColor 环境值——启用时,应在颜色指示器旁提供非颜色提示(图标、图案、标签)

避免自我合理化

想法实际情况
“等应用做好后再添加 VoiceOver 标签”无障碍功能是基础,不是润色。为已完成的应用补充标签要花费更长时间;在完成之前,也无法宣称支持 VoiceOver。
“我的应用不需要无障碍功能”所有应用都需要无障碍功能。这不是 App Store 的规定,但依赖 VoiceOver 或较大文本的用户无法使用缺少无障碍功能的应用,而且他们在下载前就能看到应用的无障碍营养标签。
“Dynamic Type 只需要 .scaledFont”Dynamic Type 有 7 种常见违规。accessibility-diag 可以全部检测出来。
“在我看来,颜色对比度没问题”视觉评估并不可靠。WCAG 比率需要测量。accessibility-diag 可以验证。
“UX 问题只是润色”UX 流程无出口会导致 1 星评价。这是缺陷,不是改进项。
“关闭手势就能解决”fullScreenCover 没有关闭手势。这就是陷阱。

调用示例

用户:“我的按钮无法被 VoiceOver 读出” → 参见 skills/accessibility-diag.md

用户:“如何支持 Dynamic Type?” → 参见 skills/accessibility-diag.md

用户:“检查我的应用是否存在无障碍问题” → 参见 skills/accessibility-diag.md

用户:“为 App Store 无障碍审核做准备” → 参见 skills/accessibility-diag.md

用户:“自动扫描我的应用是否存在无障碍问题” → 启动 accessibility-auditor agent

用户:“如何支持 Assistive Access?” → 参见 skills/accessibility-diag.md

用户:“如何为我的 tvOS 应用准备大号文本?” → 参见 skills/accessibility-diag.md

用户:“窗口调整大小后,VoiceOver 读取屏幕内容的顺序不对” → 参见 skills/accessibility-diag.md

用户:“如何在自定义控件中支持按钮形状/大内容查看器?” → 参见 skills/accessibility-diag.md

用户:“我的图书应用中,VoiceOver 每到一页末尾就停止朗读” → 参见 skills/accessibility-diag.md

用户:“如何让用户重新设置字幕样式,或在视频播放器中获取自动生成的字幕?” → 参见 skills/accessibility-diag.md

用户:“检查 UX 流程是否存在无出口或无法关闭的陷阱” → 参见 skills/ux-flow-audit.md

用户:“我的 fullScreenCover 没有关闭方式” → 参见 skills/ux-flow-audit.md

用户:“我的应用是否缺少空状态?” → 参见 skills/ux-flow-audit.md

评论

支持 Markdown