Чтобы убедиться, что все элементы активируются при нажатии клавиши Enter, я использую следующий метод:
document.addEventListener('keydown', function(e){
if( e.keyCode === 13 ) {
e.target.click();
}
});
И для большинства кликов это работает очень хорошо.Проблема заключается в элементах, которые не имеют события click, связанного напрямую, но кликабельны при всплытии.Например:
jQuery(document).on('click', function(e){
jQuery(e.target).addClass('active');
});
Кликабельные элементы, которые связаны таким образом, не будут запущены в первом примере.Я обнаружил, что NVDA каким-то образом буквально делает все элементы кликабельными с помощью клавиатуры, независимо от того, какой метод используется для их привязки.Если NVDA включен, элементы, которые связаны так же, как в примере № 2, будут запущены.
Я хотел бы понять, как NVDA делает это (или, если у вас есть другая идея, чтобы приблизиться к этому), чтобы я мог скопировать это поведение в свое приложение, которое используется людьми с нарушениями моторики и должно использоватьклавиатура исключительно, без экранных ридеров.
Решение должно быть чисто JS или jQuery.