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

WIP: Iced accessibility #1849

Draft
wants to merge 8 commits into
base: master
Choose a base branch
from
Draft

Conversation

wash2
Copy link
Contributor

@wash2 wash2 commented May 11, 2023

This is a work in progress implementation of iced-rs/rfcs#21.

I have added widget implementations where I could, but they need more work. Some widget implementations may need changes to be more compatible with accessibility.

@wash2 wash2 force-pushed the iced-accessibility branch from 4fe3bf6 to bf0deae Compare May 12, 2023 16:18
@hecrj hecrj added this to the 0.13 milestone Feb 7, 2024
@hecrj hecrj modified the milestones: 0.13, 0.14 Feb 13, 2024
@hecrj hecrj mentioned this pull request Jun 20, 2024
7 tasks
@DataTriny
Copy link

Hello @wash2, @hecrj, are you currently working on this? Can I help you?

@wash2
Copy link
Contributor Author

wash2 commented Oct 28, 2024

Hello @wash2, @hecrj, are you currently working on this? Can I help you?

Yes, I need to move over some of my updates for this PR. I'd love some help after I've done that. I will ping you after pushing the updates.

@RastislavKish
Copy link

@wash2 thanks for your work on this! Do you think the pop-os iced fork is ready for some experimental real-world a11y testing?

I've tried to compile the iced counter example with the winit and a11y features, but the accessibility layer does not seem to be present, Orca is unable to focus the window. Ubuntu Mate 24.04.

I'm a blind programmer, I would be glad to provide relevant feedback when you're ready, as this will help not just iced, but Cosmic too.

@wash2
Copy link
Contributor Author

wash2 commented Jan 3, 2025

@wash2 thanks for your work on this! Do you think the pop-os iced fork is ready for some experimental real-world a11y testing?

I've tried to compile the iced counter example with the winit and a11y features, but the accessibility layer does not seem to be present, Orca is unable to focus the window. Ubuntu Mate 24.04.

I'm a blind programmer, I would be glad to provide relevant feedback when you're ready, as this will help not just iced, but Cosmic too.

Hi @RastislavKish , you will probably have more luck testing on the COSMIC alpha than on Ubuntu 24.04, because it includes experimental support for accessibility APIs on wayland via https://github.com/pop-os/at-spi2-core and cosmic-comp. I've done some testing, and it seems to be working ok to me, but I'd be happy to hear if there are some key features missing in your opinion.

@ids1024
Copy link
Contributor

ids1024 commented Jan 3, 2025

Or without at-spi2-core patches, it may be best to test on X11. (Or on Windows or macOS.) Maybe Mate is still on X11, at least by default, though. I'm not familiar with it's current state.

@DataTriny
Copy link

I just tested on Windows pop-os fork master branch (iced-accessibility cannot fetch winit from git).

Had to add raw-window-handle as a dependency of iced_winit (it's currently only present on Linux but it is a hard requirement on all platforms for AccessKit).

I tried a few examples and none of them work. I can clearly see that an AccessKit tree is generated but keyboard focus does not work at all. Neither does mouse exploration.

Is there a specific program that is known to work outside of the Cosmic suite?

@wash2
Copy link
Contributor Author

wash2 commented Jan 4, 2025

Is there a specific program that is known to work outside of the Cosmic suite?

By keyboard focus, do you mean tabbing through the application to focus different widgets, or the Focus action? Tab and Shift + Tab won't work for a lot of the iced examples. I've primarily done the testing with the cosmic suite. Widget handling of accessibility events is implemented for things like the default action on buttons, but the Focus action is actually not handled in the winit shell as of right now, though it should be, and seems to have been an oversight on my part. The reader does read off widget names, but it is somewhat limited for sure.

@DataTriny
Copy link

By keyboard focus, do you mean tabbing through the application to focus different widgets

Yes, that's what I meant.

I'd be happy to hear if there are some key features missing in your opinion.

I can't see anywhere calls to the following methods, so I guess text input is not yet implemented: NodeBuilder::set_character_lengths, NodeBuilder::set_character_positions, NodeBuilder::set_character_widths, NodeBuilder::set_word_lengths. There are ovbiously many more missing features, but I think this is probably the most important.

Also, please don't set the live property unconditionally on all labels, this will make for a very annoying experience. This property should only be used for live regions such as a message list in a chat application.

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

Successfully merging this pull request may close these issues.

5 participants