如何避免 NVDA 在 phone 数字中间宣布 "link"?

How to avoid NVDA announcing "link" in the middle of a phone number?

我有一个 phone 号码 HTML 是这样的:

<a aria-label="Call 1 8 0 0 5 5 5 1 2 1 2 for further questions" href="Tel:18005551212">1-800-555-1212</a>

对于大多数屏幕阅读器来说,它的阅读方式与预期一致,但 NVDA 除外,它的内容类似于“link Call 1 8 0 0 5 5 5 1 2 link 1 2 for further questions ”。第二个“link”似乎不合适。是什么导致了这种情况以及任何可能的修复建议?

我刚刚在 Firefox 和 chrome 中使用 NVDA 尝试了您的简单示例,但我没有听到第二个“link”。您的代码示例可能会从有问题的原始代码中删减。也许 post 来自您的原始代码的更大样本。

作为旁注,我理解 aria-label 与数字之间的空格强制屏幕 reader 将 phone 宣布为单独的数字,但这会导致问题盲文用户。他们会读到phone号里的一堆空格,读起来会比较吃力。最好让屏幕 reader 决定如何发音 phone 数字,然后用户可以调整他们的设置,以他们想要的方式朗读它。

当我在 chrome 和 firefox 中使用 NVDA 尝试此操作时,它会像您期望的那样读取 phone 数字。

<a aria-label="Call 1-800-555-1212 for further questions" href="Tel:18005551212">1-800-555-1212</a>

事实上,它比你的例子更好,因为在“八百”和“五五五”和“一二一二”之间有轻微的停顿,因为破折号。在您的示例中,我听到一串数字是一长串,没有短暂的停顿。