role=progressbar 在密码强度计上使用时会引起混淆吗?

Does role=progressbar cause confusion when used on a password-strength meter?

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

我见过的大多数示例都在 HTML 元素上设置了 role=progressbar,但根据 WAI Aria 1.1 recommendation:

这对我来说听起来不太正确

An element that displays the progress status for tasks that take a long time.

A progressbar indicates that the user's request has been received and the application is making progress toward completing the requested action. [...]

阅读以上内容后,我倾向于完全省略 role 属性,因为我在 widget roles 的列表中没有找到任何匹配“仪表类型”的属性。

辅助技术的用户使用 role=progressbar 是更好还是会造成混淆?省略它会更好吗?

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

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

  • 即使我们或许可以假设 0% 非常弱,100% 非常强,但 60% 到底意味着什么?相当好或只是隐约可以接受?就像在学校的成绩一样,你对用户的认知和认知是不一样的,大家可能不是很清楚0%=很弱,100%=很强。
  • 进度条代表进度百分比,更不用说一系列有限的进步资格,如弱 > 可接受 > 好 > 强。 ARIA 要求该值是一个数字,所以你不能给出用户需要的真实信息。
  • 进度条值通常会在更改时公布。变化非常小,在输入密码时定期宣布的随机数被理解为密码的强度。
  • 如果我想在不更改密码的情况下检查当前密码的强度,如果进度条不可见则没有任何帮助
  • 进度条的值不应减少。它没有在 ARIA 中直接指定,但是当它说“随着时间的推移进行”时,它有点暗示。但是,您的密码强度可能会在键入(或擦除)字符时降低。

出于上述所有原因,我宁愿建议您不要使用进度条角色,并使用 ARIA 实时区域补充您的进度条,比如“密码强度:好”,它会在输入时更新.