在前端开发中,无障碍性(Accessibility,缩写为 A11y)是一个不可忽视的问题。好的 A11y 体验是一种社会责任和道德标准,同时也能使我们的网站和应用程序更具可见性和可用性。但是,为了保证这种体验,通常需要遵循不同的规范和指南,这对于很多开发者而言是一个挑战。
幸运的是,像 WordPress 这样的平台已经建立了一套严格的规范,并提供了一个名为 @wordpress/a11y 的 npm 包来辅助我们完成无障碍性的构建。本文将详细介绍这个包的使用方法,并给出一些使用示例。
包含哪些功能?
@wordpress/a11y 包提供了一系列检测函数,可以检查 HTML 代码中是否存在不合规范的标记、缺少 alt
属性的图像、没有文字描述的链接、缺少语义信息的按钮等等一系列违反无障碍性实践的情形。并且,这个包的检测函数默认已经有一套构建于 WordPress 平台上的无障碍性指南,因此我们不需要额外的配置和自定义即可直接使用。
安装和使用
使用 npm 安装这个包很简单,只需要在项目的根目录下,输入一下命令即可:
npm install @wordpress/a11y --save
为了使用这个包,我们还需要导入一些必要的库,我们可以把它们导入一个叫做 a11y
的模块当中。具体代码如下:
import * as a11y from '@wordpress/a11y';
在导入后,我们可以开始使用这个包里的函数检查我们的 HTML。例如,下面这个示例代码展示了如何检测一个 button
元素是否带有 aria-label
属性(该属性用于描述按钮元素的作用):
const button = document.querySelector('.my-button'); if (!a11y.speak.assertiveMessage(button, 'aria-label')) { console.warn('请给按钮添加“aria-label”属性'); }
如果这个 button 元素确实没有 aria-label 属性,我们会在控制台看到相应的警告信息。
检查 HTML 标记
另一个可以使用 @wordpress/a11y 包的场景是检查 HTML 标记是否合规范。这个包提供了一系列的函数来进行这个检查,它们通常以 is*
开头,例如 isTabbable
、isDisabled
、isFocused
等等。
下面这个示例代码,展示了如何使用 isSafeTabbable
方法来检查一个元素是否可以获得焦点:
const element = document.querySelector('.my-element'); if (!a11y.isSafeTabbable(element)) { console.warn('该元素不可获得焦点,请确保正确设置 tabindex 属性'); }
结论
通过 @wordpress/a11y npm 包,我们可以快速地构建带有无障碍性的网页和应用程序,提高用户体验,实现社会和道德责任。并且,这个包十分易用,我们可以在项目中快速导入并使用它提供的很多检测函数。
如果您还没有开始关注无障碍性,那么现在是时候考虑加入这一重要的开发实践了。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedb46ab5cbfe1ea0611276