如何防止 Windows 讲述人阅读 <title> 文本

Posted

技术标签:

【中文标题】如何防止 Windows 讲述人阅读 <title> 文本【英文标题】:How to prevent Windows Narrator from reading <title> text 【发布时间】:2019-01-08 08:40:53 【问题描述】:

当我将焦点设置在 body 标签上时,Windows 讲述人会读取标签中的文本。我怎样才能防止这种情况发生?

我试过 aria-hidden="true"、role="presentation"、tabindex="-1"。这些都不起作用。

【问题讨论】:

【参考方案1】:

似乎是 Internet Explorer 错误而不是讲述人错误,因为我听到在 IE 中使用 NVDA 时出现同样的问题。我在@LukeT 提到的SO 线程中使用了jsfiddle 示例。我不知道该示例代码是否与您的相似。也许您可以发布您的代码。

在 SO 线程中,代码是(稍作改动):

<div tabindex="0" id="page-wrapper" role="region" aria-labelledby="title1">
  <h2 id="title1">page 1</h2>
  <ul>
    <li tabindex="-1" style="display:none" presentation" aria-hidden="true">alpha</li>
    <li>beta</li>
    <li>gamma</li>
  </ul>
</div>

如果我单击或切换到&lt;div&gt;,我会听到alpha,即使它具有使其隐藏的所有属性。我可以通过各种更改来解决这个问题,但是由于我不知道您的代码是什么样的,所以我不知道您需要哪一个。

以下是解决问题的方法(以下任何一项 - 您无需全部完成):

    使用文字字符串 (&lt;div ... aria-label="page 1"&gt;) 将 &lt;div&gt; 上的 aria-labelledby 更改为 aria-label。这意味着它具有与 &lt;h2&gt; 相同的重复文本,但它有效。 从&lt;div&gt; 中删除了role&lt;h2&gt; 中添加了aria-label,这很奇怪,因为它只是复制了&lt;h2&gt; 中已经嵌入的内容。

如果您发布您的代码,也许我们可以找到适合您的情况。

【讨论】:

【参考方案2】:

我找到了这个帖子on the topic。显然您已经尝试过上述解决方案,但下面还有一条附加评论可能对您有所帮助,处理显式标签。此外,在讨论的更下方,它提到 Microsoft Edge 也有助于解决这个问题。

希望这会有所帮助!

【讨论】:

您好,感谢您的回复,我也尝试了标记,但仍然无效。我会看看 Microsoft Edge 是否可以提供任何帮助

以上是关于如何防止 Windows 讲述人阅读 <title> 文本的主要内容,如果未能解决你的问题,请参考以下文章

winforms - 无法让 Windows 讲述人阅读消息框内容

如何让 Vista 的讲述人向我朗读我的 Swing 组件?

Windows 讲述人读取窗口中所有控件的名称(甚至是隐藏的)

通过 .NET 使用 Windows 讲述人

如何防止屏幕阅读器/旁白阅读隐藏在 WPF 中的控件?

阅读计划