JAWS不读取标题内带有aria-label的span的aria-label。

问题描述 投票:3回答:3

我有一个span,作为一个按钮,它在一个页眉里面。

<h3 aria-label="Header Aria Label">
  <span tabindex="0" aria-label="Span Aria Label">Button</span>
</h3>

然而,每当我用tab键点击span时,它就会显示 "Header Aria Label"。我如何强制JAWS读取span中的aria-label?

html accessibility wai-aria jaws-screen-reader
3个回答
4
投票

首先,请不要生气,但你所做的是糟糕的设计,至少在可访问性方面。在标题内的按钮(不是标题,顺便说一下,在HTML 5中,有一个单独的 <header> 元素,这与 <h3> 你在这里使用的)是一个坏主意。真的是这样。但无论如何,如果你想让JAWS对你的 span 作为一个按钮,或者。

  1. 使用一个本地的 <button> 元素,或
  2. 使用 role="button" 在你 span否则,JAWS不会以任何方式知道这个特定的 span 应该被视为一个按钮。但请优先选择第一种方法,除非你绝对要用一个 span 这里。请把它从你的 h3,这将是更方便的。

2
投票

A span 既不是地标,也不是互动内容。一个 aria-label 将不会被屏幕阅读器阅读(而且是正确的)。

相反,使用 <button> 元素。这样就可以解决你的问题了,而且更方便。


0
投票

我遇到的问题和这个类似。根据我的经验,不管是 span、div 还是其他标签,似乎都没有任何区别。即使应用了多个咏叹调属性,如角色和咏叹调隐藏="false",咏叹调标签也不一定能读出来。在我看来,JAWS 读取 aria-label 的条件似乎是基于其他规则。如果能看到 JAWS 读取 aria-label 的条件流程,将会很有帮助。我想只有能够访问JAWS源代码的人才能真正回答这个问题。同时,我会继续尝试不同的东西来尝试让它工作。JAWS在DOM中找到了元素,因为它可以读取内部的html(比如上面的例子中读取 "Button "这个词)。我想知道,是否根据它的父结构、角色和属性来决定是否读取aria-label。

© www.soinside.com 2019 - 2024. All rights reserved.