如何使用 WAI-ARIA 框架提高无障碍性?

· 约 5 分钟读完

在现代互联网时代,我们日常使用的网站、应用和其他数字产品数量庞大,而广大的人群也日益多元化,为了让各种人群都能方便地使用我们的产品,无障碍性已经成为了越来越重要的一个问题。WAI-ARIA(Web Accessibility Initiative - Accessible Rich Internet Applications)是一个W3C标准,它为JavaScript的脚本化组件和DOM(Document Object Model)元素提供了一种有助于解释应用程序行为的结构,这样可以更好地提供有意义的访问性和交互性。那么,在前端开发中,如何使用 WAI-ARIA 框架提高无障碍性?本文将为您详解。

为什么需要无障碍性?

在现实生活中,有很多人在使用数字产品时会遇到各种障碍,比如视力、听力、肢体功能障碍等等。这些障碍会使得他们难以使用许多普通人能轻松使用的产品。通过保障无障碍性,我们可以让所有的人都能同样方便地使用数字产品,这不仅是对这些人权利的尊重,也是对数字时代的一种推动和提高。

WAI-ARIA 框架简介

WAI-ARIA 框架是一种通过给HTML元素添加角色、状态和属性来帮助开发人员更好地描述应用程序行为和界面的方法。完整的 WAI-ARIA 框架包括三个部分:

  1. 角色:定义了 HTML 元素的作用和意义。
  2. 属性:定义了 HTML 元素的状态和值,比如文本框是否可编辑等。
  3. 状态:定义了 HTML 元素与用户交互时的当前状态,比如菜单是否打开等。

WAI-ARIA 通过这三个组成部分来帮助开发人员实现以下目标:

  1. 提供语义信息,使得浏览器和辅助技术可以更好地理解用户界面。
  2. 为无障碍用户提供丰富的交互功能,例如利用键盘实现交互、利用屏幕阅读器实现交互等。
  3. 增加表单控件的可访问性,使得所有用户都能正确理解表单。

如何使用 WAI-ARIA 框架

以下是一些如何使用 WAI-ARIA 框架来提高无障碍性的示例。

给元素添加角色

WAI-ARIA 角色通过提供必要的语义信息来描述任何HTML元素的目的和功能。在内部使用CSS类来实现可以进行更改,但最终,所有这些角色都将转换为合适的语义信息。

例如,有一个具有白色文本的绿色按钮,只有当按钮获取焦点时,文本才变为黑色。可以使用下面的角色通过WAI-ARIA来改善这种情况。

首先,把角色“button”分配给我们的按钮,这有助于浏览器和屏幕阅读器了解元素的意义。 其次,为了在我们获得焦点时切换按钮中的文本颜色,使用了一个自定义的 CSS 类“color-change-on-focus”。 最后,我们将“aria-label”属性赋予我们的按钮,以便具有屏幕阅读器的用户可以了解该元素的完整名称。

添加属性和状态

WAI-ARIA 属性和状态能够描述控件的状态和属性,这对于可访问性和交互性来说非常重要。

一个常见的示例是使用HTML表单进行数据输入,在这种情况下,WAI-ARIA 可以通过将以下属性和状态应用于每个HTML表单元素,从而提高无障碍性。

上面这个示例中的表单控件都有一个指向外部的标签,并通过“aria-labelledby”属性与标签进行关联。这有助于实现 WAI-ARIA 框架的许多特性,例如,用户使用屏幕阅读器可对表单内容进行理解。

另一个例子是在网页上创建一个进度条。对于这个示例,可以使用以下代码:

在此示例中,我们创建了一个具有进度条角色的元素,并将其“aria-labelledby”属性与相应的标签相关联。我们还为进度条元素提供了以下三个属性:

  • “aria-valuenow”:标识当前值,以75的形式表示
  • “aria-valuemin”:标识最小值,以0的形式表示
  • “aria-valuemax”:标识最大值,以100的形式表示

这些属性使屏幕阅读器能够理解进度条的状态。

结语

在现代互联网时代,无障碍性已经成为了很重要的问题。使用 WAI-ARIA 框架可以帮助我们提高无障碍性,让更多的人都能方便地使用我们的数字产品。 在实际开发中,我们可以通过给元素分配角色、添加属性和状态等方式来应用 WAI-ARIA 框架。尽管应用 WAI-ARIA 的过程可能比较繁琐,但是它带来的高质量可访问性是值得的。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67c1582a314edc26849526f1