SiteLint documentation and guidelines

Ensure the element with role=”button is activated using the ENTER and SPACE keys

Description

This rule ensures that elements with a role of link or button respond to the Space key press appropriately. For button elements, pressing the Space key should activate the button’s action, while for link elements, it should not (unless explicitly scripted to do so). Ensuring proper key handling is crucial for accessibility and for providing a consistent user experience across different input methods.

Disabilities impacted

  • Motor impairments: users with motor impairments may rely on keyboard navigation rather than a mouse. Ensuring the Space or Enter key triggers the expected action, which is essential for their interaction with web elements.
  • Visual impairments: users with visual impairments often use screen readers and keyboard navigation. Proper Space or Enter key handling ensures they can activate buttons without confusion or additional steps.
  • Cognitive disabilities: consistent and predictable key interactions can help users with cognitive disabilities navigate and use web content more effectively.

Why it matters

Keyboard accessibility is a fundamental aspect of web accessibility. Many users depend on keyboards, switch devices, or other assistive technologies to navigate and interact with web content. Ensuring that Space key interactions are consistent with user expectations is critical for providing an inclusive and accessible user experience. Mismanaged key interactions can lead to frustration and hinder access to essential functionality.

Coding problems and solutions

Common coding problems

  • Non-responsive buttons: button elements do not respond to the Space or Enter key press as expected.
  • Links responding to Space or Enter key: link elements incorrectly activate when the Space or Enter key is pressed, which should not happen by default.
  • Custom interactive elements: custom elements designed to act as buttons or links do not handle the Space or Enter key properly due to missing event listeners.

How to fix it

Ensure button elements respond to Space or Enter key

Verify that button elements trigger their action when the Space or Enter key is pressed.

Correct example
<button onclick="submitForm()">Submit</button><!-- Note: avoid inline event handlers; it is here just for the demonstration purpose -->

Ensure that links do not activate on Space or Enter key presses unless explicitly intended.

Implement proper event handling for custom elements

For custom interactive elements, ensure event listeners are added to handle the Space or Enter key appropriately.

Known limitations

  • Custom components: custom interactive components need thorough testing to ensure they handle key events correctly across different browsers and assistive technologies.
  • Browser variability: different browsers may have slight variations in how they handle Space or Enter key events for elements with different roles. Comprehensive testing is recommended.
  • Assistive technology support: ensure that your key handling implementation is compatible with various assistive technologies to provide a seamless experience.

Resources

Standard

  • Standard: WCAG
  • Rule ID: link-button-space-key