redox-os / orbtk

The Rust UI-Toolkit.
MIT License
3.77k stars 190 forks source link

Keyboard and general accessibility #139

Open marcianx opened 4 years ago

marcianx commented 4 years ago

I just tried some of the examples, and I noticed that I was not able to tab through widgets (buttons, text boxes, slides, etc). Are there by any chance any plans for keyboard and general accessibility?

FloVanGH commented 4 years ago

This is not implemented at the moment but planned. If you want you could create also an feature request issue for it.

marcianx commented 4 years ago
  1. Could this issue serve as the feature request?
  2. Is there a requisite state that OrbTk needs to get into before, say, one can contribute to keyboard accessibilty? I don't have a clear model of the separation of responsibilities at the moment.
FloVanGH commented 4 years ago
  1. Could this issue serve as the feature request?

Sure you could also add more details if you want. That would help.

  1. Is there a requisite state that OrbTk needs to get into before, say, one can contribute to keyboard accessibilty? I don't have a clear model of the separation of responsibilities at the moment.

This could be done now. If you want to implement it I introduce you.

marcianx commented 4 years ago

The ARIA web accessibility spec would be a good reference for the keyboard and focus behavior for specific widgets. Though it's focused on the web, most of these specs are based on native browser and desktop widget behaviors.

I would imagine a major first step would be to figure out:

  1. Where global focus would be stored and what programmatic means there would be to set the focus (e.g. if a dialog opens, then it would want to steal focus and then also restore focus back after it closes).
  2. How global focus order would be represented. More specifically, given a focusable entity, we need to be able to quickly access the previous and next focusable entities to aid user navigation.
  3. What infrastructural mechanism/service would relocate focus based on user actions (e.g. tab and shift+tab).

There may be other considerations -- I haven't contributed to a GUI toolkit before. ;) But perhaps you could add some pointers here for how you believe one might start pursuing 1-3.

I have gotten involved in some side work unfortunately that's keeping me quite busy. I'll be happy to pipe in again to contribute when I have some cycles again.

MGlolenstine commented 4 years ago

I've also noticed that Number pad on the keyboard doesn't seem to work for settings example and possibly other ones as well.