如何对web系统开展无障碍测试

news2024/11/23 19:04:37

Accessibility test(无障碍测试)是一种测试方法,旨在评估软件、网站或其他数字产品的可访问性,以确保它们能够被身体残障或其他特殊需求的用户使用。这些测试通常包括使用辅助技术,如屏幕阅读器和放大器,以模拟各种用户体验,并检查是否符合国际标准和法律要求的无障碍标准,例如 Web Content Accessibility Guidelines (WCAG) 和 Section508等。 Accessibility test 的目的是确保数字产品对所有用户都具有可用性、可理解性和可操作性,无论他们是否有残障、老年人、临时伤残、非母语用户等等。

对于一个web系统,如何开展无障碍测试呢?首先需要了解无障碍标准,例如WCAG和Section508等,其次是借助一些工具进行自动扫描,在fix扫描出来的issue的基础上再配合一些辅助工具开展全面的手动测试。

无障碍标准理解

WCAG 是 Web Content Accessibility Guidelines(Web 内容可访问性指南)的缩写,是由万维网联盟(W3C)发布的国际无障碍标准。WCAG 包括一系列技术标准和指南,帮助网站设计者和开发者创建无障碍的 web 内容,以便更好地服务于广大用户。

WCAG 涵盖了一系列无障碍性原则和准则,包括以下三个级别:

  1. A 级别:基本无障碍性要求。这些要求是最重要的,必须满足才能让许多残障用户使用网站。

  1. AA 级别:中等无障碍性要求。这些要求可以提高残障用户的访问体验,使大多数用户更容易使用网站

  1. AAA 级别:最高无障碍性要求。这些要求对于某些用户群体来说非常重要,但对于大多数用户来说可能并不必要。通常情况下,如果企业要开展无障碍测试,一般要达到AA级别。

WCAG 定义了 4 个无障碍性原则(POUR):

  1. 可感知性(Perceivable):用户必须能够感知所有内容和界面组件,包括文本、图像、音频和视频等

  1. 可操作性(Operable):用户必须能够使用界面组件和导航,例如键盘和鼠标等。

  1. 理解性(Understandable):用户必须能够理解内容和如何操作界面组件,以及如何浏览网站。

  1. 健壮性(Robust):内容必须能够在不同的浏览器和辅助技术中运行,以确保用户能够访问内容。

WCAG 还提供了多种技术和方法来实现这些要求,包括 HTML、CSS、JavaScript、ARIA 等。WCAG 是业界公认的最具权威性和可信度的无障碍标准之一,它的指南和技术标准已成为全球无障碍设计和开发的基准。在进行 web 系统的无障碍测试时,WCAG 标准是一个必须参考的依据,测试人员应该使用 WCAG 的指南和技术标准来检查 web 内容的可访问性,并确保其符合相关标准。

Section 508 是美国联邦政府为了保障残障人士的权益而颁布的一项法规。该法规规定,所有联邦政府机构和与政府合作的企业和组织必须确保其数字产品和服务对残障人士可访问,包括对视觉、听觉、身体和认知障碍的人士都应具备可访问性。

中国也指定了"互联网内容无障碍可访问性技术要求与测试方法",里面的很多规则在WCAG中已经包含。总结而言,因为WCAG提供了详细的技术标准和指南,且使用广泛,建议以WCAG为主要参考标准,对web网站开展Accessibility Test。

无障碍测试扫描工具

支持无障碍扫描的工具很多,例如axe,wave,lighthouse等,这三个工具都是以插件方式运行,即在浏览器上安装这些插件,即可扫描目标网页,这些工具的差异点是内置的无障碍规则不同,也就是扫描出来的结果会有所不同。此篇博客会逐一介绍如何使用这三个工具进行无障碍测试,其中会重点介绍axe,因为axe提供了非常丰富的功能。为了学习这些工具,首先来了解下无障碍测试工具的工作原理。无障碍扫描工具的工作原理如下:

  1. 网站抓取:无障碍扫描工具会首先对 web 系统进行网站抓取,收集系统中的所有页面、链接、表单等等,以便后续的检查和分析。

  1. 分析检查:扫描工具会针对 WCAG 或其他相关标准进行自动化的检查和分析,比如检查图像的替代文本、表单控件的标签、语言和语义的正确性等等。

  1. 问题报告:扫描工具会生成一个详细的问题报告,列出检测到的无障碍问题和建议的解决方案。这个报告可以帮助测试人员识别和修复 web 系统中的无障碍问题。

在了解了基本工作原理后,接下来先学习如何使用axe工具进行无障碍测试。axe包括几方面:

Axe-core:Axe-core是一个无障碍测试的开源JavaScript库。该库可以与已有的UI自动化工具集成,完成无障碍的自动化测试,例如axe-core可以和puppeteer或者selenium集成,详细demo可下载官网的demo运行。另外,UI自动化测试工具Cypress也提供了cypress-axe插件,使用该插件可以在cypress脚本上增加无障碍测试。

Axe-devTools: Axe-devTools又分为免费版本和收费版本,对于Axe-devTools-free本质上是将axe-core封装在易于使用的界面中,因此您可以进行自动化测试并查看结果,而无需构建自己的界面。axe DevTools Free扩展程序可在Chrome、Edge和Firefox浏览器中使用。

Axe-devTools-Pro:Axe-devTools收费版本,Axe DevTools Pro在axe DevTools Free(具有友好界面的浏览器内测试)的基础上增加了Intelligent Guided Testing™模块,通过引导完成手动无障碍测试来提高测试效率和质量。

相较于免费版本,Axe-devTools的收费版本和企业版本提供了如下了定制化功能,Prd版本可以免费试用7天,此篇博客重点介绍如何利用Axe-devTools-Pro开展无障碍测试。

要使用Axe-devTools非常简单,在浏览器上安装插件,打开目标web网站,开启扫描即可,具体如下图所示:

扫描完成后会给出具体的issue个数,还可查看每个issue详细信息以及改进建议,因为axe-devTools是是基于axe-core封装的,所以,要检查axe覆盖了哪些无障碍标准,可以下载axe-core的代码,在代码的/lib/rules目录下可以查看到所有的rules,具体如下图所示:

Axe-devTools Pro使用

虽然Axe DevTools是一种非常有用的工具,但它并不能完全覆盖所有的可访问性测试,所以还需要手动测试才能覆盖所有的无障碍规范,为了提升手动测试的效率,Pro版本提供了智能指导测试,可以理解成半手动测试提升测试效率。那为什么Axe DevTools不能覆盖所有的无障碍测试呢?具体原因如下所示:

  1. 依赖页面结构和语义化:Axe DevTools依赖于页面中的结构和语义信息来进行测试,如果页面没有正确的结构或语义信息,那么Axe DevTools可能无法检测到所有的可访问性问题。

  1. 无法模拟交互:Axe DevTools无法模拟用户的交互,例如使用键盘或屏幕阅读器进行操作。因此,它可能无法检测到所有与交互有关的可访问性问题。

  1. 依赖于特定的技术和标准:Axe DevTools依赖于特定的Web技术和标准来进行测试,例如ARIA(可访问性富互联网应用程序)和HTML5。如果页面没有正确使用这些技术和标准,那么Axe DevTools可能无法检测到相关的可访问性问题。

  1. 不包括所有的可访问性规则:Axe DevTools包括了许多可访问性规则,但它不包括所有的规则。因此,Axe DevTools可能无法检测到所有的可访问性问题。

接下来看看如何使用Axe-devTools Pro中的智能指导测试,智能指导测试包括Table/Keyboard/Modal Dialog/Interactive element/Structure/Images/Forms 七个部分,以Keyboard为例,来看看如何使用智能引导测试。

选择Keyboard后,devTools会自动扫描出页面上的Tab,并在页面上进行标注,此时只能引导显示“We’ve detected some elements in the tab order which lack a role which indicates interactivity to assistive technology”,让人手动确认页面标注的tab是否是所有的tab,如果有遗漏的,可以手动选择元素增加上去,然后每个元素有多个选项,例如:Element is interactive/Element is a scrollable region/Element is neither interactive nor scrollable,人工review,确认每个tab应该选择哪个选项,选择完成后,devTools完成分析,并给出issue细节,点击具体的issue,可以链接到issue的background,good example,bad example,fix suggesstion等,帮助开发人员更好的理解为什么这个是个Accessibility issue以及如何修复他。

总结而言,Pro版本在Free版本上弥补了部分无法自动扫描的无障碍问题,按照官网的说法,Free版本一般能扫描出网站50%左右的无障碍问题,通过智能引导测试可以覆盖到80%左右,对于剩下的20%无障碍问题,Pro版本也提供了手动无障碍测试CheckList,帮助测试人员全面检测Web网站是否满足无障碍规则,详细的CheckList如下图所示,这些CheckList可以帮助不熟悉无障碍测试的人员更好的理解如何对一个web网站开展无障碍测试。

