-
-
Notifications
You must be signed in to change notification settings - Fork 21.3k
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
base: master
Are you sure you want to change the base?
Conversation
7080b24
to
f964077
Compare
c547617
to
d350cf5
Compare
494a155
to
066fa9b
Compare
17598dd
to
ba7f286
Compare
2ec4d0f
to
c6b73c3
Compare
Hello. Would be possible for the future make context menus (like the menu bar) readable for screen readers? currently it only announces menu bar and it reads nothing, and that was possible with the old godot 3.2 with nolan's plugin. If yes, that would be very great, as with this current version, almost all is readable, but to start to messing with this as I did before with nolan's plugins, we need that the context menus become accessible/readable. thanks much! |
Hi, just wondering what the progress is like on this PR? Is there any way I could perhaps help contribute or help? |
What's implemented:
What's not implement:
Everything need to be tested, but since 4.3 is close to beta feature freeze and this is a lot of changes, it will be done probably done for 4.4 as soon as 4.3 is released. |
Okay well can you work around that by using vs code as your script editor? |
Hello! I will write my thoughts about what I personally expect from the editor and maybe that could help. First of all, most of blind developers write code in some already accessible IDEs or code editors like VS Code. So I guess there is no need to implement the full code writing support. All graphic-related stuff, such 2D and 3D canvas and drawing is not needed for a blind person because we actually cannot draw anything and implementing some kind of audible drawing is a huge problem and since the first attempt in 2008 nobody achieved any valuable result in this. What we really really need is a project manager accessibility and I guess creating and editing scenes and nodes, because doing so entirely from text files can be a tough task. Also if some kind of plugin manager or other project settings window exists we also need an accessibility of it. As for games, not for an editor, maybe sighted developers would need some easier accessibility features but I guess blind developers will still implement their own screen reading logic in audio games. We already used to it and it is relatively comfortable for us to implement such things in every game. We already have several speech output libraries in C which help our games to communicate with any installed screen reader, from NVDA and JAWS to SAPI voices on Windows, speech-dispatcher on Linux and VoiceOver or NSSpeechSynthesizer on MacOS and other apple systems. |
Kudos to you for the amazing work you've done on this, and it genuinely seems like the holistic approach we need in tackling the whole engine and making both the editor and Game UI accessible to screen readers that I have been hoping for years would come to Godot. The FocusMode enum expansion for "FOCUS_ACCESSIBILITY" is a good, the choice of using NOTIFICATION_ACCESSIBILITY_UPDATE in the _notifcation() seems like a great idea and aligns with the existing architecture. The only thing so far that raised my eyebrows was the change in Please let me know if there's anything I can do to help move this forward. I run Windows 10 and Fedora 40 with Gnome + Wayland and could do some testing on those platforms. |
I have one person asking for my app to be made |
Any updates on this? I want to make my game narrator compatible, but I have no clue what I would need to roll my own system and docs online are not helping. Is the May commit stable? |
I would like to use godot for creating an app, and ideally accessibility won't be an afterthought for my project. The lack of screen reader support is a bit of a showstopper right now, so I'm wondering if this PR is still active. |
Will likely finish it next week (needs rebase and full re-testing on all platforms). |
05379e1
to
a827f5a
Compare
a827f5a
to
5fd9325
Compare
Initial implementation of the AccessKit integration use C-API:
All base (non-editor) controls except
GraphEditor
should work now. UI behavior without active screen reader should be 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 embeddedTreeItem
buttons).Additionally, provides access to some accessibility related OS settings (high contrast, reduce animation, reduce transparency and screen reader status)
Screen recordings (updated)
2023-06-02.13-13-41.mp4
Expects
accesskit_sdk_path
command line argument or environment variable with the path to the pre-build AccessKit-C 0.10.1 folder.Supersede #72886
Fixes #58074
Implements godotengine/godot-proposals#983 (partial)
Implements godotengine/godot-proposals#1964