Getting Orca to Read Notifications
Greetings,
I recently discovered this utility while looking for things to replace the original notification-daemon that I am using on my system, due to its strange limitations. Unfortunately, I have hit somewhat of a snag in switching to wired, in that I can't get orca to read the notification messages. For those unaware, Orca is the desktop screenreader for Linux, which allows blind people to use applications. What are some things I can try to fix the issue?
For reference, I am running Arch Linux, Stumpwm 20.11, and Orca from the latest master.
Thanks!
Wow! That's really interesting, thanks for trying Wired.
Wired uses Cairo to draw notification content, which is basically a drawing canvas API that outputs pixels. This means that when we draw text, images, and stuff like that, we just output the pixels and there's no kind of "metadata" about that text or image (you can't copy-paste these either).
This is probably why your screenreader is having trouble reading any text -- it would need OCR capabilities to do so.
I admit that I didn't really consider accessibility in developing this solution, however I am keen to implement features to make Wired more accessible.
For something we have right now, there's the print_to_file config option, which will make Wired write notification data as JSON out to the file. You can write a script to read out notifications as they come in using that, but it's not ideal.
Are there any features you can think of to add that would help more here?
I am honestly not sure; I am going to take a spelunking trip into the Orca codebase to figure out how it gets notifications and figure out what I can get working from there.
How feasible would it be to have the windows implement Atspi? Maybe they do already, but I am not sure given that Cairo is low level and I am not quite up to grips with the GTK stack. Sorry for the long wait in between replies.
I've been looking for a while, and it seems like we actually want the windows to implement ATK. I think that is what provides the atspi stuff.

Right now Wired looks more like: X Window System -> Pango/Cairo -> Winit, which is missing the ATK layer.
I've briefly looked into how ATK can be added (which should allow Orca to read notifications), but resources are pretty barebones. There do seem to be rust bindings at least, which are well documented: https://crates.io/crates/atk.
I am interested in adding support for this, and making Wired more accessible, but I can't provide any meaningful time frame for how long it'll take.