qbittorrent / qBittorrent

qBittorrent BitTorrent client
https://www.qbittorrent.org
Other
28.47k stars 3.99k forks source link

Screen readers cant read interface on Windows 10 #11031

Open tapper82 opened 5 years ago

tapper82 commented 5 years ago

Please provide the following information

qBittorrent version and Operating System

(type here) qBittorrent 4.07 Windows 10 (10.0.1xxxx)

If on linux, libtorrent and Qt version

(type here)

What is the problem

(type here) When using NVDA screen reader you get no feed back from the interface.

What is the expected behavior

(type here) NVDA should beable to read the interface allowing blind people to use qBittorrent.

Steps to reproduce

(type here) Install NVDA and open qBittorrent try to use qBittorrent with your eyes closed.

Extra info(if any)

(type here)

It's the same with other screen readers I have tested out JAWS and narrator

Chocobo1 commented 5 years ago

Related issue: https://github.com/nvaccess/nvda/issues/8604 In short, probably NVDA doesn't handle Qt > 5.11 applications well. However you could still try qBittorrent 32-bit version since it uses an older Qt version and chances are NVDA supports it.

AKJ commented 4 years ago

I want to add some context to this issue to hopefully help clarify the problems being experienced by screenreader users. For reference I tested running QBittorrent 4.2.5 (32-bit and 64-bit) and NVDA 2020.1 on Windows 10 1909.

The problem as I see it centers around focus. NVDA can access all parts of the screen but only using a method called "object review mode". From what I can tell there are several lists (Status, tags, trackers, etc) and by selecting one of those items a pane appears with a list of torrents matching the criteria you specified. While selecting from that first list is possible using standard keyboard navigation like arrow keys and tab, the second list is announced only as "grouping" by NVDA using standard navigation. Arrow keys do not appear to traverse this list. While it is technically possible to navigate this list using NVDA, the process involves passing through every row of the list column by column (number, name, size, total size, done, etc).

Keeping in mind that I am not a developer, this suggests to me that the bug is on the QBittorrent end since some elements are exposed to NVDA while others are not. The behavior I described was identical on 32-bit and 64-bit Windows 10 1909.

If you want to test this behavior for yourself, this is a guide on accessibility testing. Though this was written with Firefox in mind much of the content applies to QBittorrent. I hope this shed a little more light on the issue.

FranciscoPombal commented 4 years ago

@tapper82 @AKJ

Can you give an example of a similar application or an application with similar controls that behaves correctly with NVDA, so that it can serve as a point of comparison?

NotTsunami commented 4 years ago

@tapper82 @AKJ

Can you give an example of a similar application or an application with similar controls that behaves correctly with NVDA, so that it can serve as a point of comparison?

I've been sitting through the issue tracker on NVDA and it actually should be "fixed" in NVDA 2020.3, however the latest version available is NVDA 2020.2. The issue regarding Qt 5.9+ compatibility was stalled for a year or so and then finally fixed a few months ago, but the fix hasn't been included in a release other than beta releases. By fixed on our end, I mean the same behavior with Qt 5.9 and earlier should be restored. If there are any issues going from there, we can fix them then.

@tapper82 @AKJ Do you guys have any way of testing the 2020.3 beta versions of NVDA? If so, please try those out and report back.

tapper82 commented 4 years ago

What about https://github.com/mumble-voip/mumble/issues/3808

tapper82 commented 4 years ago

NVDA bug for QT: https://github.com/nvaccess/nvda/issues/8604 QT bug: https://bugreports.qt.io/browse/QTBUG-69472 What ver of QT are you using?

xavier2k6 commented 4 years ago

What ver of QT are you using?

qBittorrent 4.2.5 uses Qt 5.13.2

@tapper82 @AKJ Download Link for NVDA 2020.3 RC1

FranciscoPombal commented 4 years ago

Current experimental builds are using Qt 5.15.0 LTS, next official release will most likely use either 5.15.0 LTS or 5.15.1 LTS.

tapper82 commented 4 years ago

@FranciscoPombal Hi how do I get a experimental build? So I can test to see if there is any change. thanks.

FranciscoPombal commented 4 years ago

@tapper82 https://github.com/qbittorrent/qBittorrent/actions/runs/288664715. Are you testing with NVDA 2020.3 RC1?

tapper82 commented 4 years ago

Hi I am testing with latest master of NVDA. About NVDA dialog NonVisual Desktop Access (NVDA) Version: alpha-21125,dc9a6541

