繁体   English   中英

如何停止 NVDA 读取数组中存在的 HTML 元素的列表编号(第 1 个,共 2 个)

[英]How to stop NVDA reading out list number(1 of 2) for a HTML element present in an array

我正在使用 NVDA 屏幕阅读器进行辅助功能测试。 同样,我有 2 个按钮/链接,它们是上下文菜单的一部分,因此存在于数组中,比如“提交”和“删除”。 现在其中一个按钮具有 aria-label="提交按钮"。 NVDA 正在阅读“提交按钮 1,共 2 个”。 我只是想确保 NVDA 不会读取 2 个中的 1 个。请提供帮助。

NVDA 对 arrays 或您用来编写代码的语言一无所知。它所知道的是语义 HTML 元素。 因此,如果您的按钮或链接位于列表( <ul><ol> )中,或者按钮本身是组的一部分,例如单选按钮组( <input type="radio" name="groupName"> ),那么 NVDA 公布套装内的物品编号是绝对正确的。

如果您使用aria-setsizearia-posinset等 ARIA 属性,您也可以获得“1 of 2”公告,但这些属性并未被大量使用,所以我猜它不是那样。

听到“1 of 2”是屏幕阅读器的一个很棒的功能,可以让用户了解集合有多大以及他们在集合中的哪个项目。 有视力的用户通过眼睛获得该信息。 您不想取消该功能,除非您滥用分组功能并且该按钮实际上不是组的一部分。

获取群组 position 公布的不同方式示例。

使用列表

<ul style="list-style: none;">
  <li>
    <button>first button</button>
  </li>
  <li>
    <button>second button</button>
  </li>
  <li>
    <button>third button</button>
  </li>
</ul>

我可以不使用真正的<ul> ,而是使用role="list"role="listitem"并获得相同类型的“1 of 2”消息。

使用单选按钮

<label>
  <input type="radio" name="groupName">
  first button
</label>
<br>
<label>
  <input type="radio" name="groupName">
  second button
</label>
<br>
<label>
  <input type="radio" name="groupName">
  third button
</label>

使用 ARIA 集

<div aria-setsize="3">
  <button aria-posinset="1">first button</button>
  <button aria-posinset="2">second button</button>
  <button aria-posinset="3">third button</button>
</div>

请注意,不同的屏幕阅读器可能会以不同的方式宣布事物组。 有些人会说“1 of 2”,有些人可能只是说这是一组(没有数字)。 它还取决于您如何导航到按钮,是通过TAB键还是通过向上/向下箭头键来遍历 DOM。

但这里的教训是,如果你有一组事物并且它被正确编码,那么你希望屏幕阅读器宣布组信息。 如果您的按钮实际上不是组的一部分,但您仍然听到组信息,那么您的代码中存在错误。 如果您可以发布一些代码,这可能会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM