我在几个输入字段中有一个表单。对于其中一个输入字段,我有一个长度验证,我使用了maxlength="20"
。
这里的问题是JAWS用户不知道输入字段已达到最大长度,因为JAWS继续读取他们在键盘上按下的键。
有没有办法让这个可以访问?
此致 Zeeshan
答案 0 :(得分:4)
三种方法,不相互排斥:
方法1最简单,但如果我们期望在绝大多数情况下,长度不是问题,则可能会令人不安。方法3比方法2需要更多的编程工作,但提供了更好的可访问性:用户在尝试超出限制时立即收到消息。
正如@Quentin评论,这真的应该由JAWS处理。 maxlength
的{{1}}属性一直是HTML格式,只要它有HTML 2.0(1995)中的元素,所以没有理由没有实现它。我无法检查JAWS是否真的支持它,所以我写了我的答案,假设它没有。
答案 1 :(得分:3)
当达到限制时,您可以使用JS
检测到该限制,然后将其宣布给辅助技术,例如屏幕阅读器通过在<input/>
<p class="visually-hidden" aria-live="assertive" role="alert">Limit reached. You can only use 20 characters in this field.</p>
注意:请记住,如果/在限制范围内,请将其删除。
您可以使用CSS在屏幕外隐藏.visually-hidden
..或者此信息实际上对每个人都有用,因此如果符合您的设计,您可以省略.visually-hidden
类。
让屏幕阅读器用户了解您可以将<span class=visually-hidden>Max 20 characters</span>
置于<label>
内的限制
元件。 (同样在这里,也许所有用户都可以从显示该信息中受益..)
答案 2 :(得分:1)
你可以尝试一下,mws-stat是你的输入字段类名
<input type="text" class='mw' maxlength='20'/>
var a=$('.mw').attr('maxlength');
console.log(a);
然后
$('.mw').keyup(function(){
console.log($(this).val().length);
});
答案 3 :(得分:1)
使用文本字段的title属性来传达最大长度。对于使用JAWS的用户的政府项目,它非常有用。我相信NVDA也使用title属性来传达信息。此外,您可以使用JavaScript来发出声音&#34; ding&#34;通知用户该字段已达到最大限制。
答案 4 :(得分:0)
你可以做这样的事情
<script>
function show(){
var x=document.getElementById("text1").value;
var y=x.length;
document.getElementById("p1").innerHTML="Characters left" +(20-y);
}
</script>
<input type="text" id="text1" maxlength="20" onkeydown="show()">
<p id="p1"></p>