Yellow-Dog-Man / Resonite-Issues

Issue repository for Resonite.
https://resonite.com
134 stars 2 forks source link

Single-handed emergency gestures #541

Open shiftyscales opened 10 months ago

shiftyscales commented 10 months ago

Is your feature request related to a problem? Please describe.

The emergency gestures (respawning, disconnecting from the world, etc.) are not accessible to those with access to only one hand/controller, or those that are unable to lift their arms up to their head.

Describe the solution you'd like

If emergency gestures were made accessible to single-handed use, this functionality would be more easily accessed by those that otherwise currently can't do so effectively.

Describe alternatives you've considered

Alternatively (and possibly additionally), if this functionality were made more readily accessible, e.g. as a facet, it would improve visibility of this functionality/allow those that need it to find and activate it more easily.

Additional Context

Follow-up from an internal sync where I had raised the topic of accessibility on the platform.

Frooxius commented 10 months ago

We'd need to figure out what gestures we could use for this that would work across variety of controllers and be both reliable, but also not triggered by accident.

I think it might be worthwhile to simply switch out the gesture to a single handed one that doesn't rely on specific pose of the hand.

Perhaps something like repeated mashing of the menu button? Say you press it rapidly a few times in a row?

Stellanora64 commented 10 months ago

Perhaps something like repeated mashing of the menu button? Say you press it rapidly a few times in a row?

Since this feature is meant for accessibility reasons, it would be good to also take into consideration people with motor control disabilities that may not be able to perform rapid movements.

May be as an alternative, a combination press and hold may work? Something like press and hold the trigger and Context menu button for 5 seconds to respawn, and press and hold the trigger and secondary for 5 seconds to disconnect.

However, the downside to this is the time it takes for the emergency action to be performed is longer than rapidly pressing the button. Just my 2 cents on this issue.

shiftyscales commented 10 months ago

Of note- while researching options that VRChat has for this- while their 'panic button' combination is two-handed, it is also available as a toggle on their menu.

15ac9cf-Article_AvatarDynamics_QM_CloseUp_PANIC

It is reminiscent to me of the idea we'd previously had of having a toggle to ensure dash visibility/function before in the event that something obscures your vision to it. So perhaps a good universal solution could be a series of safety buttons that are part of the dash UI itself?

JackTheFoxOtter commented 10 months ago

Perhaps something like repeated mashing of the menu button? Say you press it rapidly a few times in a row?

As someone who tends to fiddle a lot with my menus, I'm a bit concerned that might be too easy to trigger. I'm also not a fan of repeatedly having to click a button, as this can be difficult for some people if the time between clicks is too short, but on the other side might be triggered accidentally if the time between clicks is too high.

I've already accidentally exited worlds in the past when repeatedly switching on and off edit mode, so even with the current gestures it can happen by accident.

JackTheFoxOtter commented 10 months ago

Of note- while researching options that VRChat has for this- while their 'panic button' combination is two-handed, it is also available as a toggle on their menu.

This would be an option, but it wouldn't be much different than just putting the "exit world" facet to the top bar of your dash, which is what I'm doing.

The issue with anything that requires visuals is that emergency gestures are especially useful if you cannot use the visual UI, for example due to floating point precision issues or something blocking your laser. In those cases the feature wouldn't be accessible to single controller users.