技术人文 | 焦点:视觉辅助功能的基础
你知道吗?几乎每一百个人里,便有一个没法用视觉感受世界。在中国,视障人士数量已经超过1700万,相当于一个深圳常住的人口数量。
而在互联网时代,智能手机成为了信息的入口,但对于视障人士来说,看不见屏幕是不是就意味着不能使用智能手机、丧失接收信息的权利了呢?
当然不!视障人士也可以使用手机,而且使用效率一点也不差!那你知道他们是如何使用的,小米在这方面又做了什么吗?
(图:屏幕阅读器TalkBack开启界面图)
不同于用“看”的,视障用户使用手机是用“听”的。只要使用视觉辅助功能—屏幕阅读器(安卓叫TalkBack,iOS叫VoiceOver/旁白),就可以“听”到手机上的内容。
屏幕阅读器开启方式
安卓:同时按住“音量+”与“音量-”打开TalkBack,或通过【设置】-【更多设置】-【无障碍】-打开TalkBack
iPhone:【设置】-【通用】-【辅助功能】打开【旁白】
Windos/Mac:分别通过搜索开启【讲述人】与【旁白】,打开功能。
但屏幕阅读器到底是怎么运作的呢?那就要从“焦点”讲起了。
● 焦点是什么?
"焦点(Focus)"就像屏幕阅读器的眼睛,负责聚焦页面内容(每一项内容称为一个“元素”),获得焦点的元素会被方框标记,成为被选中的状态。
当使用屏幕阅读器时,屏幕阅读器会检测"焦点(Focus)",并且识别焦点内容,然后由TTS把识别的内容朗读出来。如此视障用户听见播报,便知道正在浏览什么。
在相对理想的交互情况下,焦点会首先集中在页面最左、最上方的元素,像日常阅读一样,右滑移动焦点的顺序从屏幕的顶部到底部流动,从左至右进行排布。
不过,同样有程序员会将焦点优先设置在大标题、登录按钮等优先级高的元素,从而让用户尽快了解页面主要内容或完成主要操作。
(图:MIUI系统【设置】应用界面,第一个获得焦点的是大标题“设置”,第二个是搜索框)
● 怎么切换焦点?
那要如何浏览页面其他内容呢?这时候需要向右滑动,切换到下一个焦点;向左滑动则可以返回上一个焦点;双击屏幕则可以“激活”焦点(相当于正常使用时,手指点击一下)。比如,有一个链接获得了焦点,双击就可以跳转进这个链接。
有些用户更喜欢使用电脑操作。电脑端的操作也一样,通过Tab键向右移动焦点、Shift+Tab键向左移动焦点、回车激活焦点。
除了左右划动,还有一种切换焦点的方式。假如你已经很熟悉某个界面,知道元素大致位置,就可以直接单击某个元素,焦点就会改变位置,从之前聚焦的元素跳到正在触摸的内容。就像是读一本书可以直接从中间开始,不需要一页页翻过去,快速省时!
● 假如工程师忘了加焦点
在理想状态下,页面的所有元素都被加上了焦点,那么你只要手指右划、右划,听见语音跟随着焦点依次朗读,页面内容全get!
但如果程序员忘记给某个元素标上焦点,它就被忽略了,无论如何左右划动都选不中,就像披上了一层隐身衣,屏幕阅读器“看不见”,语音朗读更是无从谈起。
像是弹窗页面的关闭按钮、动态滚动的广告图片,许多视障用户都有被困在弹窗广告里打转的经历,怎么也选不中那个小小的“×”,无法退出,只能一次次在屏幕上猛戳,希望能幸运戳中。
(图:某应用界面,悬浮窗的关闭按钮没有设置焦点,以致无法选中并关闭)
● 焦点也不是有加就好
焦点也不是只要加上了就好,多加焦点、焦点未分等也会让视障用户使用困难。比如:一字排开的几个按钮,焦点没有拆分,屏幕阅读器就会直接读取一整行,无法单独选中其中一个。
想象一下,你点进购物APP,想要秒杀一款打折的家具,却听见TTS把桌椅板凳沙发吊灯像报菜名一样念完,但没告诉你现在焦点选中了哪个,是不是很让人抓狂?
(图:某应用界面,因焦点没有分割,导致一行中的不同元素共享同一个焦点)
国内厂商中,MIUI系统的无障碍适配走在前列,针对信息无障碍的起步也较早,经过程序员的无障碍意识普及、软件Bug的持续排查,以及公司对于用户平等使用手机权利的重视。系统自带的APP经过几次收集用户反馈与自我筛查,已经基本杜绝了无焦点、多焦点、焦点顺序错误等问题。
(图:MIUI在微博与用户互动,无障碍产品负责人在线解答问题)
然而,除了MIUI的原生应用外,部分非小米系的应用无障碍适配可能没有那么好,欢迎大家开启屏幕阅读器一同尝试,看看你手机里的应用,是不是都有加上焦点呢?如果没有,也欢迎你们主动反馈,让每个应用的无障碍都适配得更好!
无障碍是一条漫长的路,也希望有更多人成为我们的同路人,相信信息世界全面适配无障碍的那天,一定会更快到来,让全球每个人都能享受科技带来的美好生活!
实用TIPS
在安卓系统里,如果你想要给一个view加上屏幕阅读器的焦点,可以使用以下方法:
view.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
(右滑查看完整代码)
然而,单单有了焦点并不能使视障人士顺畅使用手机。还需要为焦点添加“标签”,从而能被TTS朗读。那么标签是什么,为什么要添加标签,使用场景及添加规范又是什么呢?
我们会在“技术人文”后续系列中跟大家介绍,记得关注小米技术,订阅话题!
END
Helin123✓: 很好的文章,清晰明了
普通网友: 博主的文章让我对这个主题有了全新的认识,细节描写非常到位,让我感受到了博主的深厚功底。【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】
张起灵先生: 求开源实现啊,大佬
jack-pudding134: 请问有论文吗
Lemon Aourase: 请问开源地址在哪?