在文章开始前,我们首先要知道,什么是可达性(Accessibility) ?

可达性(Accessibility) 有一个通俗易懂的等价名词叫“无障碍”, 它体现在生活的各个方面,比如盲道,商场医院的无障碍通道,机场的无障碍电梯等都是“可达性”的一种实现。

具体到软件行业,可达性是指软件从设计到实现,能使残障人士,老年人,非本土人群等获得同等信息和服务。简言之,如果你的软件能够支持不同的人群来使用,那么你就做到了可达性。

举个例子,如今很多老年人也喜欢网购,但是手机上的字体和图片都很小,老人可能看不清楚。如果购物网站或者手机本身支持放大字体和图片,并在放大后保证足够的清晰度,就能使得老人购物也很方便。这就是可达性针对特定人群需要的一种实现。

欧美对软件可达性的要求比较高,比如美国有一个著名的508无障碍方案,1998年8月7日由《劳动力投资法》(P.L.105-220)修改。强制要求在美售卖的软件要符合可达性,通过可达性测试并按政府要求的格式生成相应的可达性报告。

在国内,随着信息技术产业的快速发展,人们对软件可达性的需求也越来越高。

可达性的实现覆盖视觉、听觉以及认知等方面,下面我们来看看可达性测试所需要涵盖的基本测试点。

视觉和听觉相关的测试

颜色/图片配字/对比度

颜色相关的测试主要是针对色盲/色弱用户考虑的。我本人在几年前有过这样一个经历,一位同事讲PPT,在接近绿色的背景上用了大红的字体。他用绿底色的本意是希望让观众的眼睛比较舒服,而红色字体是希望引起大家的注意。

但是有可达性测试经验的我,就对此特别敏感,因为如果观看者里有红绿色盲,那这样的PPT对其几乎就是不可读的。

在软件开发的过程中,此类情况还是很常见的。比如柱状图,用不同的颜色做分类展示。多数人看到这样的图并不会觉得有什么不妥。但可达性测试人员对此要尤其注意,凡是单纯用颜色来区分或分类的实现都是典型的可达性bug。

那么,如何做才能给对颜色辨识有困难的用户提供同等的信息呢?最常用的一个做法是加文字标注。

还拿柱状图做例子,比如用柱状图统计超市不同品牌的啤酒的售卖量,红色代表百威,绿色代表蓝带。那在颜色区分的同时,在红色柱旁加文字“百威”;在绿色柱旁边加文字“蓝带”。这样,即使不能分辨两种颜色,通过文字标注也可以获取等同的信息。

图片配字也是类似的原因和要求,少数人会对某些类型的图片识别有困难,或者无法辨识图片里不同颜色的差异,导致无法理解图片的内容。所以,如果软件的输出有非装饰性的图片—即希望通过图片向客户传达信息或指示的时候,需要配上相应的文字说明。

对比度则是指字体和其背景的颜色的对比度/差异性要足够大(否则用户可能难以辨认文字内容),而且字体大小得满足特定需求。

具体要求W3C有非常细节的定义,同时W3C也列举了一些工具帮助检验前景/背景的对比度。内容较多,本文难以尽述,需要的读者可以参考W3C:https://www.w3.org/TR/WCAG20-TECHS/G18。

标题/标签/感知觉描述

标题/标签主要是针对视觉障碍的人群。符合可达性软件的一个基本要求是要支持读屏工具,对于盲人或弱视人群,可以通过读屏工具来“读”软件,并且操作软件。因此软件里的标题/标签必须是有意义且描述准确的。

这样的话,当读屏工具读到某个标题,使用者可以根据标题的内容来判断这部分内容是不是他/她感兴趣或需要的,从而决定是跳过还是进一步深入这个标题下面的具体内容。

在有些软件里我们会包含一些和感知觉相关的描述,例如形状,大小,位置,方位等等,对于大多数人群,这些描述为使用软件提供了便利性。但是一些有某类感知觉障碍的人可能无法理解其含义。

例如:“提交表格请点击圆形按钮”,这样的提示语对那些形状识别障碍人群来讲是没有帮助的,甚至会带来困惑。

一个合格的测试人员要能够发现问题,也要能提供改进意见。那么针对这个问题,期望行为应是什么样的呢?首先:我们应给这个按钮加一个标签,如“OK”;其次引导语应修正为“提交表格请点击圆形按钮:OK”。这样的话,即使不能识别形状,也可以通过标签“OK”找到相应的按钮。

音频/视频

当软件或应用中包含音频或者视频时,要确保除过音频/视频,软件还提供了其他方式来向用户提供等同的信息。

例如,软件提供了一段包含对白和声音(自然的或是人工合成的)的录音。那惯常的“可达性”的实现方法是:提供一份文档(文字信息),包含对白等,来传达等同的信息。

对于视频的可达性实现也是类似的要求。

键盘可达性测试

键盘可达性是指通过纯键盘操作来使用软件,主要是针对软件的某些功能实现只支持鼠标操作来讲的。之所以要求键盘可达性,是因为很多实现可达性的辅助技术是依赖键盘交互的。键盘可达性测试需要覆盖以下几个方面:

