如果进度条的使用不一定意味着进度,我应该使用进度条吗?

Should I use a progressbar if its use doesn't necessarily imply progress?

我正在制作一个我希望可以访问的网络游戏,我想知道是否要使用 aria 进度条跟踪某些统计数据,因为它的名称并不真正暗示它应该用于此目的那类的东西。然而,规范并没有说明它不应该减少,(正如 HP 等预期的那样)所以我挠头了。

在可访问性方面更了解情况的人能否告诉我是否应该使用这个角色,或者我是否最好创建一个公布这些更改的通用实时区域?

使用HP进度条就可以了。可以这么说,你正在走向死亡。但请记住,如果更新了进度条的值,除非焦点位于进度条上,否则不会向屏幕 reader 用户宣布其新值。要在进度条更新(无焦点)时随时宣布更改,您需要 aria-live。 (注意<progress> 本身不可聚焦。它被视为静态文本。)

使用<progress>的主要目的是视觉效果。它似乎在所有浏览器 https://caniuse.com/#search=progress 上都受支持,但并非在所有屏幕 reader 上都受支持。 NVDA (pc) 和 VoiceOver (iOS) 将在您使用屏幕 reader 导航键导航到它时宣布其值,但 JAWS(PC 上非常流行的屏幕 reader)将忽略它。

此外,对于支持 <progress> 的屏幕 reader,公布的是百分比值,而不是实际值。因此,如果您有 <progress value="22" max="50">,该值将显示为“44%”而不是“22”。

听听数字还是百分比由你决定。

您也可以考虑 <meter>,但 Internet Explorer 不接受它,https://caniuse.com/#search=meter

就我个人而言,我认为最好的选择是使用 aria-live 区域,具体来说,role='status'https://www.w3.org/TR/wai-aria-1.1/#status.