所以我正在开发一个需要< div>的项目.与onclick事件.我有主要功能,但有一个问题.当用户选中< div>时,我需要发生onclick事件.并按下进入.我在< div>中添加了tabindex.它允许它获得焦点,但当用户按下enter(或任何其他键)时没有任何反应.
谁能帮我这个?或者是我想要的甚至不可能?
这是一个证明我的问题的jsfiddle.
http://jsfiddle.net/logiwan992/suwq7r09/
预先感谢您的任何帮助.
解决方法
我注意到这个问题被标记为WCAG和“可访问性”.
因此,你的问题的答案是“不要这样做”.除了需要它工作的人,即使用屏幕阅读器或其他辅助技术的人之外,这个页面上的其他答案都可以正常工作.这里没有基于javascript的解决方案符合WCAG标准.
你想要的是< button>.这为您提供免费的tabindex和键盘控制.
你也可以强制一个< div>像< button>一样工作通过添加ARIA标记(尽管使用已经完成您需要它的标记会更好更容易.)
如果绝对必要,可以在这里使用ARIA作为伪按钮的一个很好的介绍:
https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_button_role
它的要点是,你需要添加role =“button”属性,并手动管理aria-pressed属性的状态(通过捕获javascript中的关键事件和点击;其他答案已经完全涵盖了这一点,所以我赢了’重复细节)