如何处理屏幕阅读器的版本号?

How to handle version numbers for screen readers?

我正在使用 Windows 讲述人,像 2.3.96 这样的版本号被 reader 作为日期“1996 年 3 月 2 日”。如何处理屏幕 readers 的版本号?我看到一些建议使用标签并拼出点的答案,例如:aria-label="2 dot 3 dot 96"。有更好的方法吗?

在 Whosebug 和其他地方已经有几个类似的问题,关于数字和其他没有按照页面作者预期发音的东西。 同样的答案适用于解释为日期的版本号:你最好什么都不做,不要写任何特殊的东西。

问题是数字的发音取决于很多层:

  • 浏览器及其公开辅助功能树的方式。
  • OS、屏幕reader及其设置。例如,Jaws 提供了许多选项,可以更改数字和日期的解释和读出方式。
  • 使用的语音。同一个屏幕reader,同一个OS,同一个浏览器,不同的声音,读同一个文字确实可以有天壤之别。

您可以尝试多种方法,例如将其分隔为不同的 <span>、添加或删除空格、通过 aria-label 写入 "dot" 等

但是,这样做很可能会改善某些用户的发音,同时降低大多数其他用户的发音。 OS、浏览器、屏幕 reader 和声音的组合太大,无法测试所有内容。

所以最好是保持务实,不要做任何特别的事情。保留您的版本号,因为它通常随处可见。 屏幕 reader 用户一般都习惯了这样的发音怪癖,必要时可以调整选项和设置词典。

简答

使用 <p aria-label="Version 2 point 3 point 96">Version 2.3.96</p>,这将在最流行的屏幕 reader 中得到正确解析。确保没有 <spans> 从文本中拆分版本号,使用 aria-label 作为矫枉过正/备份。

长答案

通常我会建议 永远不要 干扰屏幕 reader 发音的方式,正如@QuentinC 所建议的那样。

但是在这种情况下我会说你确实想尝试解决这个问题,因为听到应该有版本号的日期可能会非常混乱(是编写软件的日期,还是公司成立的日期?谁知道呢!)。

这是屏幕中的一个解析问题 reader,与大多数人遇到的不喜欢某些内容的阅读方式的问题截然不同,请仅针对此示例遵循以下建议。

修复一个,更改标记。

你没有添加你的标记,但下面的解释是基于我的测试。

这个问题实际上会自行解决(至少在我测试的 JAW、NVDA 和 VoiceOver 中)只需在版本号前添加 'Version'。

我猜你的版本号格式类似于以下内容:

<p>Version <span>2.3.96</span></p><p>2.3.96</p> 没有 'version'.

通过删除第一个示例 JAWS 中的 <span>,NVDA 和 VoiceOver 在我的测试中正确读取了以下内容:

<p>Version 2.3.96</p>

一旦在版本号周围添加了 <span>,数字的上下文就会丢失(<span> 元素中的文本会自行评估),因此屏幕 reader 将尝试并在没有任何上下文的情况下自行解析它,并确定它是一个日期。

当然使用 aria-label 可以解决问题吗?

还有 aria-label will probably not work on static elements<div><span> 等)没有 role 表明它们是活跃元素,所以很可能不会无论如何为你工作。

出于这个原因,我不建议尝试单独使用 aria-label 来解决这个问题,但是将它添加到考虑到它的屏幕 readers 是一个不会造成伤害的步骤.

这是我唯一一次建议干扰屏幕 reader 说话的方式,请不要将此作为解决其他发音问题的步骤,因为这是一个解析问题不是发音问题。

考虑到这一点,我建议您使用以下内容:

<span aria-label="Version 2 point 4 point 99">Version 2.4.99</span>

周围有 <span><p> 或其他内容块。