Доступность для программ чтения с экрана и фокусировки событий JavaScript? - PullRequest
2 голосов
/ 02 апреля 2019

У меня есть форма, в которой есть немного 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);

Таким образом, после того, как пользователь ввел три цифры в первом поле, метод фокусировки вызывается во втором.

1 Ответ

1 голос
/ 03 апреля 2019

Я думаю, что проблема здесь неожиданное поведение .Для незрячих пользователей любое нестандартное поведение может стать источником путаницы, так как оно будет работать не так, как на любом другом веб-сайте.

Кроме того, это функция, которую вы бы имели в каждом поле,или только некоторые из них?Если у вас есть несколько полей с разным поведением, это было бы особенно запутанным.

Пару лет назад об этом была довольно хорошая тема с мнением нескольких людей, более осведомленных, чем я.https://lists.w3.org/Archives/Public/w3c-wai-ig/2015AprJun/0162.html

Вам нужно будет щелкнуть ссылку " Следующее сообщение " внизу каждой страницы, чтобы прочитать все сообщения в теме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...