Hey, I’m making an audio game with Unity. There won’t be any buttons, art, etc. everything will be on audio, and we will just use the screen for touch / gesture.
Blind people use TalkBack on Android. At the moment, they have to disable it to launch the game and be able to play in. If TalkBack is still activated, it grabs all the gesture and so nothing goes on Unity side, and unfortunately they can’t play. Also there might be some kind of in app billing, or social media sharer inside the app. But for this, we need to handle TalkBack.
I don’t know if what I need is doable or not :
- if TalkBack is enabled, may I let the touch/gesture go to Unity (via a native plugin using Java) ?
I’m trying the native plugin without success.
Note that on iOS, there isn’t any issue with VoiceOver.
Any hints will be very welcomed!
Cheers
Hi Aymeric,
I know this is a 2 year old question but there seems to be very little information about this, so I thought I’d share my recent findings.
After some investigation into this, it seems that this is not possible in either Unity or native Android apps.
Some people claimed to have success by overriding some accessibility methods (after exporting to an Android Project), but I’ve had no success with this. (See here)
A workaround would be to ask the user to suspend Talkback when they’re running your app.
This is possible by holding down the power and both volume buttons.
This feature was introduced in Talkback 4.2, and the same button combination will resume it.
There’s also a way to turn it back on automatically after a set period of time.
Check them all out here.
By default, games made with Unity are incompatible with screen readers because Unityʼs UI systems are not accessible to assistive technologies. This means that while the screen reader is on, it is impossible to interact with a Unity game.
This problem can be partially solved by simulating screen reader behavior with the help of text-to-speech. However, screen reader users will still have to turn their screen reader off if they want to play a game made with Unity.
The good news is that starting with Unity 6, games made with Unity can natively support screen readers by leveraging Unity’s new accessibility APIs!
These APIs are independent of the UI, so they can be used regardless of what UI system the game employs. They are currently available for the Android and iOS runtimes, and we are actively working to extend their support to the Windows and macOS runtimes as well.
Check out our blog post, documentation, and sample project.