Accessibility & Inclusion 进阶 3m
包容性应用设计原则
Principles of inclusive app design
2025年6月9日
一句话判断
七分之一的人有残障,但包容性设计不是”做慈善”——它是创新的来源,也是让所有人用得更舒服的工程方法。
这场 Session 讲了什么
这不是一个”请做好无障碍”的道德呼吁 session。它提出了一个很实用的思考框架:inclusion gap(包容性鸿沟)。
核心论点:残障不是身体的固有属性,而是身体能力和环境期望之间的差距。电梯消除了轮椅使用者上楼的障碍,也方便了推婴儿车的人。眼镜弥补了视力和社会期望(能看小字)之间的差距。路边斜坡(curb cut)是为了轮椅设计的,但骑车人、送货员都在用。
基于这个框架,session 给了四个可执行的原则:
- 支持多种感官交互:视频要有字幕(听觉之外的视觉通道),要有语音输入(视觉之外的听觉通道)。Crouton 食谱 app 的 Hands Free 模式就是好例子。
- 提供自定义:不只是”支持 Dynamic Type”,而是让用户能自定义每种感官通道的体验。Carrot Weather 可以从极简到极密完全自定义布局。
- 采用 Accessibility API:VoiceOver、Switch Control、Voice Control、Larger Text,这些 API 已经存在,集成成本不高。
- 追踪 inclusion debt:包容性是旅程,不是终点。发现差距本身就是创新机会。
值得深挖的点
-
“Nothing about us without us”。残障社区的核心口号。如果你在做无障碍功能但没有和残障用户合作,你可能在做错误的假设。
-
Accessibility Reader 是今年的新功能。它可以从任何屏幕上自定义阅读体验,支持视觉文字、纯语音、以及视觉+语音同步(高亮跟随朗读),覆盖了视觉、听觉、认知三种需求。
-
Blackbox 的 VoiceOver 支持证明了创意可以和无障碍共存。这个谜题游戏用 iPhone 传感器做挑战(比如旋转 360 度),但通过音频标签让视障用户也能玩。
-
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