kornelski / slip

Slip.js — UI library for manipulating lists via swipe and drag gestures
BSD 2-Clause "Simplified" License
2.44k stars 213 forks source link

Keyboard and screen reader accessibility #11

Open kornelski opened 10 years ago

kornelski commented 10 years ago

I'd love to hear advice how to implement this properly.

VoiceOver on iOS

"select, tap-then-hold" gesture works, so it allows swiping and reordering, but it's hard to preform - both VoiceOver and Slip have their timer to detect hold, so to swipe you have to hold just the right amount of time :(

Any ideas how to improve that?

Keyboard accessibility

What are conventions for such UI? I'd like to avoid inventing something "weird". I'm thinking about:

Should I use other keys? Are there different approaches (like pressing a numeric key to select nth element?) Should I use clipboard analogy (cut, paste) and how to do that without breaking actual clipboard?

I suppose the list elements have to be focusable (the library would add tabindex). Is there a way to make it usable without focus? (Users who don't need keyboard accessibility may dislike the focus ring and some subtle changes in behavior that focusability brings).

Should the list have aria-live? If not, do I need to somehow announce that the order has been changed?