Is there a best practice for accessible keyboard navigation through an undirected graph

167 Views Asked by At

TL;DR: Is there a recommended best practice to make keyboard navigation through an undirected graph accessible for visually impaired people?

I am currently working on an HTML based application that displays an undirected graph of buttons. Buttons are all contained in one div container. The paths that connect buttons visually are in a different container and are not relevant here, but the information that they transport about adjacency, of course. Each button can be used to trigger some action. I now wonder how I could make keyboard navigation accessible for visually impaired people.

Without any special treatment, a user would simply tab through all buttons. Information about adjacent buttons could, of course, be given via ARIA descriptions, but direct navigation to a specific neighboring button would not be possible. One would need to remember the label of the button and tab until it's found. That doesn't feel too user friendly.

I have browsed common ARIA patterns and ARIA roles, but none does really seem to fit my purpose - I'd end up dynamically creating and restructuring treeviews or (tab)lists or worse with all kind of pitfalls probably.

Currently, my best idea is to simply use the application role for the buttons' div container with some custom keyboard commands to navigate. Navigation instructions would be announced via screen readers, of course. This could for instance mean: tab to enter/exit the application div and focus the entry button/previously selected button, arrow keys to cycle through the currently focused button's neighbors and the button itself announcing each label, and space/enter on the button would trigger the button's action and space/enter on a neighbor would make this the newly selected button.

That sounds feasible to me, but I wonder if there already is some best practice for this problem that I did not find myself.

0

There are 0 best solutions below