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

Make screen reader toggable and detect default usage #223

Open
rsubtil opened this issue Mar 19, 2023 · 1 comment
Open

Make screen reader toggable and detect default usage #223

rsubtil opened this issue Mar 19, 2023 · 1 comment
Labels
enhancement New feature or request topic:core Issues or pull requests related to RetroHub itself topic:ui Issues or pull requests related to UI/UX

Comments

@rsubtil
Copy link
Member

rsubtil commented Mar 19, 2023

With #221 merged, screen reader will always be used if available. This means it will always be present on Windows and macOS.

For starters, this should be toggle-able in the settings.

But the main issue is figuring out whether this should be enabled or not in the first-time setup. There's no standardized method to detect if a screen reader is currently being used, and the API on all systems works by directly interfacing with the software, even if it's launched or not. Here are the solutions founds so far:

  • Make separate builds with and without accessibility plugins enabled
    • Pros: No extra unnecessary dependencies for users that do not need it
    • Cons: Complicates the build process
    • User needs to download the correct version, therefore a source of confusion
    • Does not scale for future optional features; builds become 2^n in quantity for every feature set the user wants.
  • Detect running processes for each system
    • Pros: Unified build
    • Cons: Hacky solution, can create false-positives by detecting wrong processes
    • Not implemented in Godot, would require writing custom code
    • Need to investigate process names and software for every major OS
  • Enable by default, add option to disable for users
    • Pros: Unified build
    • Works immediately for blind users, where enabling this feature is much harder than for sighted users to disable it.
    • Cons: Sighted users will need to disable it; as it's the majority of users, it's a required step of configuration, breaking RetroHub's "default configuration" policy.
  • Design according to industry standards, providing hints for UI elements for screen readers
    • Pros: Industry standard; screen readers work immediately without further modification
    • Cons: Huge programming burden; would need to be implemented in Godot for all systems, as it's custom UI code
    • Doesn't give any indication to the app that screen reader is active, which doesn't allow any changes to it's interface to accomodate better.
@rsubtil rsubtil added enhancement New feature or request topic:ui Issues or pull requests related to UI/UX topic:core Issues or pull requests related to RetroHub itself labels Mar 19, 2023
@rsubtil rsubtil added this to the v0.1.2 milestone Mar 19, 2023
@rsubtil
Copy link
Member Author

rsubtil commented Mar 19, 2023

The most sensible alternative for now is to Enable by default, add option to disable for users.. The first-time wizard speaks a single prompt instructing screen reader users to press a key to enable it.

This will remain open to track if users have issues with the chosen solution.

@rsubtil rsubtil removed this from the v0.1.2 milestone Mar 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request topic:core Issues or pull requests related to RetroHub itself topic:ui Issues or pull requests related to UI/UX
Projects
None yet
Development

No branches or pull requests

1 participant