[英]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-setsize
和aria-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.