Html 如何使maxlength属性可访问?
我在几个输入字段中有一个表单。对于其中一个输入字段,我使用了长度验证Html 如何使maxlength属性可访问?,html,forms,accessibility,Html,Forms,Accessibility,我在几个输入字段中有一个表单。对于其中一个输入字段,我使用了长度验证maxlength=“20” 这里的问题是,JAWS用户不知道输入字段已经达到最大长度,因为JAWS继续读取他们在键盘上按下的键 有没有一种方法可以让这一切变得容易 问候,, Zeeshan你可以试试,mws stat是你的输入字段类名 <input type="text" class='mw' maxlength='20'/> var a=$('.mw').attr('maxlength'); console.l
maxlength=“20”
这里的问题是,JAWS用户不知道输入字段已经达到最大长度,因为JAWS继续读取他们在键盘上按下的键
有没有一种方法可以让这一切变得容易
问候,,
Zeeshan你可以试试,mws stat是你的输入字段类名
<input type="text" class='mw' maxlength='20'/>
var a=$('.mw').attr('maxlength');
console.log(a);
你可以这样做
<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>
函数show(){
var x=document.getElementById(“text1”).value;
var y=x.长度;
document.getElementById(“p1”).innerHTML=“Characters left”+(20-y);
}
以下是三种并非相互排斥的方法:
正如@Quentin所评论的,这确实应该由JAWS来处理。
input
的maxlength
属性从HTML2.0(1995)开始就一直在HTML中,因此没有理由不实现它。我无法检查JAWS是否确实支持它,因此我在假设它不支持的情况下编写了我的答案。使用文本字段的title属性来表示最大长度。它在政府项目中对我们非常有效,用户使用JAWS。我相信NVDA也使用title属性来传达信息。此外,您可以使用JavaScript发出声音“叮当”以通知用户字段已达到最大限制 当达到限制时,您可以使用JS
检测,然后通过在
后插入以下内容向辅助技术(如屏幕阅读器)宣布
已达到限制。此字段中只能使用20个字符
注意:如果再次超出限制,请记住将其移除
您可以使用CSS在屏幕外隐藏。视觉隐藏。。或者,这些信息实际上对每个人都有用,因此如果符合您的设计,您可以省略.visually hidden
类
为了让屏幕阅读器用户知道限制,您可以在
元素。(这里也是一样,也许所有用户都可以从这些信息的可见性中获益。)您也可以尝试询问您是否通过HTML标准方法公开了这些信息。如果JAWS没有向用户公开这些信息,那么要么是JAWS中的bug,要么是浏览器没有向JAWS公开这些信息。我会在freedomscientific.Cross-post中提出一个错误:如果屏幕阅读器用户关注输入并正在键入,则不会宣布。JAWS仍然不支持maxlength
属性。这是迄今为止我找到的最佳解决方案,应该是公认的答案。其他答案指出,应该在标签中公布最大字符数。这可能非常烦人,因为它将标签的平均长度增加了一倍,并添加了95%的时间都不需要的信息。此解决方案仅在需要时提供信息。请注意,aria live=assertive
是多余的,因为role=alert
已经暗示了它。资料来源:
<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>
<p class="visually-hidden" aria-live="assertive" role="alert">Limit reached. You can only use 20 characters in this field.</p>