首页 > 解决方案 > 标签上的 for 和 select 标签上的 aria-labelledby 是否正确?

问题描述

对于上下文,我遇到的问题是在 NVDA 和 JAWS 屏幕阅读器中,然后用户在下拉列表中选择一个选项,它不会宣布选择。所以我想也许这会解决这个问题。不幸的是,由于我没有 Windows 计算机,因此无法对其进行测试。

我想知道是否改变这个:

<label for="select-id" > Some Label </label>
<select  id="select-id"> 
   <option>  </option</>. (empty option on purpose to have nothing selected)
   <option> A </option</>
   <option> B </option</>
</select>

对此,将解决我的问题。

<label for="select-id" id="label-id"> Some Label </label>
<select  id="select-id" aria-labelledby="label-id"> 
   <option>  </option</>. (empty option on purpose to have nothing selected)
   <option> A </option</>
   <option> B </option</>
</select>

谢谢!

标签: accessibility

解决方案


不,这不会有任何区别,该关联已经与for="idOfElement".

至于宣布选择,那么我从给出的 HTML 中唯一能看到的是你没有 a valueon the <option>(好吧,选项是相同的,但我假设这纯粹是为了示例)。它不应该有所作为,但因为我从来没有在<select>不使用value选项属性的情况下创建一个,这是我唯一能看到/想到的。

对于 Clarity(因为尚不完全清楚您所描述的行为),它不会在您选择项目时宣布,因为在您循环选择选项时应该已经宣布。

预期行为:

  • 重点选择“选项1选定标签宣布”应阅读
  • 按下箭头“选项 2”将被读取
  • 按“输入”将没有公告。

推荐阅读