我有一个表单,当输入有效文本时,有一些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);
因此,在用户在第一个字段中输入三个数字后,在第二个字段中调用焦点方法。
我认为这里的问题是出乎意料的行为。对于没有视力的用户,任何非标准行为都可能成为混淆的可能来源,因为它的工作方式与其他所有网站不同。
此外,这是一个你在每个领域,或只是其中一些领域的功能?如果您有多个具有不同行为的字段,那将尤其令人困惑。
几年前有一个相当不错的主题,几个人的输入比我自己更有知识。 https://lists.w3.org/Archives/Public/w3c-wai-ig/2015AprJun/0162.html
您需要单击每页底部的“下一条消息”链接以读取该主题中的所有消息。