无障碍性设计指南之 Web 表单设计

Web 表单是 Web 应用程序中最常用的元素之一。然而,很多 Web 表单并不是对所有人都友好的。对于视力受损、听力受损、肢体残疾、认知障碍等人群,使用 Web 表单可能会带来困难。因此,本文将介绍无障碍性设计指南之 Web 表单设计,以帮助开发者创建易于使用的 Web 表单。

如何创建无障碍的 Web 表单

1. 标记表单元素

在 HTML 中,表单元素应该使用标准的 HTML 标记。例如,文本输入应该使用 <input type="text"> 标记,密码输入应该使用 <input type="password"> 标记,单选按钮应该使用 <input type="radio"> 标记等等。这样做可以让用户代理(如屏幕阅读器)正确地解释表单元素。

2. 提供标签

每个表单元素都应该有一个标签来描述它。标签应该与表单元素相关联,使得用户代理可以将标签与表单元素关联起来。有两种方法可以将标签与表单元素相关联:

  • 使用 <label> 标记
  • 使用 aria-label 属性

使用 <label> 标记可以让用户点击标签时自动将焦点移动到相应的表单元素上。例如:

<label for="username">用户名:</label>
<input type="text" id="username">

使用 aria-label 属性可以在没有可见标签的情况下提供标签。例如:

<input type="text" aria-label="用户名">

3. 提供说明

对于一些复杂的表单元素,需要提供更详细的说明。例如,日期选择器、时间选择器等。可以使用 aria-describedby 属性将说明与表单元素关联起来。例如:

<label for="date">日期:</label>
<input type="date" id="date" aria-describedby="date-desc">
<p id="date-desc">请使用 YYYY-MM-DD 格式输入日期。</p>

4. 提供错误提示

当用户提交表单时,如果表单元素的值不符合要求,则应该提供错误提示。错误提示应该清楚地说明错误的原因,并指出如何纠正。可以使用 aria-invalid 属性将错误提示与表单元素关联起来。例如:

<label for="email">邮箱:</label>
<input type="email" id="email" aria-invalid="true">
<p id="email-error">请输入有效的邮箱地址。</p>

5. 提供键盘快捷键

对于一些肢体残疾或者认知障碍的用户,使用键盘进行操作可能更为方便。因此,需要为表单元素提供键盘快捷键。例如:

  • <input type="checkbox">:使用空格键选中或取消选中
  • <input type="radio">:使用 Tab 键选中下一个选项,使用箭头键进行选项切换
  • <select>:使用 Tab 键移动到下一个选项,使用箭头键进行选项切换

示例代码

下面是一个无障碍的 Web 表单的示例代码:

<form>
  <label for="username">用户名:</label>
  <input type="text" id="username" required>

  <label for="password">密码:</label>
  <input type="password" id="password" required>

  <label for="email">邮箱:</label>
  <input type="email" id="email" required aria-invalid="true">
  <p id="email-error">请输入有效的邮箱地址。</p>

  <label for="gender">性别:</label>
  <select id="gender" required>
    <option value="">请选择</option>
    <option value="male">男</option>
    <option value="female">女</option>
  </select>

  <fieldset>
    <legend>请选择您喜欢的水果:</legend>
    <input type="checkbox" id="apple" name="fruit" value="apple">
    <label for="apple">苹果</label>
    <input type="checkbox" id="banana" name="fruit" value="banana">
    <label for="banana">香蕉</label>
    <input type="checkbox" id="orange" name="fruit" value="orange">
    <label for="orange">橙子</label>
  </fieldset>

  <fieldset>
    <legend>请选择您的爱好:</legend>
    <input type="checkbox" id="music" name="hobby" value="music">
    <label for="music">音乐</label>
    <input type="checkbox" id="movie" name="hobby" value="movie">
    <label for="movie">电影</label>
    <input type="checkbox" id="reading" name="hobby" value="reading">
    <label for="reading">阅读</label>
  </fieldset>

  <button type="submit">提交</button>
</form>

总结

无障碍性设计可以让所有人都能够方便地使用 Web 应用程序。在 Web 表单设计中,我们需要标记表单元素、提供标签、提供说明、提供错误提示以及提供键盘快捷键等。通过这些方法,我们可以创建无障碍的 Web 表单,让所有人都能够方便地使用我们的应用程序。

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


纠错
反馈