winforms icon indicating copy to clipboard operation
winforms copied to clipboard

[A11Y] Screen Reader doesn't announce what control gets focused

Open towebo opened this issue 1 year ago • 15 comments

Environment

VisualStudio.17.Preview/17.11.0-pre.5.0+35118.90

.NET version

8.0

Did this work in a previous version of Visual Studio and/or previous .NET release?

No, never in the out of process designer

Issue description

When the out of process designer has focus and you try to move between the controls on the form screen readers aren't able to detect the focus change and are therefore quiet. This makes it impossible to work with the designer in a sufficient way. You can press F4 to focus the property editor and tab to the components combo to select the component you want to work with but that's extremely insufficient.

Steps to reproduce

  1. Start a screen reader like Narrator, NVDA or JAWS.
  2. Start Visual Studio and create a new WinForms application targeting .NET 8.
  3. Press Ctrl +Alt + L to focus the Solution Manager and navigate to the form Form1 and press Enter to open it.
  4. Press Esc to ensure you're in the designer and at the top level, i e on the form.
  5. Press Alt + V, X and press Enter to open the Toolbox.
  6. Type Button and press Enter to add a button to the form.
  7. Press Esc a couple of times to be really sure you're at the form level.
  8. Press Tab to focus the button.

The screen reader doesn't announce that the button got focused.

Diagnostics

No response

towebo avatar Sep 19 '24 18:09 towebo

One solution would be to make the out of process designer emit a message to screen readers that makes them announce the text passed. When a control gets focus it should announce its name and type of control (try the old designer for .NET Framework did). When a control is moved with the arrow keys it could announce the new position. When a control is moved with the arrow keys and Ctrl is held down so it aligns with another control it could announce what edge it's aligned with.

There are probably other nice cases that can be added to.

towebo avatar Sep 19 '24 18:09 towebo

@Tanya-Solyanik verified this issue with latest VS 17.12.0 Preview 3.0 [35324.145.main] from main branch:

Narrator cannot focus and announce on the form1 or button1 in VS design time when using mouse click or keyboard to switch between form1 and button1. https://github.com/user-attachments/assets/ec8e2cd9-bb5e-4ab0-9c01-810b093f464f

NVDA does not announce the form1 or button1 in VS design time when using mouse click or keyboard to switch between form1 and button1. https://github.com/user-attachments/assets/ac382641-cdff-40c3-9868-3fe1899d1316

John-Qiao avatar Sep 25 '24 09:09 John-Qiao

@towebo we'd love to engage with you about exactly what announcements and information you would like to have the Screen Reader tell you. Let us know if you'd be up for a Teams call and we can connect.

merriemcgaw avatar Oct 22 '24 23:10 merriemcgaw

I'd love to connect with you on this topic.

towebo avatar Oct 24 '24 18:10 towebo

@merriemcgaw, you can reach out to [email protected] with suggestions on when to connect.

towebo avatar Nov 06 '24 19:11 towebo

Would really like to see it fixed as soon as possible.

akash07k avatar Nov 06 '24 19:11 akash07k

Yeah, quite an annoying one, would be nice to have it fixed. I'm available for calls, chats, emails, whatever you want.

Menelion avatar Nov 06 '24 19:11 Menelion

I too am available for the discussion

akash07k avatar Nov 06 '24 20:11 akash07k

I used to use winforms a lot when I could use the keyboard to move the controls , and it made design so much faster to use tab/shift+tab to move through the controls on the form. Please, Please, Please bring this back Microsoft!

blindwiz avatar Nov 14 '24 00:11 blindwiz

@merriemcgaw, please reach out to me so we can resolve this as soon as possible.

towebo avatar Dec 01 '24 16:12 towebo

We are actively working on announcements in the designer, and we acknowledge that the work has been delayed before. I'll keep you posted on developments and let you know as soon as we have preview builds available with our first iteration. I will reach out sometime early in the new year to connect with you all individually about what you need most from these announcements.

In the meantime, if you haven't tried using the DocumentOutline Window in Visual Studio while designing forms, it does announce and can be very useful in navigating and understanding the hierarchy of controls within the form.

~Merrie

merriemcgaw avatar Dec 04 '24 21:12 merriemcgaw

I tried the Document Outline View and yes, it gives a clear picture of the hierarchy and it's easy to collapse and expand the tree. However there's a clear backdraw in that it seens to order the controls in creation order, not in tab order. This makes it very hard to check if the tab order is correct because you have to check and try to remember the TabIndex property and that isn't for humans. :)

towebo avatar Jan 27 '25 08:01 towebo

Is this issue still active? The last entry from Microsoft was almost six months ago. If the work has been pause it would be nice to know so we can figure out if there's possible workarounds.

towebo avatar May 26 '25 09:05 towebo

So this issue doesn't seem to be resolved in the near future so I've created an addon for NVDA that works around the issue. If you can't use the primary source of information, the out of process designer, you can watch reflections in the mirror. In this case I monitor the value of the Components combobox in the Property Editor.

You can read more and download the addon from my site: https://mawingu.se/winforms-designer-accessibilizer-addon

The source for the addon is availible from the GitHub repository: https://github.com/towebo/WinFormsDesignerAccessibilizer

towebo avatar Jun 17 '25 19:06 towebo

Thank you so much for these suggestions and ideas! We're actively picking this work up but due to resource constraints it's taking longer than we would have liked.

merriemcgaw avatar Jun 17 '25 20:06 merriemcgaw