Skip to content

Focus navigation and other features for accessibility? #4122

@ethindp

Description

@ethindp

Version/Branch of Dear ImGui:

Version: latest
Branch: master

Back-end/Renderer/Compiler/OS

Back-ends: imgui_impl_opengl3.cpp
Compiler: XXX
Operating System: XXX

My Issue/Question:

I am writing an application for a university project and I'm considering using IMGUI. However, I am also visually impaired, and therefore rely on a screen reader and speech synthesis to interact with computer programs. A screen reader is not necessary, however, if the application I'm using has built-in TTS support -- then that application becomes, for the time being, the screen reader; this is called "self-voicing".

In order for a screen reader of any kind, even a self-voicing application, to be considered "reasonably accessible" to people with disabilities, some invariants need to hold:

  • Tab-based focus navigation, or the ability to intercept focus events in general, need to be available
  • Widgets such as tables, menu bars, etc., need to fire events when focus within them changes. E.g.: if a menu item is selected, an event needs to fire to notify the application that synthesis should occur, or there needs to be a way of detecting this change. Widgets such as edit boxes need to notify the application in some way when their content is updated.
  • Finally, an application needs a way of determining which widget generated either of the above two conditions.

The above three invariants are minimum baseline requirements for an application to be made accessible with speech synthesis in a way that allows comfortable user interactivity. Does IMGUI allow these changes to be detected in some manner? I could not find it within the demo or examples. I did find an issue about tab navigation, but nothing about this particular problem. However, I do not want to make a false assumption when I may have overlooked something.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions