无障碍折叠菜单:如何实现基础和高级的 ARIA

当我们在开发网站或者 Web 应用程序的时候,考虑到无障碍性对于所有人来说都是至关重要的。对于那些视力或听力有缺陷的访问者来说,一个友好的 UI 界面是十分必要的。折叠菜单是一种常见的页面元素,如何让无障碍访问支持折叠菜单呢?这篇文章将详细介绍如何实现无障碍折叠菜单,从基础的 ARIA 属性,到高级的 ARIA 应用,为视力或听力有障碍的访问者提供更好的用户体验。

理解 ARIA

在开始之前,我们需要先了解什么是 ARIA。ARIA(Accessible Rich Internet Applications),即无障碍互联网应用程序,它为 Web 应用程序提供了一系列属性和语义角色,以帮助开发者创建更好的无障碍应用。简单来说,ARIA 使得那些无法使用鼠标进行操作的访问者,可以通过键盘或其他输入设备实现同等的功能。

ARIA 属性分为三个类别:状态属性(State),保证属性(Property)和角色属性(Role)。在本文中,我们将使用角色属性和状态属性来添加折叠菜单的无障碍性。

基础 ARIA:使用 role 属性

首先,我们需要为折叠菜单添加一个角色(Role),这样屏幕阅读器就可以知道该元素的用途是折叠菜单。我们可以使用 role="menuitem" 属性来定义菜单项,使用 role="menu" 属性来定义菜单容器。我们还可以使用 aria-expanded 属性来指示菜单项是否已经展开或关闭。

下面是一个基本的无障碍折叠菜单的实现:

在这个例子中,我们使用了 role="menu" 来定义菜单容器,使用 role="menuitem" 来定义菜单项,使用 aria-expanded="false" 来指示菜单项是关闭状态。为了让屏幕阅读器更好地表述“展开”或“关闭”,我们可以使用 aria-label 属性来定义菜单项的标签。

高级 ARIA:使用 aria-controls 和 tabindex 属性

上面的代码是最基本的实现方式,现在我们来看一下高级的 ARIA 技术。我们可以使用 aria-controls 属性来将菜单项与其子菜单关联起来。当菜单项获得焦点时,通过使用 tabindex 属性,我们可以让屏幕阅读器用户更容易进入菜单并访问子菜单。

下面是一个增强的无障碍折叠菜单的实现:

在这个改进后的实现中,我们使用 aria-controls 属性将菜单项与它们的子菜单关联起来。我们还通过设置 tabindex="0" 属性来使菜单项获得焦点,并通过键盘控制进入到子菜单。

总结

通过使用 ARIA 属性,我们可以很容易地实现无障碍折叠菜单。这种菜单对于所有人来说都是非常有用的,特别是对于那些视力或听力有障碍的访问者来说更为重要。我们可以使用基础的 ARIA 属性来定义菜单项和菜单容器,并使用 aria-expanded 属性来指示菜单项的状态。如果我们想要增加菜单的可用性和无障碍性,我们可以使用 aria-controls 属性和 tabindex 属性将菜单项与其子菜单关联起来。

让我们早些时候关注无障碍性,并且在每一个网站和 Web 应用程序中考虑到无障碍性。通过这样做,我们可以使我们的网站变得更可达和更易于使用。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/654791317d4982a6eb1e9260


纠错
反馈