使用 WAI-ARIA 技术增强 Web 网站的无障碍性

随着 Web 技术的发展,Web 站点的访问人群越来越广,包括视力障碍、听力障碍、智力障碍和身体障碍等。这种多样的访问人群使得我们需要更好地为他们提供服务。因为现在的 Web 应用程序常常需要支持这样的访问者,我们就需要考虑如何让 Web 应用程序更加无障碍友好。WAI-ARIA 是一项支持无障碍 Web 技术的标准。本文将介绍 WAI-ARIA 的基础知识,并展示如何使用 WAI-ARIA 技术来增强 Web 网站的无障碍性。

WAI-ARIA 简介

WAI-ARIA (Web Accessibility Initiative Accessible Rich Internet Applications),是一个以 W3C 规范为基础开发的标准,它为可访问的 Web 应用程序提供了一种解决方案,这种解决方案涉及到协助技术、键盘操作和表单交互等一些列的无障碍方面。通过使用 WAI-ARIA 技术,我们可以为那些使用辅助技术访问 Web 应用程序的人们提供更好的访问条件。

WAI-ARIA 角色和状态

WAI-ARIA 规范有两个重要的概念:角色和状态。角色指的是元素的类型,例如菜单、按钮、对话框,其中一个元素可以扮演多个角色,状态指元素的当前状态,例如元素是否禁用、是否展开等等。

WAI-ARIA 角色

  • article,代表一篇文章,和文档、博客和其他允许用户交互和更新的页面相关。
  • button,代表一个可以被点击的按钮。
  • checkbox,代表一个可以被选中或者取消选中的复选框。
  • dialog,代表一个将允许用户交互的对话框。
  • grid,代表一个带有行和列的表格。
  • listbox,代表一个包含固定数量的条目选择列表。
  • menu,代表一组让用户从多个选项中选择的菜单列表。
  • progressbar,代表一个用于表示进度百分比的进度条。

WAI-ARIA 状态

  • aria-checked,代表元素的选择状态,可以是 true、false 或者 mixed。
  • aria-disabled,表示元素是否启用(或者禁用)。
  • aria-expanded,表示元素的展开或者折叠状态。
  • aria-hidden,表示元素是否应该被屏蔽,不可访问,例如在模态事件中,设置为 true 可以屏蔽背景元素。
  • aria-selected,表示元素是否选中。

WAI-ARIA 技术实现

下面我将通过实例来展示如何使用 WAI-ARIA 技术来增强 Web 网站的无障碍性。

为表格增加 WAI-ARIA 角色

<table role="grid">
  <thead>
    <tr>
      <th>序号</th>
      <th>姓名</th>
      <th>班级</th>
      <th>分数</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td role="gridcell">1</td>
      <td role="gridcell">小明</td>
      <td role="gridcell">1年3班</td>
      <td role="gridcell">90</td>
    </tr>
    <tr>
      <td role="gridcell">2</td>
      <td role="gridcell">小红</td>
      <td role="gridcell">1年1班</td>
      <td role="gridcell">80</td>
    </tr>
  </tbody>
</table>

对于表格,我们可以将其角色设为 grid,列和行格子的角色分别设为 gridcell。

为分页条增加 WAI-ARIA 角色和状态

<nav role="navigation">
  <ul role="list" aria-label="页码">
    <li role="listitem">
      <a href="/page/1" role="button" aria-label="第一页">1</a>
    </li>
    <li role="listitem">
      <a href="/page/2" role="button" aria-label="第二页">2</a>
    </li>
    <li role="listitem">
      <a href="/page/3" role="button" aria-label="第三页">3</a>
    </li>
  </ul>
</nav>

分页条的角色可以设置为 navigation,每个按钮则需要设为 button。而其状态则可以通过 aria-label 属性传递页面信息。

为单选框组增加 WAI-ARIA 角色和状态

<div role="radiogroup" aria-label="性别">
  <label role="radio" aria-checked="true">
    <input type="radio" name="gender" value="male">男
  </label>
  <label role="radio" aria-checked="false">
    <input type="radio" name="gender" value="female">女
  </label>
</div>

对于单选框组,我们可以将其角色设为 radiogroup,每个单选框的角色是 radio。对于 aria-checked 属性,在题目中我们可以将其设为 true 或 false。

总结

WAI-ARIA 技术可以使得 Web 网站变的更加无障碍友好,通过使用相关的角色和状态属性,可以为一些辅助技术(如屏幕阅读器等)提供更好的访问体验。因此,为 Web 网站增强 WAI-ARIA 技术的应用是非常重要的。希望本篇文章对大家的学习和开发有所帮助。

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