如何向屏幕阅读器指示时间是小时和分钟,而不是分钟和秒?

Mar*_*ark 10 html accessibility jaws-screen-reader

我在网页上有以下标记片段:

Time spent: <span id="time_spent">00:02</span>
Run Code Online (Sandbox Code Playgroud)

JAWS将其读作"结果零分钟和两秒钟的时间".我如何向JAWS表明这应该被理解为"零小时两分钟"(或仅仅是"两分钟")?理想情况下,任何解决方案也可以与其他屏幕阅读器一起使用.

Que*_*inC 5

上面关于语义的建议仍然存在,但不幸的是,您实际上对屏幕阅读器实际宣布它的方式几乎没有影响。这在很大程度上取决于所使用的语言和语音合成器。

在我的例子中,大白鲨 2019,口才,法语,“0:02”被告知“zéro heure deux”=>“0 小时二”,而“0:02:00”被告知“zéro heure deux zéro zéro”= >“零小时二零零”。iOS 13.1.2 上的 VoiceOver 与 Audrey 的声音相同。同样的大白鲨 2019,雄辩,英语美国,说“零 o 二”。如您所见,有些情况下格式没有被特别解释。

但是,我不会说更改为更明确的内容,例如“0 小时 2 分钟”、“0hrs2min”或“0h2m”更好。遇到时说“小时”而不是“小时”和“分钟”而不是“分钟”,这与“00:02”一样取决于语言、合成器和用户词典。因此,两者在某些情况下都可以,而在其他情况下则是错误的。

像“min”代表“分钟”这样的缩写有时甚至会产生问题,因为例如“min”也可以被视为“minimum”。请记住,语音合成器不会试图做出任何意义或上下文分析。

完全明确的“0 小时 2 分钟”也不是那么好。我自己是瞎子,我可以告诉你:它非常清晰,嗯,但事实上,我们习惯听到“零时二”,因为到处都写着“0:02”。我们都习惯了那种语音合成器的怪癖,基本上我们并不介意。

在这种特殊情况下,我们足够聪明地知道,根据上下文,如果“零或二”表示两分钟或两秒,而“3hrs”或“3h”表示 3 小时。无论如何,没有什么是在所有情况下都是完美的,所以不要挠头,采用最适合您的应用程序的任何格式。


bre*_*ung 2

一些选项:

使用(根据 MDN<time datetime="00:00">,这应该为您提供 HH:MM )。

-或者-

将时间转换为人类可读的字符串,并将该字符串插入到属性中aria-label,例如<span role="timer" aria-label="zero minutes, two seconds">00:02</span>。我通过这种方法取得了成功,但需要注意的是不同的(人类)语言需要自己的“翻译时间字符串”代码。

如果您使用除<time>元素之外的任何内容,您确实应该添加role="timer"以使语义明确。