05 · 可访问性:为什么做、怎么做、怎么验收
可访问性(a11y)不是"给残疾人做的额外功能",是"让产品对所有用户都可用"的底线。 色盲、弱视、键盘操作、屏幕阅读器……每一条都在扩大你的用户面,也是很多合规与商业要求的前提。本篇讲为什么做、通用怎么做、怎么验收;Flutter/前端的 API 落地链回各域。
速览卡
| 项 | 内容 |
|---|---|
| 一句话定位 | 把可访问性从"可选加分项"变成"开发流程内建的质量要求":为什么、四类通用做法、怎么验收 |
| 核心内容 | 可访问性服务的真实人群、四类做法(语义/键盘/对比度/文字)、移动端要点、怎么验收、常见误区 |
| 读完能回答 | 可访问性到底解决什么问题?开发时最该先做哪几件事?怎么判断自己做到位了? |
| 相关板块 | H03 · UI/UX 基础 | B35 · 无障碍与语义树 | S05 · 数据与隐私合规 |
一、可访问性服务谁
可访问性不只是"盲人":
| 人群 | 需求 | 例子 |
|---|---|---|
| 视觉障碍 | 屏幕阅读器、高对比度 | 按钮有可读标签、文本可缩放 |
| 色觉障碍 | 不只靠颜色区分 | 状态用颜色 + 图标/文字 |
| 运动障碍 | 键盘/语音操作 | 所有功能可键盘到达 |
| 认知障碍 | 清晰简单 | 一致的导航、明确的反馈 |
| 暂时性障碍 | 环境受限 | 阳光下看不清、单手操作 |
每一条不仅帮助特定人群,也帮助所有人:颜色 + 图标在色盲友好,也在强光下可读;键盘可达方便专业用户提速。
二、四类通用做法
2.1 语义:让"机器"也能理解
界面不只是给人看的,还要能被屏幕阅读器/自动化读懂:
- 按钮有明确的可读标签,不是"图标 + 空白"
- 表单输入有 label 关联
- 图片有替代文本(装饰图标记为可忽略)
- 用正确的语义元素,而不是 div/View 堆出来的假按钮
2.2 键盘与焦点:所有功能都能到达
- 所有交互元素可达、可聚焦、可见焦点
- 焦点顺序符合视觉阅读顺序
- 弹窗能正确捕获并归还焦点
2.3 对比度与文字:看得见
- 正文与背景对比度达标(WCAG AA 通常 4.5:1)
- 文字可缩放,不因放大而截断或重叠
- 不只靠颜色传达信息(加图标/文字/形状)
2.4 状态与反馈:不静默
- 加载/空/错误/成功都有明确提示
- 错误提示能定位到具体字段
- 动效可被关闭(尊重"减少动态效果"偏好)
三、移动端要点
移动端可访问性多几件事:
| 要点 | 说明 |
|---|---|
| 触控目标 | 点击区域足够大,间距不误触 |
| 语义树 | 屏幕阅读器读到的顺序是否合理(B35) |
| 字体缩放 | 系统大字时布局不崩、文字不截断 |
| 动态效果 | 尊重系统"减少动态效果"设置 |
| 方向与旋转 | 横竖屏都可操作 |
Flutter 的语义树、无障碍 API 具体实现见 B35 无障碍与语义树。
四、怎么验收
可访问性验收要可操作,不是"感觉还行":
| 检查项 | 方法 |
|---|---|
| 语义标签 | 用屏幕阅读器走一遍主流程 |
| 键盘/焦点 | 全程键盘操作完成一次任务 |
| 对比度 | 用检查工具扫主要页面 |
| 文字缩放 | 系统大字下走一遍核心流程 |
| 自动化 | 接入无障碍扫描(CI 可跑) |
经验:从"主流程"开始验收(登录、查询、下单),比全页面过一遍更能体现真实影响。先保证主流程可用,再铺开长尾。
五、常见误区
| 误区 | 事实 |
|---|---|
| "可访问性是加分项" | 是底线,影响真实用户与合规 |
| "等测试发现再说" | 应该内建到开发与验收流程 |
| "做了就不许动了" | 要随设计迭代持续维护,防止回归 |
| "移动端不需要" | 移动端屏幕阅读器使用率很高 |
自检清单
- [ ] 所有交互元素有可读标签,不靠颜色/图标单独传达信息
- [ ] 主流程可全程键盘(或辅助设备)操作完成
- [ ] 对比度达标,文字可缩放不截断
- [ ] 状态与反馈不静默,错误能定位
- [ ] 移动端触控目标、语义树、字体缩放已覆盖
- [ ] 主流程做过一次辅助技术走查
动手练习
练习 A:辅助技术走查
用屏幕阅读器(或系统自带朗读)走一遍 App 主流程,记录"读到什么/读不到什么",修复缺失标签。
练习 B:对比度扫描
用对比度检查工具扫一个页面,把不达标的组合列出来,用设计 token 调整。
练习 C:键盘可达
在 Web 端(或模拟)全程用键盘完成一次核心任务,记录焦点丢失或顺序错乱的位置。
相关文档
本区
- 03 · UI/UX 基础 —— 可用性框架,可访问性是其硬性维度
- 04 · 设计稿还原 —— 还原时保留可访问性
其他域
- B35 · 无障碍与语义树 —— Flutter 实现
- S05 · 数据与隐私合规 —— 可访问性与合规的关系
- IH · 软技能与行为面试 —— 面试中讲可访问性经验的表达