WAVE 扩展未检测到标签 + aria-labelledby

WAVE extension not detecting label + aria-labelledby

我有一个带有两部分标签的输入字段,由 aria-labelledby 指定:

<p id="label2">Part 2</p>
<label id="label1">Part 1</label>
<input type="text" aria-labelledby="label1 label2">

当我 运行 Chrome 中的 WAVE 扩展(版本 1.0.9)时,<label> 被标记为孤立的,但 input 本身被视为正确 labeled/described.

我在那里使用 <label> 是不是错了,因为不会有 for 属性,或者该工具只是无法将 aria-labelledby 中的 ID 连接到label?

虽然您的代码没有一致性问题,但该控件有一个可见标签,它的 accessible name 是 2 个可见标签的串联,可以进行 accessibility/usability 改进通过正确使用 label 元素。如果您使用 for/idlabel 元素与 input 相关联,则 label 变为可点击,并且当 label 被点击时焦点移动到 input ,从而增加可点击区域以聚焦控件。副作用是 WAVE 应该不再抱怨了。

<p id="label2a">Part 2</p> 
<label id="label1a" for="t1">Part 1</label>   
<input type="text" aria-labelledby="label1a label2a" id="t1">

test case

未与控件关联的 label 元素。虽然您的输入确实使用 ARIA 来引用标签元素,但未使用 label 的语义 - 它也可能是 span。孤立标签 通常 表示存在可访问性问题,因此会发出 WAVE 警报。