How to make Unity working fine with TalkBack?

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

We have experienced the same problem with talkback on android build. It is strange that quick googling doesn't bring up much more info. In our application, the talkback voice runs on the "background" and makes the actual audiogame almost unplayable. Does anyone know how to disable and enable the talkback from unity? Cheers!

Same issue here, There is no response from Unity?

2 Answers

2

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 on Android and iOS by leveraging Unity’s new Accessibility APIs! :slightly_smiling_face: These APIs are independent of the UI, so they can be used regardless of what UI system the game employs. Moreover, Unity 6.3 also brings native screen reader support to Windows and macOS.

Check out our documentation and sample project!