Cypress无障碍测试高级解决方案
无障碍自动化原则
本指南概述了使用Cypress Accessibility的基础概念,这些概念也普遍适用于无障碍自动化工具。
无障碍的层级
Cypress Accessibility会对您使用Cypress测试的应用程序的每个重要状态和变体运行Axe Core®检查。这类自动化可以捕捉到手动审计中57%的问题,但它不能替代审计过程中应用的人工判断。审计人员会以无法完全自动化的方式测试各种场景和技术。
无障碍可以分为三个递进层级:
- 基本可用性:这是残疾用户很可能能够在应用程序中取得实质性进展的阈值,但仍可能遇到重大障碍或可用性问题。如果您的联系表单和问题报告系统是无障碍的,您将能够从实际用户那里了解到这些问题。关注Cypress和Axe Core®报告的问题应能帮助您达到这一层级。
- WCAG合规性:像Axe Core®这样的自动化工具可以检测到许多重要的无障碍障碍,但人工评估对于验证是否符合Web内容无障碍指南(WCAG)至关重要。这通常是网络无障碍相关法律法规设定的标准。如果您的目标是法规遵从性,这就是标准线。没有任何通用自动化工具可以"证明"符合这一标准,它需要人工评估。
- 良好的用户体验:这需要由实际使用辅助技术的残疾日常用户来验证。完全有可能拥有一个通过前两个层级的网站,却仍然提供糟糕的用户体验。
无障碍关乎以允许残疾用户独立理解界面并完成所有任务的方式,传达应用程序的性质和结构,以及可用的操作和信息。POUR原则(可感知、可操作、可理解、健壮)构成了超越特定测试或检查的有效无障碍基础。虽然Axe Core®告诉我们许多真正的无障碍障碍,但重要的是利用这些信息做出关于无障碍的良好决策,并提供真正平等的体验。
误报
Cypress Accessibility和Axe Core®试图最小化误报,但它们仍可能发生。误报的一些例子包括:
- 无效状态:误报可能来自测试部分水合的DOM或用户永远不会遇到的其他状态。您可以通过使用Cypress UI 中的"提供反馈"按钮报告无效状态,我们将持续改进产品以应对这些场景。
- 错误的违规:Axe Core®可能由于规则中的错误或限制而报告违规。由于Axe Core®是一个开源产品,如果我们遇到错误,可以在项目中提出问题,甚至根据需要提交拉取请求。
常被误认为误报的问题
一些不是误报,但可能看起来像误报的问题包括:
- 加载状态:合法的面向用户的加载状态可能表现为潜在的误报。它们告知用户待处理的数据,并在数据加载缓慢时提供后备功能。在前端开发中"使不可能的状态不可能"是一个好主意,这样做您可以遵循无障碍的健壮性原则。
- 辅助技术支持:某些无障碍技术并未得到所有辅助技术(如屏幕阅读器或语音控制软件)的完全支持。Axe Core®考虑到了这一点。测试的软件和操作系统列在其无障碍支持文档中。例如:如果您代码中使用的失败技术在您测试的特定屏幕阅读器、浏览器和操作系统组合中似乎正常工作,可能会看起来像是Axe Core®的误报。但如果它在常用技术配置中没有足够的无障碍支持,Axe Core®会有意使该技术失败,让您可以切换到支持更好的方案。
总结
无障碍自动化是任何快速发 展的现代代码库中无障碍策略的关键部分。当每天或每周合并多个代码变更时,不可能在合并前对应用程序的每个状态和变体进行手动检查。理解测试管道中"始终开启"的一套无障碍检查的细节,其中许多状态被自动检测,将帮助您了解Cypress Accessibility的行为方式,它最擅长发现哪些问题,以及可能留给其他形式测试的内容。