We’ve learned that TalkBack handles view.requestFocus() inconsistently across devices. What we found:
Accessibility announcements set with
view.announceForAccessibility(“Please enter a valid email address”)
view.requestFocus()
are not announced all devices.
When requestFocus() is called:
For four devices, TalkBack announces the view that requested focus, then announces "Please enter a valid email address”, which is how we expect it to work.
But, two devices announce the view that requested focus, and ignore "Please enter a valid email address". I tried every approach to force TalkBack to announce "Please enter a valid email address" on the two devices that don’t work properly, but nothing works. I firmly believe this is a bug in either the Android Framework or, more likely, with TalkBack because the same situation shouldn't be announced differently on different devices.
I tested this issue on six devices, including:
- OS-wise:
- Four run Android 8.0.0 = Two work, and two don’t
- Two run Android 8.1.0 = Both work
- Brand-wise:
- Two LG = Both work
- One Google Pixel = Works
- One Samsung = Doesn’t work
- One Motorola = Doesn’t work
- One Nexus = Works
- Two were emulators (both work), and the remainder were physical devices (two of five work).