0

I have a large table built with React Aria Components. The Table has PDF download button and some links in some of the cells. All the individual cells key be reached by using the arrow keys, so it is possible to use the keyboard to access the PDFs downloads and links. However, the PDF download button and links cannot be tabbed upon.

Is it a A or AA violation if the PDF buttons and links can only be accessed through arrow keys? I've carefully read Success Criteria 2.1.1 Keyboard (Level A) and it only says interactive items must be keyboard accessible and does not specifically say the tab key.

2 Answers 2

1

It's called keyboard accessibility and not tab accessibility. The reason for this is that the criterion states that it is possible to use a keyboard as input device. It doesn't matter what keys are used as long as they are available on every keyboard*. However you are probably introducing a usability issue by removing the default of using tab to set focus on interactive elements. Now you need to explain to users that only the arrow keys can be used instead. Can you provide both for navigating over interactive elements?

* There's a standard for that: https://en.wikipedia.org/wiki/ISO/IEC_9995

0

WCAG 2.2, SC 2.1.1:

All functionality of the content is operable through a keyboard interface without requiring specific timings for individual keystrokes, except where the underlying function requires input that depends on the path of the user's movement and not just the endpoints.

https://www.w3.org/TR/WCAG22/#keyboard-accessible

The criteria doesn't say which keys should be used for what, only that functions must be keyboard accessible.

Keyboard navigation: The most common keys for navigating and interacting with web content are:

  • TAB / Shift TAB: Moves focus from one focusable element to the next, or backwards
  • Enter: Select og activate an element, like a checkbox or a button
  • Spacebar: Same functionality as Enter
  • Arrow Keys: Navigation within a component, such as a menu.

When keyboard dependent users navigate the web, there's an expectation that interface elements react to keys in a certain way. For example, to activate a button, you would press the Enter key or hit Spacebar. Dropdown menus are expected to be used with a combination of TAB and Arrow keys.

If you deviate from the expected interaction, you need to warn the user before they interact with the button. If you fail to, users are often unable to interact with the element.

To answer your question: In your case, a TAB would not land the user on a button, but elsewhere. If the user doesn't know a Arrow key needs to be pressed, they can't hit the button.

So you would need to warn the user that there's a button ahead and they should press Arrow Right to select and push Enter to activate.

Unless you do that, you'd probably end up with a violation, because even though the button is keyboard accessible, it has an unpredictable interaction. I say "probably", because I haven't seen the interface in question.

Further reading

React Aria buttons are keyboard accessible.

Other useful resources on keyboard interaction:

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.