Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Accessibility] Make tooltips easier to appear when using certain niche pointing devices #9290

Open
ghost opened this issue Mar 12, 2024 · 4 comments

Comments

@ghost
Copy link

ghost commented Mar 12, 2024

Describe the project you are working on

Any game that uses UI nodes with tooltips or Godot editor itself.

Describe the problem or limitation you are having in your project

There exist graphic tablets - devices that uses lightweight pen/arrow as pointing device. And some people might experience hand shaking, making impossible for them to held their hand in one place over tablet.

Usually, hand shaking might not be noticeable issue for mouses, since they usually weight enough to not be affected by small hand shakes. And most of the time, shaking doesn't cause any troubles using any software, Godot/games or programs made with Godot, except tooltips for some UI nodes.

hands_sking_slightly.webm

Here you can see, that my hand is slightly shaking, making tooltip unable to appear.

godot_itself.webm

Same in Godot itself.

UI nodes expect user to completely stop cursor for time specified in gui/timers/tooltip_delay_sec for projects.

There several problems with this:

  1. I unable to found equivalent gui/timers/tooltip_delay_sec for Godot editor itself. Searching for tooltip and scanning for every possible option doesn't ended in success. Is option not exposed to editor or did I missed something?
  2. Almost no game/program made in Godot exposes option to change tooltip delay, since dev might not even have tablet/doesn't experience shaking hands problem/game or program doesn't even feature options menu/etc and as result they not aware of this problem. (Solution that wouldn't involve developer seems as okay'ish middleground solution)

Describe the feature / enhancement and how it helps to overcome the problem or limitation

For projects made in Godot, it possible to set gui/timers/tooltip_delay_sec to 0, so tooltips will appear immediately when cursor is on UI node:

0_delay.webm

Usually, this is not desired behavior for majority users since they will use mouse, and as result this option will be left as is, and most likely it won't be exposed to game/program settings menu by developer. This will result in end user with tablet pen unable to do anything with this.

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

Some automatic solution that wouldn't involve developer of game/program might be okay'ish here.
There 2 possible solutions that I can see here:

  1. Allow cursor moving for tooltip to appear as long as it on UI node.
  2. Make special exception for tablet pen or other similar pointing devices. For example, if user currently uses pen, make tooltips appear with 0 delay, or allow behavior explained in 1, for both Godot editor and games/programs made with Godot.

If this enhancement will not be used often, can it be worked around with a few lines of script?

For me, as for developer: of course, I can expose necessarily options and workaround for my programs/games.
For me, as end user of programs/games made by developer not aware of this issue: not much can be done. Only hacking program/game (or sending pull request if it open-sourced) or asking developer to add some workaround.
Since using graphic tablets with pen as pointing device is quite niche use case, it very unlikely that developer might considering doing something with this.

Is there a reason why this should be core and not an add-on in the asset library?

It will make Godot editor and games/programs made with Godot more usable for users of graphic tables and pens (and, possible, other niche pointing devices).

@Calinou
Copy link
Member

Calinou commented Mar 12, 2024

Do other programs such as web browsers or Windows itself have special accomodations for tablets to make tooltips display faster?

  1. I unable to found equivalent gui/timers/tooltip_delay_sec for Godot editor itself. Searching for tooltip and scanning for every possible option doesn't ended in success. Is option not exposed to editor or did I missed something?

The editor uses the value assigned in the project settings for the current project. See godotengine/godot#9030, which is being addressed by godotengine/godot#35806 but that PR needs to be reworked before it can be merged.

@ghost
Copy link
Author

ghost commented Mar 12, 2024

Do other programs such as web browsers or Windows itself have special accomodations for tablets to make tooltips display faster?

I don't think so (at least in linux world), many programs works same was as Godot currently, meaning that they offer almost no features and accessibility for tablets with pen, making tooltips reading or even basic navigation not very nice experience.

@yosoyfreeman
Copy link

I know is not an ideal solution, but may be able to be implemented in a quick way. Would be a short cut to force the tooltip to appear work for people with this issues? The user could assign it to any key, and you can even press keys with your pen, so it may be a solution worth exploring?

@ghost
Copy link
Author

ghost commented Mar 13, 2024

That would mean that user need to press that shortcut every time when program/game is run, which is not the biggest deal, but annoying one.

Something similar to what games usually do with gamepad/keyboard switching might sound better. There, usually, when you move sticks or press any key on gamepad, game will switch primary input device to gamepad, and moving mouse or pressing anything on keyboard will switch it back.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants