如何让屏幕阅读器使用咏叹调读取禁用的元素?

时间:2014-03-05 20:38:20

标签: html5 wai-aria

我正在尝试使用屏幕阅读器来读取已禁用的数字微调器/文本框的值,以便它们不可编辑。这些框的值在上下文中很重要,但是屏幕阅读器(在这种情况下为JAWS)仅将窗口小部件的值读取为“不可用”。我尝试将aria-required ='true'设置为没有这样的运气。有没有其他方法让屏幕阅读器说出这些值?

例如:

<input id='exampleInput' disabled='true' aria-required='true'>1</input>

2 个答案:

答案 0 :(得分:2)

在此处使用只读属性是正确的选项。

如果这会弄乱你的JavaScript,那么我建议你改变你的JavaScript,以便检查除了disabled属性之外的其他东西。

这可以通过使用Css类或添加新属性来完成,或者您可以向DOM对象添加新字段并使用它。

答案 1 :(得分:1)

我最近遇到了类似的问题,我的解决方案是为所有禁用的按钮使用一些信息文本,这只能由屏幕阅读器查看。我使用了一个按钮元素,因此它仍然在Tab键顺序中保留一个位置,因此如果屏幕阅读器用户正在通过表格进行制表,它将被宣布,您需要实现一些代码,以便在实际输入后从DOM中删除元素启用。

隐藏元素在使用NVDA进行测试时宣布“数据值在这里被禁用”,显然可以使用您想要的任何文本。

HTML

<input type="text" name="myDisabledElement" disabled="disabled">

<button aria-disabled=”true” class="sr-only">
     data value goes here element disabled
</button>

CSS

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    border: 0;
}

您可以在此处以抽象操作查看:http://codepen.io/chris-hore/pen/LEKyeM