monero-project / monero-gui

Monero: the secure, private, untraceable cryptocurrency
Other
1.74k stars 769 forks source link

UI is inaccessible to accessibility clients #4020

Open ethindp opened 2 years ago

ethindp commented 2 years ago

As it currently stands, the Monero UI for monero-wallet-gui is completely inaccessible to accessibility clients. An "accessibility client" is a program that interacts with accessibility frameworks to act as assistive technology, such as screen readers. There are a number of things that can cause this:

QT provides accessibility through classes such as QAccessible. An application need only implement the QAccessibleInterface class (or its derivatives, QAccessibleObject and QAccessibleWidget). I am curious if the Monero community would be interested in implementing any of these interfaces. More information about accessibility in QT can be found here. I would do it myself, but it appears that all of the components are implemented through QML, something I am not particularly knowledgable about (I generally prefer building UIs through code because UI editors for QT aren't accessible to the screen readers I use). Though I certainly don't mind using a wallet like Feather, having the Monero wallet as an option would be quite nice. I really hope that we can make the Monero GUI wallet accessible together! :)

selsta commented 2 years ago

QML does support accessibility and we have added it for example on the "Open wallet from file" screen. There are a couple PRs open that improve accessibility in other places but it is a lot of work, not only to program but also to review. @rating89us did great work there but I'm simply behind with reviewing.

ethindp commented 2 years ago

@selsta I'm not familiar enough with QML to add accessibility myself, otherwise I would. It shouldn't be overly difficult, so long as you stick to native QT widgets. Its making custom widgets that presents a significant difficulty, particularly since you need to implement QAccessible/QAccessibleWidget/etc.