0

我正在为一个网站制作一个注册表单,我想包括一个密码强度计,它将采用进度条小部件的形式。

我见过的大多数示例都设置在 HTML 元素上,但根据WAI Aria 1.1 的建议role=progressbar,这对我来说听起来不太正确:

显示需要很长时间的任务的进度状态的元素。

进度条表示已收到用户的请求,并且应用程序正在完成所请求的操作。[...]

阅读以上内容,我倾向于完全省略该属性,因为我在小部件角色role列表中没有找到任何与“仪表类型”匹配的属性。

辅助技术的用户拥有更好role=progressbar还是会引起混乱?省略它会更好吗?

4

1 回答 1

2

传统上,在 GUI 应用程序中,进度条是不可聚焦的,甚至有时在使用屏幕阅读器导航时完全不可见。它仅在其值更改时或每隔 x 秒定期发布。此外,进度条用于显示进度百分比,通常是介于 0% 和 100% 之间的值,并且不应减少。

因此,就您的密码强度而言,正如您所猜测的那样,进度条可能不合适,原因如下:

  • 即使我们或许可以假设 0% 非常弱而 100% 非常强,但 60% 究竟意味着什么?相当好或只是模糊地接受?就像在学校的成绩一样,你对用户的认知和认知是不一样的,0% = 非常弱,100% = 非常强,可能不是每个人都非常清楚。
  • 进度条表示进度百分比,更不用说一系列有限的渐进条件,如弱 > 可接受 > 好 > 强。ARIA 要求该值是一个数字,因此您无法提供用户需要的真实信息。
  • 进度条值通常会随着它的变化而公布。更改非常低,以至于在键入密码时定期宣布的随机数被理解为密码的强度。
  • 如果我想在不更改密码的情况下检查当前密码的强度,如果进度条不可见,则无济于事
  • 进度条的值不应该减少。它没有在 ARIA 中直接指定,但是当它说“随着时间的推移而进步”时,它是一种暗示。但是,在键入(或擦除)字符时,您的密码强度可能会降低。

出于上述所有原因,我宁愿建议您不要使用进度条角色,并使用 ARIA 实时区域补充您的进度条,例如“密码强度:良好”之类的内容,在键入时会更新。

于 2021-04-07T15:16:02.650 回答