辅助功能自动完成

为什么

自动完成属性使表单对所有用户都更简单、更高效,尤其是注意力不集中、有认知障碍、行动不便、弱视或盲人用户。


什么

您是否经历过进入网络表单后,您的浏览器以神奇的方式自动填充字段? 那是因为浏览器很聪明,或者表单作者以正确的方式使用了 autocomplete 属性。

这对每个人都很方便。 这对于有运动障碍或认知障碍的用户非常有帮助。 填写表单可能很困难,而 autocomplete 属性通常可以帮上忙。


如何

自动完成可用于 <input>, <textarea>, <select><form> 元素。 该属性有许多可能的值,例如:

  • "name": Daniel Zhang
  • "given name": Zhang
  • "familiy name": Daniel
  • "organization": Alibaba Group
  • "country-name": China
  • "street-addres": 699 Wang Shang Road

值的完整列表:用户界面组件的输入用途

示例:注册表单

Optus 注册表的屏幕截图,电子邮件和出生日期的字段为空。

此注册表单包含电子邮件和生日字段。 提供自动填充的绝佳机会。 许多用户将这些详细信息保存在他们的浏览器中,为自动完成启用的表单做好准备。 浏览器需要了解字段的用途。

标签和占位符是一些浏览器的提示,但不是万无一失的解决方案。 最好的方法是添加神奇的 autocomplete 属性:

<input id="email" autocomplete="email" name="email" aria-required="true" placeholder="Email" required>

<select id="dobDay" autocomplete="bday-day" aria-required="true" required>

<select id="dobMonth" autocomplete="bday-month" aria-required="true" required>

<input id="dobYear" autocomplete="bday-year" placeholder="YYYY" aria-required="true" required>

例外情况

没有规则没有例外。 上面的代码示例将使表单变得简单、高效、无错误且易于访问。 如果表单要求输入另一封电子邮件,而不是"您的" 电子邮件,那么添加自动完成属性就毫无意义。 当数据可能没有保存在浏览器中时,它不应该有属性。

并非所有表格都没有错误。 您如何编写可访问的错误消息。 继续阅读!