无障碍性(Accessibility)是一个重要的前端设计和开发原则,意味着网站和应用程序需要被设计和构建得能够让所有用户,包括身体上、认知上和感知上有障碍的人,都能够访问和使用。而 Axe 是一个强大的无障碍性检测工具,可用于检测前端应用程序是否满足无障碍规范,下面是笔者的使用心得与技巧。
安装和快速使用
Axe 是一个通过 JavaScript 进行检测的无障碍性工具,可以直接在浏览器上使用。安装方式有两种:
- 通过 npm 安装:
npm install axe-core
- 直接下载 axe.min.js 文件:https://github.com/dequelabs/axe-core/releases
使用方式也十分简单,只需要在前端代码里引用 axe.min.js 文件,并在需要检测无障碍性的页面引入以下代码:
axe.run((err, results) => { if (err) throw err; console.log(results.violations); });
执行以上代码后,控制台将打印出无障碍问题的数组。
检测工具的输出
Axe 可以用于检测包括语义、ARIA 属性、颜色对比度、标签的正确使用等等一系列无障碍性问题。其输出的结果通常包括以下几个部分:
violations
,表示该页面存在的无障碍性问题。incomplete
,表示 Axe 未能检测到的页面元素。passes
,表示该页面的无障碍性检测通过的部分。inapplicable
,表示该页面无法应用 Ax 插件进行检测的部分。
针对检测出的问题进行修正
Axe 提供了详细的无障碍性报告,报告将提供问题元素、违反规则和可选修复建议等详细信息。具体问题如何修复则因问题而异。
- 对于无障碍性问题而言,HTML 语义化是非常重要的。有些错误可能由于 HTML 标签的不正确使用造成,例如在正常的段落标签
<p>
内嵌套标题标签<h1>~<h6>
应被修改为使用符合规范的形式。 - 对于缺失 ARIA(通用条款和技术规范) 属性,需要根据 ARIA 规范来添加相应的属性。例如,典型的菜单组件通常使用
role="menu"
,菜单项则需要使用role="menuitem"
。 - 对于颜色对比度问题,可以使用颜色对比度检测工具来快速定位问题,并适当调整前端样式。
Axe 的优缺点
虽然 Axe 作为无障碍性检测工具,具有一定的功效和成效,但其也存在一些优缺点:
优点
- Axe 能够智能化地识别出大量的无障碍性问题,并提供详细的报告以及对应的修正方案。
- 可以方便地集成到前端开发工具链中,方便进行检测和修正。
- 自定义规则的能力,开发者可以根据自身需求,制定特定的规则进行检测与优化。
缺点
- Axe 仅仅是纯静态的代码分析工具,无法考虑用户的个人需求和感知,存在一定的局限性。
- Axe 只能识别已编写的问题,并无法判断某些隐形问题。例如,用户可能无法识别特定颜色和无法听到特定声音,但是这种问题是不会被 Axe 检测到的。
总结
通过 Axe 进行无障碍性检查是极为必要的一步。一个经过无障碍性检查的页面能够让用户无论是否存在身体、感知或认知障碍,都能够得到高质量的访问和使用。在使用 Axe 进行无障碍性检查时,需要了解检测工具的使用方法和输出结果,同时还需结合前端技术和规范,逐一修复检测出的无障碍性问题,保证 Web 应用的可用性和用户体验。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/654c67987d4982a6eb5ef36d