New
Introducing React Bench, see how different models perform on React code

jsx-a11y/click-events-have-key-events

Require a keyboard handler alongside onClick on non-interactive elements so keyboard users are not locked out.

Validate the diagnostic

Confirm the reported code matches this rule before you edit it.

Fires on JSX elements with onClick that lack onKeyUp, onKeyDown, or onKeyPress, restricted to non-interactive HTML elements like div or span — native <button> and <a href> are skipped, as are elements with aria-hidden='true'. False positive: a wrapper div whose only job is to bubble clicks up from an inner <button> that already handles keyboard input.

How to fix

Follow the rule guidance while preserving unrelated behavior.

Copyable fix prompt

Copy this self-contained prompt into your coding agent after you confirm the diagnostic.

Prefer replacing the static element with a native <button>, which gives Enter/Space activation for free. If the div must stay, add an onKeyDown handler that fires the same callback when event.key is 'Enter' or ' ', plus role='button' and tabIndex={0} so keyboard users can focus and activate it. See https://oxc.rs/docs/guide/usage/linter/rules/jsx_a11y/click-events-have-key-events

More Accessibility rules from the rules reference: