UniGetUI icon indicating copy to clipboard operation
UniGetUI copied to clipboard

[BUG] Poor accessibility for screenreaders

Open cyrmax opened this issue 1 year ago • 8 comments

Please confirm these before moving forward

  • [X] I have searched for my issue and not found a work-in-progress/duplicate/resolved issue.
  • [X] I have tested that this issue has not been fixed in the latest (beta or stable) release.
  • [X] I have checked the FAQ section for solutions
  • [X] This issue is about a bug (if it is not, please use the correct template)

Describe your issue

I'm completely blind and therefore use NVDA Screenreader. This is a program which reads the contents of a computer screen with synthesized voice and allows non-visual interaction only with keyboard.

I have installed WingetUI 2.2.0 (latest version at the moment) and realized that non-visual accessibility of a program is poor.

  • Some buttons are not reachable without mouse;
  • Switches that should be a radio buttons are announced as checkboxes;
  • Some buttons cannot be activated with enter and should be pressed either with space or only with mouse click;
  • In treeviews with package lists NVDA reads only "Treeview item checked/unchecked" and does not read other information;
  • Main app tabs (such as updates, discover, etc) should be real tabs but NVDA announces them as checkboxes;
  • When the app does something heavy, such as updating many packages at once the screenreader is flooded with useless information and sometimes becomes unresponsive and crashes;
  • Many buttons, especially in first setup windows, have no text labels at all and are announced just like "button" or "button return top".

I will try to investigate those problems and write my thoughts here but I really ask you to fix the accessibility. I think thousands of blind people around the world will thank you a lot.

Steps to reproduce the issue

  1. Install NVDA screenreader from nvaccess.org;
  2. Install latest WingetUI (2.2.0 at the moment);
  3. Start NVDA screenreader, disconnect your mouse and close your eyes;
  4. Wear headphones if necessary;
  5. Go through NVDA first setup and set speech parameters such as voice, rate and pitch;
  6. Open WingetUI and try to use it only with keyboard and without eyes.

WingetUI Log

Not applicable.

Package Managers Logs

Not applicable.

Relevant information

No response

Screenshots and videos

No response

cyrmax avatar Feb 04 '24 12:02 cyrmax

I am aware of this issue, and the ongoing WingetUI redesign plans to fix this issue. For more info see #1724

marticliment avatar Feb 04 '24 12:02 marticliment

Please try WingetUI 3.0 and let me know if it works better

marticliment avatar Mar 13 '24 15:03 marticliment

Okay, I will try it out and tell if it is better now.

cyrmax avatar Mar 16 '24 11:03 cyrmax

I have tested the main screen accessibility and recorded a screencast where you can hear what is happening and also probably read it on the screen. Also all focused elements are highlighted by my screenreader as I know.

The main problem is that some elements have their text not directly as an accessibility label but as a text label inside the element. For example these checkboxes which are read as "checkbox not checked" without any descriptive name label. The same is for buttons. And also I didn't understand what are these "grouping expanded" elements. Probably they are list views which are not read correctly.

https://drive.google.com/file/d/1-TQlgPbEcRZraGVmCb0f_omA2Q697Zxk/view?usp=sharing

Sorry, but for Github this file is too big (48 mb) and so I have uploaded it to my GDrive.

cyrmax avatar Mar 16 '24 11:03 cyrmax

Ok, I will fix this

marticliment avatar Mar 16 '24 11:03 marticliment

Also the updates screen is illustrative. Here we have a treeview and a list which should have their own accessibility labels, for example as I understand their purpose "Sources" and "Updatable packages". And also we hear some element IDs instead of package names and data. We have to use advanced NVDA features to reach to the information and see if the package is checked or not. What you could do is to merge all the information about the package into its accessibility label and provide a role of checkbox which will represent the current checkbox state. Here is another screencast about this.

https://drive.google.com/file/d/1-UArDs8CF7aDYUYTnqEZJn-Fx5qrgGXK/view?usp=sharing

cyrmax avatar Mar 16 '24 12:03 cyrmax

Hello @cyrmax,

I have publised WingetUI 3.0.1 with a few little accessibility improvements, but my plan is to fully adapt WingetUI to be way more accesible in 3.1.0

marticliment avatar Mar 16 '24 15:03 marticliment

@marticliment Thank you for your awesome work. I am also a screenreader user and a c#-developer. If you have questions or need help to improve the accessibility, feel free to ask.

christopherpross avatar Mar 24 '24 12:03 christopherpross