Check elements with mouse event handlers #70
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
HTMLElements (excluding
<a>
and<button
) that use mouse event handlers without accompanying keyboard handlers and proper HTML attributes can be unreachable via the keyboard.This fails Success Criterion 1.3.1 and 2.1.1.
A demo of the change is in this Codepen.
Thank you so much to @alvaromontoro for the assist in figuring out the proper combination of selectors to check for to ensure a div could be made accessible.
Types of changes
Description
When HTMLElements use mouse event handlers such as onclick, ondblclick, onmouseup/down, onmouseenter/leave or onmouseover, without providing the proper alternatives (i.e. onkeydown/up/press, no or wrong tabindex and no or wrong role), they could become unreachable via the keyboard.
We therefore should warn users of the danger, but it is ultimately up to them if they want to ignore it because they might have, for example, provided some alternative way of doing the same action.
This PR fixes #59
Link(s)
Screenshot(s)
The warnings look like this:
Checklist:
x
if you have considered this but thought there was nothing to add or modify).contributors
section inpackage.json
(still put anx
if you have considered this but decided not to add yourself).test/index.html
to thetest/index.html
in themaster
branch).Help