rvaiya / warpd

A modal keyboard-driven virtual pointer
MIT License
2.92k stars 132 forks source link

Allow for one-key access #55

Open willwade opened 2 years ago

willwade commented 2 years ago

Use case: A user who can only press one key (a switch it's called) would like to access the whole screen/control a mouse. There are methods - MacOS has a switch scanning method built in but an alternative would be useful.

Generally the idea is you need to have a time parameter - a n ms scan rate - which highlights each "item" at a fixed rate. The user could change this. Then as it highlights each block sequentially the user selects with their one key the block they want. So it cycles through each item - you can group each item either in a block of items or in a row-column type approach. Take a look at https://acecentre.org.uk/resources/switch-access-technology - for some of the techniques

NB: It would require an additional modal on each selection of an item for what the user wants to do - left, right click etc.

NB: this whole grid approach is originally from Dragon: https://www.youtube.com/watch?v=T-WRJgpM2Gs

rvaiya commented 2 years ago

Would you be interested in something like this as a separate project? This seems more like a niche accessibility feature. Most of the scaffolding for this has already been done and shouldn't be too hard to implement, but I have some reservations about making it a part of warpd.

chripo commented 2 years ago

the idea is cool. an other approach could be having a morse code input layer which interacts on top of wrapd.

willwade commented 2 years ago

Yeah. That’s one idea - particularly useful for one key input but sadly it’s not used much in the Assistive tech space (nb. See our https://github.com/AceCentre/MorseWriter project). Having this visual overlay look is much easier cognitively than learning a code combination

willwade commented 2 years ago

Would you be interested in something like this as a separate project? This seems more like a niche accessibility feature. Most of the scaffolding for this has already been done and shouldn't be too hard to implement, but I have some reservations about making it a part of warpd.

Yeah. No problem in being a separate project.

rvaiya commented 2 years ago

I'm still in the process of hammering out some of warpds platform APIs, but will write a small demo when I have some time. Most of the platform code will be shared anyway, so the work being done should profit both projects.