Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Getting Orca to Read Notifications #20

Open
hjozwiak opened this issue Sep 27, 2021 · 4 comments
Open

Getting Orca to Read Notifications #20

hjozwiak opened this issue Sep 27, 2021 · 4 comments

Comments

@hjozwiak
Copy link

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!

@Toqozz
Copy link
Owner

Toqozz commented Sep 27, 2021

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?

@hjozwiak
Copy link
Author

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.

@hjozwiak
Copy link
Author

hjozwiak commented Oct 2, 2021

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.

@Toqozz
Copy link
Owner

Toqozz commented Oct 3, 2021

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.

gtk accessibility hierarchy diagram

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants