Topics

Creating an add-on for Transmission QT Client to make it accessible

Dickson Tan
 

Hi,

I've been trying to find a BitTorrent client that would work well with NVDA. I really like Transmission especially because it works well on Docker, and you can use the desktop version for Windows to remotely control another instance of Transmission.

It almost works completely with NVDA but there a few issues I'd like to fix. It is using QT 5 and is exposed as UIA. Any advice about how to fix these would be great.

1. Certain dialogs that appear automatically such as the one for selecting options when opening a torrent [don't gain keyboard focus,](https://github.com/transmission/transmission/issues/1286). I couldn't find any other way of getting the keyboard focus inside them besides using the mouse. Is there any way of "watching out" for these things appearing on screen and forcing keyboard focus inside?
2. When tabbing to the list of downloads, NVDA doesn't seem to recognize that the sole item in the list has gained focus. This does work when there is more than one item if you press down or up to make a new item in the list gain focus. Is it possible to hook into the alt+tab behaviour?
3. This is probably going to be the toughest one. The list of downloads actually has additional info displayed below the name such as size, amount uploaded etc, [none of which appears in object navigation or can be found by NVDA](https://github.com/transmission/transmission/issues/1285). Object nav does find the list as a list of items, but each list item only contains the name. Screen review shows nothing at all. OCR does work pretty well though so I'm wondering if that's something that could be exploited. I rmeembered there's a way of getting the display text from coordinates, is that what screen review uses internally?
4. Some fields don't have any labels associated with them. If this were a web application, I'd write a greasemonkey script to apply the right label using reliable selectors. In NVDA which attributes are typically used as indentifiers to latch onto?
5. In the file selection list of the open torrent dialog:
    * It is a tree as well as a table. NVDA isn't able to detect if the item is checked or unchecked, collapsed or expanded, or level in the tree.
    * NVDA reads the file name of each individual file. You can get to the other columns of the table with object nav. I'm wondering if there's a way of having NVDA read the whole row out automatically, kind of what you see in Windows explorer or the list in Utorrent. Or alternatively to have right / left arrows let you move by column.

Dickson Tan
 

Hey,


Anyone has any ideas on how any of these issues could be worked around?

On 5/6/2020 12:21 am, Dickson Tan wrote:
Hi,

I've been trying to find a BitTorrent client that would work well with NVDA. I really like Transmission especially because it works well on Docker, and you can use the desktop version for Windows to remotely control another instance of Transmission.

It almost works completely with NVDA but there a few issues I'd like to fix. It is using QT 5 and is exposed as UIA. Any advice about how to fix these would be great.

1. Certain dialogs that appear automatically such as the one for selecting options when opening a torrent [don't gain keyboard focus,](https://github.com/transmission/transmission/issues/1286). I couldn't find any other way of getting the keyboard focus inside them besides using the mouse. Is there any way of "watching out" for these things appearing on screen and forcing keyboard focus inside?
2. When tabbing to the list of downloads, NVDA doesn't seem to recognize that the sole item in the list has gained focus. This does work when there is more than one item if you press down or up to make a new item in the list gain focus. Is it possible to hook into the alt+tab behaviour?
3. This is probably going to be the toughest one. The list of downloads actually has additional info displayed below the name such as size, amount uploaded etc, [none of which appears in object navigation or can be found by NVDA](https://github.com/transmission/transmission/issues/1285). Object nav does find the list as a list of items, but each list item only contains the name. Screen review shows nothing at all. OCR does work pretty well though so I'm wondering if that's something that could be exploited. I rmeembered there's a way of getting the display text from coordinates, is that what screen review uses internally?
4. Some fields don't have any labels associated with them. If this were a web application, I'd write a greasemonkey script to apply the right label using reliable selectors. In NVDA which attributes are typically used as indentifiers to latch onto?
5. In the file selection list of the open torrent dialog:
    * It is a tree as well as a table. NVDA isn't able to detect if the item is checked or unchecked, collapsed or expanded, or level in the tree.
    * NVDA reads the file name of each individual file. You can get to the other columns of the table with object nav. I'm wondering if there's a way of having NVDA read the whole row out automatically, kind of what you see in Windows explorer or the list in Utorrent. Or alternatively to have right / left arrows let you move by column.