我有一个span作为一个 Headers 内的按钮:
<h3 aria-label="Header Aria Label"> <span tabindex="0" aria-label="Span Aria Label">Button</span> </h3>
但是,每当我选择 Span 时,它都会显示“Header Aria Label” . 如何强制JAWS读取 Span 中的aria-label?
首先,请不要被冒犯,但你所做的是糟糕的设计,至少是可访问性 .Headers 内的一个按钮(不是 Headers ,BTW,在HTML 5中有一个单独的 <header> 元素,这与你在这里使用的_2468343完全不同)是一个坏主意 . 真 .但无论如何,如果你想让JAWS将 span 视为按钮,可以:
<header>
span
使用原生 <button> 元素,或
<button>
在 span 上使用 role="button" ,否则JAWS不会以任何方式知道此特定 span 应被视为按钮 . 但是请更喜欢第一种方法,除非你绝对必须在这里使用 span . 请把它拉出你的 h3 ,这将更容易接近 .
role="button"
h3
span 既不是具有里程碑意义也不是互动内容 . 屏幕阅读器不会读取 aria-label (这是正确的) .
aria-label
而是使用 <button> 元素 . 这将解决您的问题,并更容易访问 .
2 回答
首先,请不要被冒犯,但你所做的是糟糕的设计,至少是可访问性 .
Headers 内的一个按钮(不是 Headers ,BTW,在HTML 5中有一个单独的
<header>
元素,这与你在这里使用的_2468343完全不同)是一个坏主意 . 真 .但无论如何,如果你想让JAWS将
span
视为按钮,可以:使用原生
<button>
元素,或在
span
上使用role="button"
,否则JAWS不会以任何方式知道此特定span
应被视为按钮 . 但是请更喜欢第一种方法,除非你绝对必须在这里使用span
. 请把它拉出你的h3
,这将更容易接近 .span
既不是具有里程碑意义也不是互动内容 . 屏幕阅读器不会读取aria-label
(这是正确的) .而是使用
<button>
元素 . 这将解决您的问题,并更容易访问 .