面对aria-live="polite"
的奇怪问题,如果加载的内容具有表单控件,例如单选按钮或复选框。
NVDA只读取单选按钮的文本,但不会公布有关选择或检查哪一个的任何内容。
<a aria-label="Click Me" href="#">Click Me</a>
<div id="myForm" aria-live="polite"></div>
以下是 plunker 。
答案 0 :(得分:1)
抱歉,您还没有得到一个好的答案。欢迎来到无障碍世界。
您的问题与aria-live=“polite”
无关 - 它只是NVDA的工作方式。所以我想好消息是你做得对。对于以下示例,我将默认选项更改为&#34; Two Day&#34;所以我可以确认正在阅读的内容并不是第一个选项。
通过您的代码,我听到了:
点击我链接
然后按SPACE激活链接,我听到:
选择送货方式:
隔夜
两天&lt; - 你想要这样说&#34;选择/检查/等&#34;
接地
如果我进入群组,我会听到:
选择送货方式:
未选中单选按钮两天
为了获得您想要的行为,我更新了您的HTML,以生成包含文字<span>
的不可见Default is "Two day"
。现在我听到的是:
点击我链接
然后按SPACE激活链接,我听到:
选择送货方式默认为两天:
隔夜
两天
接地
这就是它的样子(注意图例中的跨度):
<fieldset role="radiogroup" aria-labelledby="shipMethod" id="myFieldSet">
<legend id="shipMethod">Choose a shipping method<span style="display:none;"> Default is "Two day"</span>:</legend>
<input name="shipping" id="overnight" type="radio" value="overnight">
<label for="overnight">Overnight</label>
<br>
<input name="shipping" id="twoday" type="radio" value="twoday" checked="checked">
<label for="twoday">Two day</label>
<br>
<input name="shipping" id="ground" type="radio" value="ground">
<label for="ground">Ground</label>
</fieldset>
你也可以通过改变控制焦点来获得类似的效果,但对于使用屏幕阅读器的用户而言,这有点不太酷。
这并不难实现,在某种程度上是一种优雅,因为需要额外帮助的用户无需为其他用户更改它。