上面介绍了axe-devTools,接着来看看WAVE插件使用,WAVE的使用也很简单,在浏览器上按照插件后即可使用,扫描结果如下图所示,因为内部覆盖的规则有所不同,所以针对同一个网站,两个插件扫描出的问题略有不同。实际项目中,建议采用某一个插件,相对来说axe提供的功能更加丰富,首选axe。

除了WAVE,性能检测工具lighthouse也可以检车accessibilty的问题,如下图所示,同理,工具内置的规则不同,检查结果也略有不同,另外,lighthouse也给出了high level的手动checkList。

以上就是对web系统开展无障碍测试的介绍,总结而言,在开展无障碍测试前,需要透彻理解无障碍相关规则,然后选取一款自动扫描工具进行扫描,在修复了扫描后的issue情况下,再参考手动测试CheckList对web系统开展更全面的无障碍测试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/385870.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mysql集群简介

集群的好处 高可用性:故障检测及迁移,多节点备份。 可伸缩性:新增数据库节点便利,方便扩容。 负载均衡:切换某服务访问某节点,分摊单个节点的数据库压力。 集群要考虑的风险 网络分裂:群集还…

学生专用台灯怎么选?2023最新对学生眼睛好的台灯盘点

学生是现在用台灯非常多的群体,因为学习压力大,免不了晚上加班,但是也要注意使用保护眼睛的台灯,否则容易出现近视。 那么学生专用台灯该怎么选呢?选择学生专用台灯需要考虑以下几个方面: Ⅰ、亮度&#x…

Ajax ie缓存问题 请求超时与网络异常处理

