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