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

Implement screen reader support using AccessKit library. #76829

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

bruvzg
Copy link
Member

@bruvzg bruvzg commented May 8, 2023

Initial implementation of the AccessKit integration use C-API:

All base (non-editor) controls should work now. UI behavior without active screen reader should be mostly unchanged. When screen reader is running, some controls that normally do not can accept keyboard focus (Label, RTL, TabBar) and extra keyboard actions (switching tabs, selecting RTL paragraph and embedded images/tables, selecting embedded TreeItem buttons).

Only some editor UI parts are supported for now.

Additionally, provides access to some accessibility related OS settings (high contrast, reduce animation, reduce transparency and screen reader status)

Expects accesskit_sdk_path command line argument or environment variable with the path to the pre-build official accesskit-c folder (custom pre-builds for more platforms supported by Godot also available at https://github.com/godotengine/godot-accesskit-c-static/releases).

Supersede #72886
Fixes #58074
Implements godotengine/godot-proposals#983 (partial)
Implements godotengine/godot-proposals#1964

@bruvzg bruvzg added this to the 4.x milestone May 8, 2023
@bruvzg bruvzg force-pushed the ac_kit_direct branch 3 times, most recently from 7080b24 to f964077 Compare May 8, 2023 16:41
@bruvzg bruvzg force-pushed the ac_kit_direct branch 20 times, most recently from c547617 to d350cf5 Compare May 16, 2023 12:24
@bruvzg bruvzg requested review from a team as code owners March 21, 2025 08:10
@bruvzg bruvzg force-pushed the ac_kit_direct branch 2 times, most recently from 9195bad to c51daf1 Compare March 21, 2025 12:21
Copy link
Contributor

@dsnopek dsnopek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The GDExtension and XR bits look fine to me!

(But given that those make up a vast minority of the changes here, I won't select "Approve" )

@mwcampbell
Copy link

Now that this PR is in review, are there any parts that @bruvzg or the reviewer(s) want @DataTriny and me, the two main AccessKit developers, to review?

@Nuno69
Copy link

Nuno69 commented Mar 21, 2025 via email

@ndarilek
Copy link
Contributor

is it possible that other parts of the editor such as tile map editor, canvas editor ETC become accessible?

I feel like that's probably out of scope for this initial PR, but FWIW I think this should still be possible by another way. Back when I worked with godot-accessibility, I experimented with a plugin that essentially replaced the tilemap editor with something a bit reminiscent of the old Sable tile editor. I didn't get far with it--just enough to learn that I could replace the widget and add in custom keyboard commands to edit the maps--so I don't have anything to show for it other than learning it was doable.

Further discussion about this shouldn't continue here, and long-term it'd be nice to see actual accessibility on the tile editor, but in the meantime we should have a path forward. Making our own editor that manipulates the actual Godot tilemaps shouldn't be too hard.

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.

Godot doesn't work with screen readers