JavaScript onkeydown в ссылке не работает с JAWS - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть HTML-страница с кодом

<!DOCTYPE html>
<html>
<body>
<script>
function myFunction(event) {
    if (event.keyCode == 13) {
        console.log(5 + 6);
        return false;
      }
}
</script>
<a href="#"  id="descRef" onkeydown='myFunction(event)'><b>Search Description222</b></a>
</body>
</html>

. Это работает, и функция запускается.Но когда я включаю JAWS professional, она не вызывает функцию onkeypressdown

Ответы [ 3 ]

0 голосов
/ 28 сентября 2018

Я нашел этот ответ: Заставьте onKeyDown вызывать событие onClick для кнопки HTML .Попробуйте использовать синтаксис Jquery для передачи значения клавиатуры в теге a.посмотрите на следующий код:

<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>
<script>

jQuery(function() {
    jQuery(window).keypress(function(e){
         if (e.keyCode === 13 && $('a:hover').length == true) {
               console.log(5 + 6);
                return false;
         }
    });
})
</script>
<a href="#"  id="descRef"><b>Search Description222</b></a>

</body>
</html>
0 голосов
/ 22 октября 2018

Когда нажимается пробел или ввод, когда ссылка имеет фокус, JAWS ловит нажатие клавиши, предотвращает поведение по умолчанию и вместо этого имитирует щелчок.Вот почему KeyDown не работает.

Ожидаемое поведение для ссылок - загрузка новой страницы или перемещение фокуса в новое место на той же странице.Можете ли вы изменить ссылку на кнопку?Вы можете заставить JAWS уважать событие KeyDown на кнопках.

0 голосов
/ 28 сентября 2018

Вы должны понимать разницу между «режимом просмотра» программы чтения с экрана и «формой».В «режиме просмотра» пользователь программы чтения с экрана может «просматривать» DOM с помощью сочетаний клавиш программы чтения с экрана.Например, буква «H» переместит фокус чтения с экрана на следующий заголовок, буква «B» - следующую кнопку, буква «L» - следующий список, буква «T» - следующую таблицу и т. Д.все сочетания клавиш одного символа.Не нужно нажимать модификатор (такой как ctrl или alt ).

Когда фокус чтения с экрана перемещается на элемент, который хотел бы иметь события клавиатуры, напримерЧто касается поля ввода, то в программе чтения с экрана есть опции, которые «режим просмотра» может автоматически сменить на «режим форм» (чтобы вы могли вводить вещи в поле формы).JAWS изменит режимы автоматически, но вы можете изменить настройки так, чтобы режим был изменен вручную.Я подозреваю, что вы установили «автоматический», так как это значение по умолчанию.

Однако, это автоматическое изменение только происходит для определенных элементов, таких как <input>.Это не происходит для ссылок, потому что вы обычно ничего не печатаете на ссылке (кроме ENTER).

Итак, чтобы получить события клавиатуры на ссылке, вы должны вручную переключиться на "режим форм ".Для JAWS (это отличается для NVDA) это можно сделать с помощью Ins + Z .Вы услышите «использовать курсор виртуального ПК ВЫКЛ», когда он изменится. Ins + Z , чтобы включить его снова (вы услышите «Использовать курсор виртуального ПК ВКЛ»).

После нажатия Ins + Z , вы должны иметь возможность вводить букву, когда фокус находится на ссылке, и ваш обработчик событий должен работать.

...