DEV Community

Adam Crockett 🌀
Adam Crockett 🌀

Posted on

Accessibility challenge: ✋ handedness ✋

I'm a righty what are you? Well chances are your one of two left or right handed. So it must be a pain when a website is geared towards the opposite hand. Sure there must be coping strategies, but what if you could detect a user's handedness.

The question might be a matter of who is responsible for this detection or storage of preferences, say chrome for example. Why can't I save a preference that a js API has exposure too? Regardless, it's probably not going to happen any time soon.

I put it to you, perhaps as a challenge? Design an algorithm for the web that uses mobile sensors or maybe touch detection to semi accurately figure out which hand you are using.

I'd love to see what you have come up with.

Top comments (2)

Collapse
 
almostconverge profile image
Peter Ellis

Sounds interesting, I bet a lot depends on how you hold the phone.

If you cradle it from one side and use your thumb to navigate, the task should be fairly trivial, as when you scroll up or down, the gesture will arc to the left or right depending on which thumb it is.

If you hold it in one hand and use the index finger of your other hand, that sounds a lot trickier. Maybe if you concentrate on taps and correlate that with acceleration, you can determine how the phone is held: the corner that is supported by the inside of the palm, just below the thumb should be the steadiest.

And with the "speed texting hold" (both hands hold the phone lightly with 4 fingers while the thumbs bash away at the on-screen keyboard), you're probably hosed.

Note that this isn't just about handedness though, I'm a lefty but when I use the phone one-handed, I usually hold it in my right. You need to be able to identify both the hold and the handedness.

Collapse
 
adam_cyclones profile image
Adam Crockett 🌀

I read pretty much what you described, but I wondered if there are any other data points to increase the accuracy. I guess the best way is to just ask the user 😂