We’re excited to announce that Unity 6000.3.0a5 brings native screen reader support to Windows and macOS. This extends the platform coverage of Unity’s screen reader support APIs beyond Android and iOS (introduced in Unity 6.0), making it possible for you to build apps and games that are accessible to screen readers across all major platforms supported by Unity.
With this release, you can now make your Unity apps and games compatible with Narrator (Windows) and VoiceOver (macOS) – in addition to TalkBack (Android) and VoiceOver (iOS) – using a single set of APIs.
Accessibility is an essential part of app and game development, and this release significantly lowers the barrier to delivering more inclusive experiences. Where previously implementing screen reader accessibility required extensive native plugins or complex, platform-specific workarounds, Unity now provides first-class, cross-platform APIs that make it easier than ever to support screen readers in your project.
This release also adds new accessibility APIs – to support screen reader scrolling and more accessibility roles – and improves the behavior and consistency of existing APIs across platforms.
We’ve also greatly improved the scripting API documentation of the Accessibility module, drawing from the questions and feedback raised by you on this forum. The documentation now includes explanations of what each API is meant for, guidance on how and when to use them, and descriptions of the expected screen reader behavior across different platforms.
What’s new in Unity 6.3
Extended platform support
Extended the screen reader support APIs to Windows and macOS, enabling compatibility of Unity applications with Narrator and VoiceOver.
Screen reader scrolling support
Added scrolling support for TalkBack (Android), VoiceOver (iOS), and Narrator (Windows).
We’re looking forward to seeing how you use these APIs to make your digital experiences accessible to more people. If you have feedback, please share it here – we want to hear from you!
Great to see more accessibility support! While not directly related to screen readers, I still believe this feature would be a great addition to creating clearer and responsive applications: support for changing OS cursor states, like changing to the hand pointer with hovering over buttons, the text selection when hovering over text, etc. You can do this using custom textures, but not only is that very tedious, it also does not respect the user’s chosen cursor, which can decrease accessibility if they use some special cursor that makes it easier to see.
The editor already does this, and you can set the cursor state for visual elements in UI Toolkit, but it’s not supported at runtime, which is a shame.
Is Windows 10 supported? It seems like assigning anything to AssistiveSupport.activeHierarchy while the Narrator is enabled causes a native crash. No crash on Windows 11.
Hi, and thank you for these promising accessibility updates.
Sadly I cannot make them work. I’m on windows 11, running Unity 6000.3 beta, and my project is for a windows game, not android nor ios. I enabled the accessibility module from within the Package manager. I couldn’t find the AccessibilityNode component when looking into the search bar of the Add Component. Am I missing something?
Thx in advance
I reported this bug a while ago, which you may already know. I have another question:
Is AccessibilityNode.decremented supported on Windows? I was able to get AccessibilityNode.incremented working, it uses the same keyboard shortcut as invoke (Caps Lock + Enter). I was not able to find any way to trigger AccessibilityNode.decremented event though.
For this to work, the slider has to receive both screen reader focus and keyboard focus. Since the Accessibility APIs are agnostic of the UI, if an AccessibilityNode gains screen reader focus, that doesn’t necessarily mean that its corresponding UI element gains keyboard focus. Thus, you might have to programmatically focus the UI element when its corresponding AccessibilityNode gains focus. This can be done by subscribing to AccessibilityNode.focusChanged.
Here is a simplified example for a UI Toolkit slider:
the slider has to receive both screen reader focus and keyboard focus .
Late reply, but the info about focusChanged is missing from the Unity v6.3 AccessibilityRole.Slider docs page. It’s included on the page for Text Input fields.
I dropped a “Page Missing Info” ticket, but just noting this here so it’ll hopefully make it into 6.4+ docs.
Is the Public A11y Sample build to Windows expected to work with Narrator?
My Narrator is identifying the game window, but not continuing through to buttons.
Looks like the main branch is still on Unity 2023.3, so that’d be mobile-only. You might try peeking at the not-quite-published versions they did for last year’s Unite talk - those branches seem to be built against a 6.3 beta. So they’ll probably be wonky, but it’s a start at least.
You can always check a Unity project’s version under {ProjectFolder}/ProjectSettings/ProjectVersion.txt. Saves a lot of hairpulling LOL
I wanted to take a minute and let you know that I’ve fixed the bug causing the crash on Windows 10. The fix will be available within the versions mentioned in the bug report in the Issue Tracker.
Thank you again for bringing this to our attention!
I’m also really happy to share something we’ve been working toward for a while: the Unity Manual now has a dedicated Accessibility section!
These pages were designed and written with one goal in mind: making it easier for developers and accessibility experts alike to find the information they need on this important topic.
Have a look and please let us know what’s helpful and what’s missing – your feedback genuinely shapes where these docs go next.
For a deeper dive, I gave a talk at GAconf Europe 2026 – The Shadow Interface and Screen Readers – on how operating systems provide the infrastructure (“the shadow interface”) for screen readers and how Unity bridges the Engine to the platform-level accessibility APIs – a good companion to these docs whether or not you’ve ever used a screen reader.