gristlabs / grist-core

Grist is the evolution of spreadsheets.
https://www.getgrist.com
Apache License 2.0
7.28k stars 322 forks source link

Make it possible to re-order things without using drag & drop #1248

Open manuhabitela opened 1 month ago

manuhabitela commented 1 month ago

Describe the problem to be solved

:wave:

Drag & drop is currently used to order a few things in the app:

This is great but it I didn't find any alternative way of ordering those elements. That means a few things:

WCAG source: https://www.w3.org/WAI/WCAG22/Understanding/dragging-movements

Describe the solution you would like

We can think about multiple different solutions to let people re-order things without drag & drop:

Having the action available through the item menu would certainly be the simplest to implement, while covering all usecases: both users who rely exclusively on keyboard, and mouse users who have too much trouble performing drag&drop movements.

dsagal commented 1 month ago

Other features that rely on dragging:

manuhabitela commented 1 month ago

You definitely are the GOAT (Gristman of all time). Thanks for the input.

I actually used some of those but forgot them. And you made me discover things.

Thanks!

lusebille commented 3 weeks ago

Link to figma mocks : https://www.figma.com/design/wcpetFt6aOKzTszcvPPWLQ/%5B05%2F24%5D-Grist-Design?node-id=2477-140249&t=qX4iHFYd8uzsW8kZ-1

manuhabitela commented 2 weeks ago

I like the fact that the drag icons are always-visible in the suggested mockup! I personally felt it wasn't that obvious we could re-order them in this part of the UI.

I also think exposing a shortcut to this UI part in widget menu is a good idea as we might be used to re-order columns through this menu in other spreadsheet softwares.

Specifically about keyboard, one idea would be to be able to focus a drag icon, being able to activate it with Enter, and then press arrows keys to re-order things.

Not quite so sure about the "Move" item in a column menu, then being able to use keyboard arrows. In short term at least. Making current UI keyboard-accessible feels more straight-forward.

lusebille commented 2 weeks ago

I added #1297 for the UI part so I moved this ticket to Ready to Dev