3 ms·
That depends on the platform. Windows is the one I know best. The current native accessibility API for Windows is called UI Automation. It's not tied to any hi
by mwcampbell 7y ago
That depends on the platform.
Windows is the one I know best. The current native accessibility API for Windows is called UI Automation. It's not tied to any high-level UI framework, though a UIA tree needs to be associated with a window handle (HWND).
Mac and iOS have Objective-C accessibility APIs as part of their respective native UI frameworks (AppKit and UIKit). I have cursory knowledge of those APIs from a previous job but never implemented either of them from scratch. Android likewise has a Java-based accessibility API as part of its framework. Yes, this means that non-Java-based toolkits have to do JNI bridging to implement accessibility on Android. sigh I've never done this myself either.
The only desktop environment for the free Unixes that has full-featured accessibility support, particularly for blind people, is GNOME, which has a D-Bus-based accessibility API called AT-SPI. GTK implements this API through a module called ATK. Qt also implements it. BTW, the Orca screen reader for GNOME was originally developed by a friend of mine.
Probably the best place to find an implementation of all of these APIs is one of the open-source web browser engines. Note though that on Windows, these engines implement a legacy accessibility API called MSAA (Microsoft Active Accessibility) and an unofficial extension of that API called IAccessible2. Chromium has a work-in-progress native UI Automation implementation, largely developed by the Microsoft Edge team.
Disclosure: I work at Microsoft, on the team that develops UI Automation and the Narrator screen reader.
- lukastyrychtr 7y agoPersonally, i would not call Gnome as the most accessible as of now. From personal experiences, Mate fares better in this regard. Of course, it has its quirks as well.
- mwcampbell 7y agoOh right, I totally forgot about MATE. My knowledge of GNOME accessibility is only second-hand.