我有一个表单,其中包含一些JavaScript,可在输入有效文本时进入下一个字段(以下示例)。我的问题是屏幕阅读器如何处理。这会使读者感到困惑,还是会发现焦点变化并将新字段读出给用户?
HTML
<form action="/some/action" method="post" role="form">
<legend>A Form</legend>
<label for="first_number">First Number</label>
<input id="first_number" name="first_number" required type="text" value="">
<label for="second_number">Second Number</label>
<input id="second_number" name="second_number" required type="text" value="">
<button type="submit">Submit</button>
</form>
JavaScript
(function (document, window) {
function getFocusCallback(current_focus, go) {
var check = document.getElementById(current_focus);
var el = document.getElementById(go);
var pat = new RegExp('^\\d{3}$');
return function callback() {
if (pat.test(check.value)) {
el.focus();
}
};
}
document.getElementById('first_number').addEventListener('input', getFocusCallback('first_number', 'second_number'));
})(document, window);
因此,在用户在第一个字段中输入三个数字之后,在第二个字段上调用focus方法。
答案 0 :(得分:1)
我认为这里的问题是 意外行为 。对于没有视力的用户,任何不规范的行为都可能引起混乱,因为它的工作原理不同于其他所有网站。
此外,这是您在每个字段中还是其中某些字段都具有的功能?如果您有多个行为不同的字段,那将特别令人困惑。
几年前,有一个很好的线索,来自几个人的信息比我本人更了解。 https://lists.w3.org/Archives/Public/w3c-wai-ig/2015AprJun/0162.html
您需要点击每页底部的“ 下一封邮件”链接,以读取该线程中的所有邮件。