我有一个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 5中,有一个单独的 <header>
元素,这与 <h3>
你在这里使用的)是一个坏主意。真的是这样。但无论如何,如果你想让JAWS对你的 span
作为一个按钮,或者。
<button>
元素,或role="button"
在你 span
否则,JAWS不会以任何方式知道这个特定的 span
应该被视为一个按钮。但请优先选择第一种方法,除非你绝对要用一个 span
这里。请把它从你的 h3
,这将是更方便的。A span
既不是地标,也不是互动内容。一个 aria-label
将不会被屏幕阅读器阅读(而且是正确的)。
相反,使用 <button>
元素。这样就可以解决你的问题了,而且更方便。
我遇到的问题和这个类似。根据我的经验,不管是 span、div 还是其他标签,似乎都没有任何区别。即使应用了多个咏叹调属性,如角色和咏叹调隐藏="false",咏叹调标签也不一定能读出来。在我看来,JAWS 读取 aria-label 的条件似乎是基于其他规则。如果能看到 JAWS 读取 aria-label 的条件流程,将会很有帮助。我想只有能够访问JAWS源代码的人才能真正回答这个问题。同时,我会继续尝试不同的东西来尝试让它工作。JAWS在DOM中找到了元素,因为它可以读取内部的html(比如上面的例子中读取 "Button "这个词)。我想知道,是否根据它的父结构、角色和属性来决定是否读取aria-label。