引子
这篇教程旨在帮助开发者快速上手 Rax iOS 上的无障碍开发。
无障碍,即「accessibility」(常常缩写成「a11y」),是相对有障碍访问而言的,常见的有障碍访问场景有两类。
一种是用户因为生理缺陷,没有能力按正常的交互方式访问,举几个例子:
- 视障人士看不见或看不清,无法感受手淘上的信息,动效,氛围;
- 听障人士听不见或听不清,无法听到音乐以及视频的语音部分;
- 老年人视力和听力的退化。
一种是用户因为客观原因短时间内无法按正常的交互方式访问,比如开车的时候不方便看着屏幕操作。
无障碍的基本目标是使用户接收到产品想要传达的信息,更高的目标则是所有用户接收到的信息是同等的。
据统计,目前每天有大量的用户在访问手淘 iOS 版本,Android 手淘用户则更多。而由于链路上的无障碍问题,双促实际进入会场(手淘 iOS)浏览的用户在双十二当天也只达到了一千多。这些数字多少说明了无障碍的必要性,探索空间和挑战。
iOS 上的解决方案和 VoiceOver
iOS 本身提供了一系列的解决方案。
比如用户能够借助 Siri(语音助手),通过语音来控制 IOS 完成一些简单的操作以及得到一些反馈,弱视用户可以通过设置对比度,字号来辅助阅读。
大部分功能都可以在「设置」- 「辅助功能」设置。
其中,比较强大的是 VoiceOver 功能(在 iOS 11.2 以上版本中,VoiceOver 有了中文名「旁白」)。
VoiceOver 开启后,操作方式就和原来不一样了,需要通过特定的手势操作。
通过单指单击来访问界面元素,如果元素可访问,元素会获得焦点,元素周围出现黑框,如果正常配置,VoiceOver 会依次读出元素的标签文本,角色(role),提示(hint)。其中,标签文本之后会有一个短暂的停顿,提示之前则会有一个较长的停顿。这是无障碍中最基础也是最需要保证的流程。
当元素是链接或按钮等可交互的角色时,单指双击会触发行为,等同于正常模式下的点击操作。
除了直接点屏幕来访问元素之外,可以通过单指左滑和右滑按顺序遍历元素,通过三指上滑和下滑在列表元素上跨页浏览。
VoiceOver 还提供了转子功能,用户可以拨转子在多个配置中选择,然后通过单指上滑和下滑来调节这个配置。
更多手势参见这个手册。
我们要做的是在 VoiceOver 开启状态下,保证用户操作畅通,提升体验。
常规操作
合理划分焦点
Weex 中的容器类型组件默认无法获取焦点,例如:
- div
- a
- cell
添加 accessible={tr