Visible, non-interactive elements with click handlers must have at least one keyboard listener
122 </li>
123 </ul>
124 </div>
125 <div className="hamburger" onClick={toggleMenu}>126 <div className={`bar ${menuOpen ? 'open' : ''}`}/>
127 <div className={`bar ${menuOpen ? 'open' : ''}`}/>
128 <div className={`bar ${menuOpen ? 'open' : ''}`}/>
Description
Enforce onClick
is accompanied by at least one of the following: onKeyUp
, onKeyDown
, onKeyPress
. Coding for the keyboard is important for users with physical disabilities who cannot use a mouse, AT compatibility, and screenreader users. This does not apply for interactive or hidden elements
Bad Practice
<div onClick={() => {}} />
Recommended
<div onClick={() => {}} onKeyDown={this.handleKeyDown} />
<div onClick={() => {}} onKeyUp={this.handleKeyUp} />
<div onClick={() => {}} onKeyPress={this.handleKeyPress} />
<button onClick={() => {}} />
<div onClick{() => {}} aria-hidden="true" />