屏幕阅读器和JavaScript焦点事件的可访问性?

时间:2019-04-02 20:19:49

标签: javascript accessibility screen-readers

我有一个表单,其中包含一些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方法。

1 个答案:

答案 0 :(得分:1)

我认为这里的问题是 意外行为 。对于没有视力的用户,任何不规范的行为都可能引起混乱,因为它的工作原理不同于其他所有网站。

此外,这是您在每个字段中还是其中某些字段都具有的功能?如果您有多个行为不同的字段,那将特别令人困惑。

几年前,有一个很好的线索,来自几个人的信息比我本人更了解。 https://lists.w3.org/Archives/Public/w3c-wai-ig/2015AprJun/0162.html

您需要点击每页底部的“ 下一封邮件”链接,以读取该线程中的所有邮件。