Hello.
It’s great that the Juce framework supports native screen reader accessibility for Windows, MacOS, IOS, Android, but not for Linux.
I want to suggest two options how it can be integrated:
Use AT-SPI2 directly
This fits well with ready-made other platform implementations, but is more difficult to implement.
AT-SPI is an interface for assistive technologies, which is best used through DBus. There is ATK, but most modern applications/frameworks, such as QT or GTK4 uses AT-SPI via DBus directly.
I don’t know for sure if Juce uses DBus anywhere, if so, then we don’t need to add any build dependencies/libraries.
OR
Use the cross-platform library - AccessKit
For Juce we need C bindings
It is a cross-platform library that supports everything (except Web at the moment) : Windows, Linux/Unix, macOS, iOS, Android.
If we do everything right, we can remove all platform-dependent accessibility implementations, but I do not know how appropriate this is for Juce. AccessKit and JUCE licenses are compatible, but there may still be problems that I do not know about.
I’m even willing to help with testing and implementation but first I want to discuss this. However, which option should we use?
Thank you.