I tested out the experimental build? and there is know change in how NVDA sees the interface on windows. We as blind users just need it to read the list of torrents and let us know the info about the state of the download and I will be happy.

AKJ commented 3 years ago

Some answers to questions asked above, with apologies for the delay:

Similar Projects

Some QT projects that have some comparable layouts with QT accessibility: Bitcoin Core GUI, OBS and Electrum are the first three that come to mind- though I think Electrum uses PyQT.

Tasks I struggle with in QBitorrent 4.3.3 using NVDA 2020.4 RC1:

Keyboard Navitgation Behavior

When I open QBittorrent, keyboard focus is placed in an area with no reported data. If I hit tab, I hear something marked "Grouping". Shift-tab from this "grouping" produces silence. From the "grouping" section I tab once more and see the "status" checkbox. If I leave it checked another tab press yields silence, but using the arrows I can traverse the list of items containing All, Downloading, Seeding, etc. Using enter or either mouse button on any of these list items produces no audible result. If I continue to tab after the last list (trackers) further tab presses result in silence.

Final thoughts

I hope these explanations are useful. I'm not certain what needs to be done to expose these parts of the app to assistive technology like screen readers, but if I can provide any further insight or testing I'm happy to do so. Thank you for reading and for giving attention to this problem.

tapper82 commented 3 years ago
Hi any news on making any head way on this?
NotTsunami commented 3 years ago
Hi any news on making any head way on this?

To my understanding, the root cause of the issue was an incompatibility between the latest Qt version and NVDA. There haven't been really any changes to anything on the Qbittorrent side. It is a pinned issue here so it is of importance, but we don't know the cause of the issue.

Can you tell me what version of NVDA you are running now? I will try and look into this.

tapper82 commented 3 years ago

NVDA Version: alpha-23571,566a5e1c Has there bin any changes in QT

AKJ commented 2 years ago

Looking at this with fresh eyes I am convinced the main issue lies in the transfer list model. The filter list works fine, but traversing the transfer list with arrows still reads nothing to me. These seem like normal Qt classes to me; is any part of the transfer list a custom job that needs to be set up to inherit stuff from QAccessibleInterface?

NotTsunami commented 2 years ago

I don't have the time nor experience to fully delve into this, but I did a quick pass on this again, very specifically pertaining to:

Accessing the toolbar containing "General", "Trackers", "Content" etc with the keyboard I don't know exactly how NVDA works, but I made a build that allows the mentioned toolbar to be "focusable", which might improve the accessibility.

@AKJ Can you test the build and let me know if you can navigate the mentioned toolbar? If it works, I will submit a pull request. Make sure to backup any important torrents or run the build on a seperate user account. You can download the zip file directly from this URL: https://github.com/NotTsunami/qBittorrent/suites/5645534954/artifacts/184583032

AKJ commented 2 years ago

Yes, this works great! I can now navigate to that toolbar with tab and shift-tab, and the buttons gain focus in an expected way. Thanks for that!

tapper82 commented 2 years ago

All tho this test build lets screen reader users read the tool bar buttons it does not fix the torrent list. Most of the other things in the UI are still broken. Thanks for having a go for us.

AKJ commented 2 years ago

@NotTsunami - if you're willing to keep tracing the shape of this problem I have another potential thing to try. Do you think you could test QBittorrent with Accessibility Insights from Microsoft? In particular I'm curious about the tab stop behavior, since I can't test that myself. I couldn't glean anything from the automatic checks; maybe those results will be more meaningful to devs.

I think the major problems are focus-related. Here's a succinct rundown of how keyboard navigation typically works in accessible apps. Curious if Accessibility Insights sheds any further light on the problem:

AKJ commented 1 year ago

Using the QT6 build of Qbittorrent 4.5.3 (Windows 11 22h2 latest), I have the following improvements and updates to report.

Hopefully these notes are helpful! It is nice to see the client becoming more friendly for screen reader users.

rkingett commented 11 months ago

Jumping into say this is an issue on Windows 11 as well using the latest NVDA.

hwangsihu commented 6 days ago

Hi, does anyone know of a version of QBitTorrent that can navigate to some extent with just arrows and tabs using NVDA? If so, I'd like to downgrade to that version.

tapper82 commented 6 days ago

@hwangsihu No mate. They don't work.

hwangsihu commented 5 days ago

Okay... I'm using QT because uTorrent has a lot of problems like ads, coin mining, etc. I guess I‘ll have to write an object review or something to hold out for.