Skip to content

Why does NVDA ignore the .NET Accessibility.Name and Accessibility.Role? #14594

@tomb18

Description

@tomb18

I am the author of several software packages to control Amateur radios. The software is written in C#.NET Windows forms.
Any given control has two properties for Accessibility.Name and Accessibility.Role. NVDA does not work correctly when it encounters such a control.
If Accessibility.Name is set to a value, let's say "Mode", then it announces this correctly. If the accessibility.name field is null, it makes up its own name. It should not. If the accessibility.role is set to none, it should not try to interpret what the control is or does. It does what it pleases.
If using Microsoft Narrator, this functionality works correctly.
In view of this, I am forced to create my own accessibility for all the controls in my applications. This should not be.
I know that I can create a plug in. However, this means learning a new programming language, keeping up with the NVDA updates and so on. I do not have the time for such an endeavor. I'm a single developer with thousands of clients.
Now I can understand that if the Accessibility.Name property is not set, then NVDA makes it's own assumptions since so much software out there doesn't bother with this. However, this is incorrect. Widespread consideration of programming for accessibility will be enhanced if conventions are followed.
At the very least, there should be an option in NVDA to follow the .NET conventions for Accessibility Name and role. If this had been the case, .NET can provide the corresponding correct speech in just 2 lines of code. In my case I had to program 75 different controls.
I hope you can consider adding such an option for the future.
Tom

Metadata

Metadata

Assignees

No one assigned

    Labels

    blocked/needs-infoThe issue can not be progressed until more information is provided.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions