Principles of inclusive app design
Accessibility & Inclusion 进阶 3m

包容性应用设计原则

Principles of inclusive app design

2025年6月9日

在 Apple 官方观看视频

一句话判断

七分之一的人有残障,但包容性设计不是”做慈善”——它是创新的来源,也是让所有人用得更舒服的工程方法。

这场 Session 讲了什么

这不是一个”请做好无障碍”的道德呼吁 session。它提出了一个很实用的思考框架:inclusion gap(包容性鸿沟)

核心论点:残障不是身体的固有属性,而是身体能力和环境期望之间的差距。电梯消除了轮椅使用者上楼的障碍,也方便了推婴儿车的人。眼镜弥补了视力和社会期望(能看小字)之间的差距。路边斜坡(curb cut)是为了轮椅设计的,但骑车人、送货员都在用。

基于这个框架,session 给了四个可执行的原则:

  1. 支持多种感官交互:视频要有字幕(听觉之外的视觉通道),要有语音输入(视觉之外的听觉通道)。Crouton 食谱 app 的 Hands Free 模式就是好例子。
  2. 提供自定义:不只是”支持 Dynamic Type”,而是让用户能自定义每种感官通道的体验。Carrot Weather 可以从极简到极密完全自定义布局。
  3. 采用 Accessibility API:VoiceOver、Switch Control、Voice Control、Larger Text,这些 API 已经存在,集成成本不高。
  4. 追踪 inclusion debt:包容性是旅程,不是终点。发现差距本身就是创新机会。

值得深挖的点

  1. “Nothing about us without us”。残障社区的核心口号。如果你在做无障碍功能但没有和残障用户合作,你可能在做错误的假设。

  2. Accessibility Reader 是今年的新功能。它可以从任何屏幕上自定义阅读体验,支持视觉文字、纯语音、以及视觉+语音同步(高亮跟随朗读),覆盖了视觉、听觉、认知三种需求。

  3. Blackbox 的 VoiceOver 支持证明了创意可以和无障碍共存。这个谜题游戏用 iPhone 传感器做挑战(比如旋转 360 度),但通过音频标签让视障用户也能玩。

  4. App Store 可以展示无障碍 Nutrition Labels。这是今年的新功能,用户可以在 App Store 看到你的 app 支持哪些无障碍特性。

代码片段

这个 session 偏设计和理念,没有传统意义上的代码片段。但有值得参考的实践模式:

多感官输入的设计清单

  • 视觉:文字、图标、颜色对比
  • 听觉:语音、音效、字幕
  • 触觉:Haptic 反馈
  • 语音:Voice Control 兼容布局
  • 认知:简化界面、一致的导航模式

包容性自定义的维度

// 理想的自定义选项应该覆盖这些维度
struct AccessibilityOptions {
    var textSize: DynamicTypeSize
    var colorScheme: ColorScheme
    var fontWeight: Font.Weight
    var motionReduced: Bool
    var hapticFeedback: Bool
    var audioDescriptions: Bool
}

最佳实践

  • 把残障当作频谱来思考,不是”全盲或完全能看见”。很多人有”部分”视力、“部分”听力。
  • 从设计阶段就考虑多种感官通道,不要事后补。
  • 自定义选项应该覆盖每个感官通道,不是只改字号。
  • 至少让一个使用辅助技术的人测试你的 app。如果没有,用 VoiceOver 和 Switch Control 自己测一遍。
  • 把 inclusion debt 记录在 backlog 里,当作技术债一样追踪和管理。

还有什么值得关注

  • WWDC24 的 “Catch up on accessibility in SwiftUI” 补充了 SwiftUI 无障碍 API 的最新变化。
  • WWDC25 的 “Evaluate your app for Accessibility Nutrition Labels” 讲了如何在 App Store 展示无障碍特性。
  • 残障的五个维度:视觉、听觉、运动、语言、认知。设计时逐个检查。
  • Crouton(食谱 app)和 Carrot Weather(天气 app)是第三方 app 里包容性设计的标杆案例。
无障碍 基础 Design