IE缓存问题解决 什么是ie缓存: ie浏览器会对AJAX的请求结果做一个缓存 这样子就会导致一个问题 :下一次再次发送这个请求时用的是本地的缓存而并不是服务器返回的最新数据。 前端代码: btn.addEventListener(click, function () {const xhr new XMLH…

关于UE4多人局域网联机游戏中联网和回放的设置细节问题

背景 需要搭建局域网游戏。还需要把多人协作玩耍的过程记录下来,可以回放。于是开发了联网和回放功能。但出了问题。报了错。“客户端漫游失败,待定网络游戏创建失败” 怎么解决? 问题 创建UE4工程后,使用蓝图创建多人局域网蓝…

知识图谱的介绍

知识图谱的由来 谷歌在2012年提出了知识图谱的概念,当时目的在于优化搜索引擎的返回结构,为用户提供更精确的结果。 知识图谱的定义 为了理解知识图谱,我们首先要明白信息与知识的概念。首先,信息表示的是外部的客观事实&#…

binlog找回误删数据

1、检查当前是否开启binlog存储 输入命令show variables like %log_bin%;,结果如下 可以看到log_bin的值是ON,说明binlog开启了。 2、查找binlog的存储位置 这个去到数据库的my.cnf配置文件中寻找,有一个log_bin的配置 切换到log_bin的目…

Saleen 系列来袭!

由 Ghostopunch 创作👻🥊 Ghostpunch 将 Saleen Automotive 带入 The Sandbox 元宇宙! 是 Saleen Automotive 于 1984 年由汽车界的梦想家 Steve Saleen 创立,目标是将经过比赛验证的性能带入大街小巷和元宇宙……😉 5…

TSDF学习记录

【唐宇迪】三维重建-TSDF通俗解读 人工智能入门教程 水泡动画模拟(Marching Cubes) - 算法小丑 - 博客园 (cnblogs.com) TSDF 流程分析 首先需要构建一大块空区域采用体素网格来存储该区域需要计算每个体素的TSDF值及其权重 原理简述 SDF值&#x…

【开源库学习】从OkHttp到Retrofit(其一 OkHttp)

从OkHttp到Retrofit主要流程dispatcherInterceptorsRetryAndFollowUpInterceptorBridgeInterceptorCacheInterceptorConnectInterceptorCallServerInterceptor缓存连接池主要流程 okHttp的使用比较简单,通常需要首先初始化一个HttpClient,然后在每次发送…

基于ubuntu的STM32嵌入式软件开发(四)——应用软件工程的修改、Makefile及编译脚本的编写

本文主要介绍基于标准库函数移植的STM32的应用软件工程的修改,主要涉及到文件内容修改、Makefile文件编写、编译脚本编写等内容,其中编译脚本是基于arm-none-eabi-gcc的交叉编译器撰写的。程序亲测可以正常编译,生成.bin和.hex的可烧录镜像文…

笔记--学习mini3d代码

主要是记录学习mini3d代码时,查的资料; 从github下载的代码: GitHub - skywind3000/mini3d: 3D Software Renderer in 700 Lines !!3D Software Renderer in 700 Lines !! Contribute to skywind3000/mini3d development by creating an a…

富文本QTextEdit

<1> QTextEdit支持富文本处理&#xff0c;即文档中可使用多种格式&#xff0c;如文字、图片、表格等… <2> 文档的光标主要基于QTextCursor类&#xff0c;文档的框架主要基于QTextDocument类。 <3> 一个富文本的文档结构主要分为几种元素&#xff1a;框架&am…

公司只有我一个测试人员...也没有朋友经验可以借鉴,我该怎么办?

近日看到一个帖子&#xff1a; 我所在的公司目前就我一个测试&#xff0c;我一个人对接开发&#xff0c;对接产品&#xff0c;公司也没什么流程&#xff0c;我不知道我该做什么&#xff0c;也没有前人经验可以借鉴&#xff0c;我该怎么办&#xff1f; 看到有很多刚刚步入测试行…

报名成人学历,还有没有必要申请学士学位?

很多同学在报名成人学历的时候并不重视学位证书&#xff0c;认为拿到毕业证就行了。 其实&#xff0c;学位证的重要性有时候真的不亚于毕业证。 别人要求必须双证&#xff0c;你一个毕业证就不顶事了。 下面我们就来了解下学位证的用处&#xff0c;以及三大成人学历提升方式&am…

微服务一 实用篇 - 3. Docker

《微服务一 实用篇 - 3. Docker》 提示: 本材料只做个人学习参考,不作为系统的学习流程,请注意识别!!! 《微服务一 实用篇 - 3. Docker》《微服务一 实用篇 - 3. Docker》1.初识Docker1.1.什么是Docker1.1.1.应用部署的环境问题1.1.2.Docker解决依赖兼容问题1.1.3.Docker解决操…

干货文稿|详解深度半监督学习

分享嘉宾 | 范越文稿整理 | William嘉宾介绍Introduction to Semi-Supervised Learning传统机器学习中的主流学习方法分为监督学习&#xff0c;无监督学习和半监督学习。这里存在一个是问题是为什么需要做半监督学习&#xff1f;首先是希望减少标注成本&#xff0c;因为目前可以…

软件测试自动化Java篇【Selenium+Junit 5】

文章目录Selenium环境部署自动化测试例子常见的元素操作窗口等待浏览器的操作弹窗选择器执行脚本文件上传浏览器参数Junit 5导入依赖Junit 4 和 Junit5 注解对比断言测试顺序参数化单参数多参数动态参数测试套件指定类来运行测试用例指定包名来运行包下测试用例Selenium 为什么…

【线程安全篇】

线程安全之原子性问题 x &#xff0c;在字节码文件中对应多个指令&#xff0c;多个线程在运行多个指令时&#xff0c;就存在原子性、可见性问题 赋值 多线程场景下&#xff0c;一个指令如果包含多个字节码指令&#xff0c;那么就不再是原子操作。因为赋值的同时&#xff0c…

智慧工地AI视频分析系统 opencv

智慧工地AI视频分析系统通过pythonopencv网络模型图像识别技术&#xff0c;智慧工地AI视频分析算法自动识别现场人员穿戴是否合规。本算法模型中用到opencv技术&#xff0c;OpenCV基于C实现&#xff0c;同时提供python, Ruby, Matlab等语言的接口。OpenCV-Python是OpenCV的Pyth…

研讨会回顾 | Perforce版本控制工具Helix Core入华十年,携手龙智赋能企业大规模研发

2023年2月28日&#xff0c;龙智联合全球领先的数字资产管理工具厂商Perforce共同举办Perforce on Tour网络研讨会&#xff0c;主题为“赋能‘大’研发&#xff0c;助力‘快’交付”。 作为Perforce Helix Core产品在中国地区的唯一授权合作伙伴&#xff0c;龙智董事长何明女士为…