Custom controls have associated labels

Custom interactive controls should be focusable. For example, if you use JavaScript to turn a <div> into a fancy drop-down, that drop-down isn't automatically inserted into the correct tab order.

You need to manually check that all custom controls are keyboard focusable.

When possible, use semantic HTML elements that allow for interaction.

How to test

To test that the custom control is focusable, press the TAB key to navigate through the site:

Are you able to reach all of the interactive controls on the page? If not, you may need to use tabindex to improve the focusability of those controls. See also Control focus with tabindex.

How to fix

To make a custom control focusable, insert the custom control element into the natural tab order using tabindex="0". For example:

<div tabindex="0">Focus me with the TAB key</div>

Why this matters

For users who either cannot or choose not to use a mouse, keyboard navigation is the primary means of reaching everything on a screen. Good keyboard experiences depend on a logical tab order and discernible focus styles. If a keyboard user can't see what's focused, they have no way of interacting with the page.

If you're new to accessibility testing, we recommend learning about manual accessibility testing and Assistive Technology testing.

Resources