grist-core icon indicating copy to clipboard operation
grist-core copied to clipboard

Make keyboard usable outside of tables

Open manuhabitela opened this issue 4 months ago • 8 comments

Describe the problem to be solved

note: since I'm discovering Grist, hopefully I'm not wrong about all this, sorry in advance if I'm mistaken :)

The issue is Grist is not fully usable with keyboard.

For now, Grist makes sure we can use the keyboard when using a table, making it easy to navigate through cells, enabling lots of specific keyboard shortcuts.

But current system makes anything not inside a table unreachable with the keyboard. Even on pages not containing tables at all, it seems the keyboard shortcuts system is enabled and prevents using classic browser keyboard navigation.

That means I can't use the keyboard to login, navigate through my documents, navigate through document pages, share the document, configure my table/column options, etc.

Making everything usable exclusively with the keyboard would make Grist usable by lots of people with disabilities. Some people can't use a mouse and 100% rely on the keyboard to navigate. And some people use assistive technologies (AT) that mostly rely on keyboard navigation to work. So, making keyboard navigation work also means doing a good part of making lots of AT work.

And without accessibility in mind, that would also help some power users who are just more efficient with keyboard to fully work without having to use their mouse here and there. But mostly I'm interested in this in an accessibility point of view :)

Related WCAG criterion: https://www.w3.org/WAI/WCAG21/Understanding/keyboard.html

Describe the solution you would like

My goal with this first issue is to make keyboard work on pages that don't contain a table.

On those kind of pages I figure there are no need to enable specific keyboard shortcuts and we could benefit from classic browser keyboard navigation.

I guess a good first test that this work would be to be able to login to Grist with the keyboard.

On future work after this, I imagined thinking about a way to go in and out the table with keyboard. Like maybe pressing Esc twice would allow to switch between "normal" keyboard navigation, and "table-specific" keyboard nav. But I guess this is more of a second step.

I'm open to any guideline to implement necessary changes while I dig into the code on my own anyway :)

Cheers

manuhabitela avatar Oct 07 '24 14:10 manuhabitela