'Focus mode' to interact with complex GUIs via keyboard
Recently I started getting into a11y/WCAG and began to use a screen reader (NVDA) to navigate websites. I was blown away by how well that actually worked. NVDA allowed me to traverse a site - no matter how complex - quickly and precisely with only my keyboard. Although I am no expert on screen readers, just knowing a few basic (and intuitive) commands was enough to get me started. The way it worked:
During the browse mode pressing a certain key focused the next/previous XX element. E. g.
-
h
to jump to the next heading -
1
...6
to jump to the nexth1
...h6
-
b
for the next button -
f
for the next form -
l
for the next list - Holding
Shift
while pressing any of the other keys will go to the previous element instead of the next one - ...
So basically, you can quickly traverse the html tree. I think the idea of UI tree-based navigation could also benefit desktop apps.
The Issue
The more complex a UI gets, the harder it is to navigate the UI with a keyboard.
Current Situation of Keyboard Navigation
You need to use Tab
and the arrow keys to navigate the GUI. This however starts to fail with complex apps like Nautilus or Builder. With those apps it's not immediately obvious how you can reach certain elements (i. e. focus order), it may take a while to reach an element or it's impossible because of a (legitimate) keyboard trap.
Shortcuts may sort of address this. But they aren't discoverable, too many are hard to remember (especially with multiple apps), and you can't create a shortcut/action for every UI element.
The Idea
Introduce a special focus mode where pressing certain keys focuses the next/previous XX element similar to NVDA's browse mode explained above. That mode should be explicitly entered with a keyboard shortcut.