Make an HTML element non-focusable
⚡TLDR
Apply the tabindex="-1" property to an HTML element to make it non-focusable in the keyboard navigation. Furthermore, form elements can become non-focusable through the disabled attribute.
Example:
Focusability and its significance
Properly setting up the focusability of elements is a cornerstone of web accessibility. While tabindex="-1" effectively excludes the elements from keyboard focus, there are scenarios such as form controls or interactive elements where a more nuanced approach is needed.
- Non-Interactive elements: Use readonlyto permit view access and restrict them from keyboard focus.
- JavaScript to handle focus: Scripting can be used for assigning or removing tabindexdynamically as per user interaction or application state
Taming the interactive elements
Interactive elements like <a> tags and <button> tags can be rendered non-focusable by the keyboard.
- <a>tags &- <button>tags: Use- tabindex="-1"to exclude them from the tab order while retaining programmatic focusability.
- Dynamic content handling: When handling dynamic content, JavaScript can be applied to set tabindex.
- Event handling: Use the focusinevent listeners to applye.target.blur()to unsubscribe elements from gaining focus.
Unlocking custom widgets and controls
Ensuring accessibility in custom components requires a slightly different approach:
- Screen readers: For screen readers and assistive technologies to behave aptly, tabindexvalues should be managed sensibly. Remember, a negativetabindexstill makes elements focusable for screen readers.
- Programmatic focus: To handle advanced interactions, JavaScript methods such as element.focus()orelement.blur()can be used.
- Preventing focus traps: Use event.relatedTargetwithin the focus event to verify and alter the new focus target - crucial for avoiding focus traps
Linked
Linked
Was this article helpful?
