Fed*_*TIK 5 jquery events accessibility click
我发现了jQuery click事件的奇怪行为.如果我们使用键盘导航(辅助功能案例),则单击由Enter或Space启动(取决于我们使用的HTML元素).
在jsfiddle上有一个测试页面,您可以尝试在Result框架中使用键盘导航,然后在不同情况下启动click:
在jQuery手册中,我找到了以下click事件的描述:
"当鼠标指针悬停在元素上时,click事件将被发送到一个元素,并且按下并释放鼠标按钮.任何HTML元素都可以接收此事件."
这是正常的吗?如果正常行为,如何拦截鼠标点击事件?
是的,这很正常.JQuery文档是正确的,但有点不完整.有关WC3网站的更多详情- 例如:
注意:为了获得最大的可访问性,鼓励内容作者在定义自定义控件的激活行为时使用click事件类型,而不是其他指针设备事件类型(如mousedown或mouseup),这些事件类型更多地是特定于设备的.尽管click事件类型的起源于指针设备(例如,鼠标),但后续实现增强已将其扩展到该关联之外,并且可以将其视为用于元素激活的与设备无关的事件类型.
或者,换句话说,对于某些元素,click()本质上是一个逻辑事件,而不是特定于设备的事件.
如果您真的只想响应鼠标输入,可以使用mousedown/up事件 - 但请记住,您必须单独访问UI键盘(例如,使用keydown/press/etc事件提供键盘当量).