nvaccess / nvda

NVDA, the free and open source Screen Reader for Microsoft Windows
https://www.nvaccess.org/
Other
2.12k stars 638 forks source link

Object Labeler Functionality (updated feature request) #17332

Open gerald-hartig opened 3 weeks ago

gerald-hartig commented 3 weeks ago

Information transferred from old issue https://github.com/nvaccess/nvda/issues/2111

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

Many applications contain unlabelled or poorly labelled controls (buttons, graphics, icons, etc.) that NVDA can only announce as "button" or "unknown." This creates significant accessibility barriers:

Describe the solution you'd like

Add a built-in object labelling system to NVDA that allows users to:

  1. Assign custom labels to controls while navigating using object navigation
  2. Save labels persistently between sessions
  3. Access labelled controls consistently within the same application
  4. Share labels with other users (optional community database)

Key requirements:

Describe alternatives you've considered

  1. Add-on Implementation: Several add-ons have attempted to provide this functionality, but a core implementation would ensure:

    • Consistent behaviour
    • Better performance optimisation
    • Wider adoption
    • Proper maintenance
  2. Alternative Identification Methods:

    • Using object properties instead of full paths where possible
    • Class-based identification before path-based
    • Caching mechanisms to improve performance
  3. Scope Limitations:

    • Limiting labelling to specific application types
    • Excluding web content labelling (handled separately)
    • Focusing on truly inaccessible controls only

Additional context

rkingett commented 3 weeks ago

Along with this, a system to clear labels would be good to keep responsiveness at it's peak.

burmancomp commented 3 weeks ago

In addition to labelling capability, could nvda not provide somekinddof different information about different buttons etc. I suppose that if there are two unlabelled buttons in same dialog they anyway have some difference because otherwise sighted users could not know anything about their meaning. So maybe nvda could announce something more. Although it would not get information about meaning of button or other control, it could facilitate using application when you get to know their meaning. So it would not always be so necessary to label buttons or other controls in all cases. For example, if you are lazy and think that although those "labels" which nvda automatically provide are not so informative they however give me enough information so that I can perform this task so I do not label these controls.

haruncetinkaya306 commented 3 weeks ago

What I'm wondering is whether the labeling done by NVDA will be local. If the labeling is in English, this could be a bit of a problem for those speaking other languages.