TAB遍历:即所有的可操作部分(文字,标题,链接,按钮,输入框等等,装饰性图片除外)都可以通过敲Tab键来遍历。

SHIFT+TAB回溯:当你用TAB把整个软件遍历一遍以后,要用SHIFT+TAB来验证是否可以将整个软件回溯一遍。

TAB顺序合理:是指使用TAB键遍历软件的时候,跳转顺序要与软件的使用流程相一致。例如,完成某个操作有5个步骤,而且步骤间有先后关系,那么TAB跳转的时候一定要按照先后顺序跳转。在我刚开始接触可达性测试的时候,当时的产品设计没有充分考虑可达性的需求,我曾经不止一次发现跳转顺序混乱的情况。

聚焦可视化:是指当用TAB键跳转到一个控件,链接,标题……的时候,需要有肉眼可见的视觉效果让用户知道当前TAB跳转到什么位置了。通常的实现方法包括给在按钮周围显示一个高亮的边框,链接变颜色,文字信息四周有虚线边框等。

布局设计一致:为了提高用户浏览软件的效率,要求重复出现的界面元素在不同页面显示的位置和顺序是一致的。比如,一个视力有缺陷的用户主要依赖“搜索”这个功能来查找网站的内容,网站设计实现的时候,最好“搜索”在每个页面出现的位置是一样的,这样就方便用户很容易地定位和找到“搜索”。其实,不光是视力缺陷的用户,普通用户也有这样的预期,布局一致的设计更符合人们的认知和使用习惯。

区块跳转:很多残障人士主要依赖键盘操作软件,如视力缺陷人群很难使用鼠标,像前文介绍的,他们通过敲TAB键来遍历软件,并通过读屏软件获取相应的信息。这样的话,如果一个软件或应用里含有大量的重复信息,如成百上千个链接,当使用TAB键遍历的时候,就会淹没浩如烟海的链接里。对这些用户来说,软件的可用性就很差,甚至几乎是不可用的。可达性软件有一个要求叫区块跳转,可以在一定程度上解决这个问题。

下面举个例子,来说明区块跳转是什么,及如何实现。例如一些大的门户网站,把信息作如下分类:新闻、财经、体育、房产、时尚、科技……,每一个分类都可以被称为一个“区块”。那么在设计实现的时候基本做到以下几点就实现了区块跳转:

1. 每个页面顶部放置一个可以直接跳回网站主页的链接。

2. 每个“区块”的顶部放置一个可以直接跳转到“区块”结束位置的链接;

3. 在页面顶部放置可以直接跳转到其他“区块”的链接。

实现了上述三个要求,基本上就可以做到无论在任何页面,都可以直接在区块间跳转。

比如,用户感兴趣的是“理财”话题,那么按照键盘遍历的顺序,他首先到达的是新闻版块,由于该话题不是他关心的,该用户可以选择直接跳转到新闻版块结束的位置,继续TAB,就可以到达他感兴趣的财经版块了。

借由这样的实现,通过键盘访问网站的用户无须遍历他并不感兴趣的新闻版块,节省了大量的操作时间,网站的可用性也大大提升。

对读屏软件的支持

为了满足视力有缺陷的用户使用软件的需求,可达性的另一个基本要求是能够支持读屏软件,也即软件传达的信息以及如何操作都可以被“读”出来。

JAWS是一款使用非常广泛的专业读屏软件,由Freedom Scientific出品,最新的版本JAWS 2018发布于2017年10月,感兴趣的读者可以通过如下链接下载并尝试使用。http://www.freedomscientific.com/Downloads/JAWS

正因为JAWS有相当广泛的用户群,所以很多可达性软件也都支持JAWS,不光文字性的信息要被读出来。一些控件,如按键,表单,输入框,甚至图片等也要能被JAWS识别并读出来—这可以通过给控件添加标签等方法来实现。

可达性测试的工具

像任何其他测试一样,可达性测试也有一些自动/半自动化的测试工具。

比如,IBM Rational Policy Tester (RPT) 用来扫描Web网页的静态内容并判断是否符合可达性要求;Firefox 的 Dynamic Assessment Plugin (DAP)无论对开发和测试来讲都是一款很强大的工具,可以用来检测色差对比度,跳转顺序等。

一些大公司也会开发一些仅供内部员工使用的可达性测试工具,不对外开放。

不过,与其他测试(如功能、性能)稍有不同的是,可达性的自动化测试并不能取代(或部分取代)手工测试,而只能作为一种辅助测试手段。

例如,Web的自动化测试扫描出来的结果,并不能作为最终测试结果直接提交,而是需要由专职测试人员对扫描出的问题进行复审,结合产品的具体实现来判定这些问题是否真的是可达性bug。由此足见,可达性测试对专业知识的要求之高。

上文介绍了软件可达性的基本要求和测试点。当然,可达性的外延很宽泛,而且随着科技的发展,可达性的标准也在不停地完善和丰富。另外针对不同的应用,比如单机版软件,Web应用或者移动终端,可达性的要求和测试点也不尽相同。

有志于探索可达性测试的达人,通过进一步的学习可以发现更多有趣的知识和技术。

随着学习的深入,你会慢慢意识到,所谓可达性并不只是为了满足“残障”人士的需求,它的很多要求都更贴合人们的认知方式和使用习惯,可达性的实现会给所有使用软件的人带来极大便利。

本文作者 zjyforuok ,首发于51Testing软件测试网。

你开发的软件过不了可达性测试!相关推荐

  1. PDPS软件:机器人可达性测试功能介绍与使用方法

    本文已经首发在个人微信公众号:工业机器人仿真与编程(微信号:IndRobSim),欢迎关注! 引言 在虚拟仿真过程中,对机器人的可达性测试是非常重要的.市面上常见的工业机器人虚拟仿真软件都提供了这样的 ...

  2. Leangoo敏捷开发项目管理软件-工作日志

    Leangoo敏捷开发项目管理软件为了计算研发成本,每天开发人员可以填报他在每个需求上实际花费了多少时间,管理员可以按月进行统计. 工作日志的统计:

  3. 2014年最热门的国人开发开源软件TOP100

    2014年最热门的国人开发开源软件TOP100 不知道从什么时候开始,很多一说起国产好像就非常愤慨,其实大可不必.做开源中国六年有余,这六年时间国内的开源蓬勃发展,从一开始的使用到贡献,到推出自己很多 ...

  4. 各种开发源代码软件许可证异同

    共同点总结 1:发布的义务-将获得的原代码再发布 2:对发布的源代码的要求-必须保证源代码的完整和可以被获取 3:允许修改-可以根据获取的源代码产生演绎作品 不同点对比 是否允许可以同其他非开放源码软 ...

  5. rp软件app流程图_如何开发app软件,流程怎样

    好的APP开发公司有哪些 手机app开发分为Android客户端开发.iOS客户端开发.Symbian客户端开发.Windows Phone和BlackBerry OS等定制开发.如果找公司做的话,和 ...

  6. python运维之轻松模拟开发FTP软件05

       以往众多运维者,大多都是在应用国外已经开发好的软件,如今的国内运维职位已经要求我们具备较强的创新能力,一些日常小工具小软件应该能做到手到拈来,这样我们才能在激烈的竞争中占据有利位置.请看: py ...

  7. 使用 C# 开发智能手机软件:推箱子(十二)

    这是"使用 C# 开发智能手机软件:推箱子"系列文章的第十二篇.在这篇文章中,介绍 Window/AboutDlg.cs 源程序文件. 这个源程序文件包括 AboutDlg 类,该 ...

  8. 使用 C# 开发智能手机软件:推箱子(二十三)

    这是"使用 C# 开发智能手机软件:推箱子" 系列文章的第二十三篇.在这篇文章中,介绍 Window/MainForm.Common.cs 源程序文件.这个源程序文件是 MainF ...

  9. 使用 C# 开发智能手机软件:推箱子(二十)

    这是"使用 C# 开发智能手机软件:推箱子" 系列文章的第二十篇.在这篇文章中,介绍 Window/DesignDlg.cs 源程序文件.这个源程序文件包含 DesignDlg 类 ...

最新文章

  1. 技术图文:如何在Python中定义二维数组?
  2. 连接池技术 Connection Pooling
  3. stm32之GPIO
  4. 强化学习之原理详解、算法流程及Python代码
  5. MATLAB描绘极坐标图像——polar
  6. easyui关机图标_如何在Windows 10中创建关机图标
  7. Linux——如何打开或者安装g++
  8. eclipse java开发实例_eclipse+webservice开发实例
  9. 大数据实战之环境搭建(三)
  10. eviews建立时间序列模型_Eviews系列12|时间序列模型常见问题解答
  11. SketchUp Pro 2019下载|SketchUp Pro 2019(草图大师)免安装绿色精简版下载
  12. 看大神如何玩转微信小程序日历插件?
  13. sip协议详解_基于SIP协议的媒体录音规范12个应用场景-SIPREC/RFC6341详解
  14. 浅析javaIO的原理过程
  15. tp5restful API的搭建(2)
  16. Ubuntu 论坛遭到入侵,用户数据泄露
  17. Python模拟锟斤拷等各类乱码
  18. win7做服务器性能如何,win7如何做服务器配置
  19. LinkTrack UWB定位系统NLink协议解析方法
  20. 题目:代码实现判断单链表是否有环

热门文章

  1. 梦幻西游真武阁默认服务器一直维护,梦幻西游山西区雁门关转区问题
  2. Unity 安卓环境下保持设备屏幕唤醒
  3. LED的电磁干扰问题探讨
  4. 年薪超20万,IT业成2021年平均工资最高的行业
  5. 幽门螺杆菌阳性吃什么药?医生给出5个建议,助你合理用药
  6. 深度学习——CNN(卷积神经网络)(超详细)
  7. 计算机专业考研书目(中科大)
  8. 手机android主题设置在哪里,手机如何安装Android主题
  9. 搞懂 Vision Transformer 原理和代码,看这篇技术综述就够了
  10. php国际化多语言,php 通过include方式实现国际化多语言(i18n)