使用 Enter 键确保所有元素都可点击,我使用以下方法:
document.addEventListener('keydown', function(e){
if( e.keyCode === 13 ) {
e.target.click();
}
});
对于大多数点击来说,它的效果非常好。问题在于没有直接绑定点击事件但可以通过冒泡点击的元素。例如:
jQuery(document).on('click', function(e){
jQuery(e.target).addClass('active');
});
以这种方式绑定的可点击元素将不会使用第一个示例触发。我发现 NVDA 以某种方式使所有元素都可以使用键盘点击,无论使用何种方法绑定它们。如果打开 NVDA,将触发像示例 2 中那样绑定的元素。
我想了解 NVDA 是如何做到这一点的(或者如果你有其他想法来解决这个问题),以便我可以将该行为复制到我的应用程序中,该应用程序正在被有运动障碍的人使用并且必须单独使用键盘,没有屏幕读者。
解决方案必须是纯 JS 或 jQuery。