Screen readers cant read interface on Windows 10 #8967

Open
opened 2026-02-21 19:54:43 -05:00 by deekerman · 27 comments
Owner

Originally created by @tapper82 on GitHub (Aug 6, 2019).

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

Originally created by @tapper82 on GitHub (Aug 6, 2019). **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
Author
Owner

@Chocobo1 commented on GitHub (Aug 14, 2019):

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.

@Chocobo1 commented on GitHub (Aug 14, 2019): 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.
Author
Owner

@akj commented on GitHub (May 31, 2020):

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.

@akj commented on GitHub (May 31, 2020): 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.](https://www.marcozehe.de/how-to-use-nvda-and-firefox-to-test-your-web-pages-for-accessibility/) 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.
Author
Owner

@FranciscoPombal commented on GitHub (Oct 5, 2020):

@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?

@FranciscoPombal commented on GitHub (Oct 5, 2020): @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?
Author
Owner

@NotTsunami commented on GitHub (Oct 5, 2020):

@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.

@NotTsunami commented on GitHub (Oct 5, 2020): > @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.
Author
Owner

@tapper82 commented on GitHub (Oct 6, 2020):

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

@tapper82 commented on GitHub (Oct 6, 2020): What about https://github.com/mumble-voip/mumble/issues/3808
Author
Owner

@tapper82 commented on GitHub (Oct 6, 2020):

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?

@tapper82 commented on GitHub (Oct 6, 2020): 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?
Author
Owner

@xavier2k6 commented on GitHub (Oct 6, 2020):

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

@xavier2k6 commented on GitHub (Oct 6, 2020): >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](https://www.nvaccess.org/files/nvda/releases/2020.3rc1/nvda_2020.3rc1.exe)
Author
Owner

@FranciscoPombal commented on GitHub (Oct 6, 2020):

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.

@FranciscoPombal commented on GitHub (Oct 6, 2020): 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.
Author
Owner

@tapper82 commented on GitHub (Oct 6, 2020):

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

@tapper82 commented on GitHub (Oct 6, 2020): @FranciscoPombal Hi how do I get a experimental build? So I can test to see if there is any change. thanks.
Author
Owner

@FranciscoPombal commented on GitHub (Oct 6, 2020):

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

@FranciscoPombal commented on GitHub (Oct 6, 2020): @tapper82 https://github.com/qbittorrent/qBittorrent/actions/runs/288664715. Are you testing with NVDA 2020.3 RC1?
Author
Owner

@tapper82 commented on GitHub (Oct 7, 2020):

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.

@tapper82 commented on GitHub (Oct 7, 2020): 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.
Author
Owner

@akj commented on GitHub (Feb 12, 2021):

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:

  • Focusing and / or traversing the list of torrents (presumably the right pane of the app) with the keyboard.
  • Changing some settings, notably WebUI username and password. Note: this is more accessible in the Web UI.
  • Accessing the toolbar containing "General", "Trackers", "Content" etc with the keyboard.

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.

@akj commented on GitHub (Feb 12, 2021): 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](https://github.com/bitcoin-core/gui), [OBS](https://github.com/obsproject/obs-studio) and [Electrum](https://github.com/spesmilo/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: * Focusing and / or traversing the list of torrents (presumably the right pane of the app) with the keyboard. * Changing some settings, notably WebUI username and password. Note: this is more accessible in the Web UI. * Accessing the toolbar containing "General", "Trackers", "Content" etc with the keyboard. #### 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.
Author
Owner

@tapper82 commented on GitHub (Aug 19, 2021):

Hi any news on making any head way on this?
@tapper82 commented on GitHub (Aug 19, 2021): Hi any news on making any head way on this?
Author
Owner

@NotTsunami commented on GitHub (Aug 19, 2021):

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.

@NotTsunami commented on GitHub (Aug 19, 2021): > ``` > 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.
Author
Owner

@tapper82 commented on GitHub (Aug 19, 2021):

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

@tapper82 commented on GitHub (Aug 19, 2021): NVDA Version: alpha-23571,566a5e1c Has there bin any changes in QT
Author
Owner

@akj commented on GitHub (Mar 14, 2022):

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?

@akj commented on GitHub (Mar 14, 2022): 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?
Author
Owner

@NotTsunami commented on GitHub (Mar 14, 2022):

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

@NotTsunami commented on GitHub (Mar 14, 2022): 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
Author
Owner

@akj commented on GitHub (Mar 14, 2022):

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!

@akj commented on GitHub (Mar 14, 2022): 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!
Author
Owner

@tapper82 commented on GitHub (Mar 14, 2022):

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.

@tapper82 commented on GitHub (Mar 14, 2022): 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.
Author
Owner

@akj commented on GitHub (Mar 16, 2022):

@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:

  • Tab and shift-tab navigate between main sections of an app (lists, toolbars, etc). For more complex designs, F6 and Shift+F6 cycle forward and backward through different app areas. Navigation is usually cyclical; if you keep tabbing you should end up back where you started.
  • Up / down arrows traverse a list (like the torrent list, for instance). Each press of up / down moves focus to the previous or next row, or prev / next line in an edit field, and speaks the contents..
  • Left / right arrows move focus to and read out different elements in the same row (file details in Windows Explorer, buttons in a toolbar, tabs in a list of tabs, etc).
  • Pressing the applications key on a relevant item with focus brings up the context menu.
  • Pressing enter on a relevant item with focus tends to perform the same action that a click or double click might produce.
@akj commented on GitHub (Mar 16, 2022): @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](https://accessibilityinsights.io/) 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: * Tab and shift-tab navigate between main sections of an app (lists, toolbars, etc). For more complex designs, F6 and Shift+F6 cycle forward and backward through different app areas. Navigation is usually cyclical; if you keep tabbing you should end up back where you started. * Up / down arrows traverse a list (like the torrent list, for instance). Each press of up / down moves focus to the previous or next row, or prev / next line in an edit field, and speaks the contents.. * Left / right arrows move focus to and read out different elements in the same row (file details in Windows Explorer, buttons in a toolbar, tabs in a list of tabs, etc). * Pressing the applications key on a relevant item with focus brings up the context menu. * Pressing enter on a relevant item with focus tends to perform the same action that a click or double click might produce.
Author
Owner

@akj commented on GitHub (Jun 2, 2023):

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

  • Accessing the torrent list with tab and shift+tab is possible, but focusing the list this way is inconsistent when the view changes via buttons (General, Trackers, Peers, etc).
  • When tabbing to the torrent list, the torrent that currently has focus is read.
  • Navigating up and down the torrent list with arrow keys moves focus between torrents, but the newly focused torrent is not read. This contrasts with moving through the filter option lists. For example, the status list correctly reads Downloading, Seeding, Active, etc when traversed with the arrow keys while the torrent list does not.
  • Settings dialogues have noticeably improved, but some controls (for instance in Web UI) read ambiguous or confusing labels when tabbed to. For instance, tabbing to a setting may say something like: "Web user interface, remote control, checkbox not checked". This label is given to many different settings, so it's unclear what this checkbox controls.

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

@akj commented on GitHub (Jun 2, 2023): Using the QT6 build of Qbittorrent 4.5.3 (Windows 11 22h2 latest), I have the following improvements and updates to report. * Accessing the torrent list with tab and shift+tab is possible, but focusing the list this way is inconsistent when the view changes via buttons (General, Trackers, Peers, etc). * When tabbing to the torrent list, the torrent that currently has focus is read. * Navigating up and down the torrent list with arrow keys moves focus between torrents, but the newly focused torrent is not read. This contrasts with moving through the filter option lists. For example, the status list correctly reads Downloading, Seeding, Active, etc when traversed with the arrow keys while the torrent list does not. * Settings dialogues have noticeably improved, but some controls (for instance in Web UI) read ambiguous or confusing labels when tabbed to. For instance, tabbing to a setting may say something like: "Web user interface, remote control, checkbox not checked". This label is given to many different settings, so it's unclear what this checkbox controls. Hopefully these notes are helpful! It is nice to see the client becoming more friendly for screen reader users.
Author
Owner

@rkingett commented on GitHub (Dec 18, 2023):

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

@rkingett commented on GitHub (Dec 18, 2023): Jumping into say this is an issue on Windows 11 as well using the latest NVDA.
Author
Owner

@hwangsihu commented on GitHub (Nov 15, 2024):

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.

@hwangsihu commented on GitHub (Nov 15, 2024): 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.
Author
Owner

@tapper82 commented on GitHub (Nov 15, 2024):

@hwangsihu No mate. They don't work.

@tapper82 commented on GitHub (Nov 15, 2024): @hwangsihu No mate. They don't work.
Author
Owner

@hwangsihu commented on GitHub (Nov 16, 2024):

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.

@hwangsihu commented on GitHub (Nov 16, 2024): 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.
Author
Owner

@rkingett commented on GitHub (Feb 6, 2025):

I am also having this issue in the latest 2024 version of NVDA. I can review menus, the filter lists, and the options, but I just can't review the list of torrents and their status.

@rkingett commented on GitHub (Feb 6, 2025): I am also having this issue in the latest 2024 version of NVDA. I can review menus, the filter lists, and the options, but I just can't review the list of torrents and their status.
Author
Owner

@bingen13 commented on GitHub (Aug 12, 2025):

Commenting on the situation with QBitTorrent 5.1.2 and NVDA 2025.1.2.

The situation is the same around lists. NVDA sees them as a treeview item and focus changes are not detected, hence navigation with the up and down arrows does not get indicated.

I found a small workaround that helps some (though does not scale well to large numbers of torrents) and which maybe can give devs some notion of what the issue might be.

  1. Tab until the treeview is found. (If you find General, it's one shift-tab from there.)
  2. NVDA reads the currently selected torrent. Specifically it reads: "Tree view: torrent name and info, level 1."
  3. Press down arrow.
  4. Press tab. Then shift-tab.
  5. The now selected torrent and its info will be read.
    So the problem doesn't seem so much that the widget doesn't expose the information, as that it does not expose selection changes.

Hoping this will get sorted at some point.

@bingen13 commented on GitHub (Aug 12, 2025): Commenting on the situation with QBitTorrent 5.1.2 and NVDA 2025.1.2. The situation is the same around lists. NVDA sees them as a treeview item and focus changes are not detected, hence navigation with the up and down arrows does not get indicated. I found a small workaround that helps some (though does not scale well to large numbers of torrents) and which maybe can give devs some notion of what the issue might be. 1. Tab until the treeview is found. (If you find General, it's one shift-tab from there.) 2. NVDA reads the currently selected torrent. Specifically it reads: "Tree view: torrent name and info, level 1." 3. Press down arrow. 4. Press tab. Then shift-tab. 5. The now selected torrent and its info will be read. So the problem doesn't seem so much that the widget doesn't expose the information, as that it does not expose selection changes. Hoping this will get sorted at some point.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/qBittorrent#8967
No description provided.