Skip to content

Turning off a11y while Flutter app is running is not propagated to app on Android #17665

@goderbauer

Description

@goderbauer
  1. flutter run an app.
  2. Press S, it prints "No semantics collected"
  3. Enable TalkBack via a11y shortcut while app is running
  4. Press S again, it prints the semantics tree.
  5. Turn off TalkBack via a11y shortcut while app is running.
  6. Press S again, it should print "No Semantics collected", but it still prints the semantics tree.

Navigating around the app after the last step will also result in various exceptions because Android rightfully things a11y is off while flutter thinks it's still on:

E/FlutterView( 9685): Uncaught exception while updating semantics
E/FlutterView( 9685): java.lang.IllegalStateException: Accessibility off. Did you forget to check that?
E/FlutterView( 9685): 	at android.view.accessibility.AccessibilityManager.sendAccessibilityEvent(AccessibilityManager.java:407)
E/FlutterView( 9685): 	at android.view.ViewRootImpl.requestSendAccessibilityEvent(ViewRootImpl.java:7113)
E/FlutterView( 9685): 	at android.view.ViewGroup.requestSendAccessibilityEvent(ViewGroup.java:980)
E/FlutterView( 9685): 	at android.view.ViewGroup.requestSendAccessibilityEvent(ViewGroup.java:980)
E/FlutterView( 9685): 	at android.view.ViewGroup.requestSendAccessibilityEvent(ViewGroup.java:980)
E/FlutterView( 9685): 	at io.flutter.view.AccessibilityBridge.createWindowChangeEvent(AccessibilityBridge.java:693)
E/FlutterView( 9685): 	at io.flutter.view.AccessibilityBridge.updateSemantics(AccessibilityBridge.java:505)
E/FlutterView( 9685): 	at io.flutter.view.FlutterView.updateSemantics(FlutterView.java:765)
E/FlutterView( 9685): 	at io.flutter.view.FlutterNativeView.updateSemantics(FlutterNativeView.java:182)
E/FlutterView( 9685): 	at android.os.MessageQueue.nativePollOnce(Native Method)
E/FlutterView( 9685): 	at android.os.MessageQueue.next(MessageQueue.java:325)
E/FlutterView( 9685): 	at android.os.Looper.loop(Looper.java:142)
E/FlutterView( 9685): 	at android.app.ActivityThread.main(ActivityThread.java:6541)
E/FlutterView( 9685): 	at java.lang.reflect.Method.invoke(Native Method)
E/FlutterView( 9685): 	at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
E/FlutterView( 9685): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

Metadata

Metadata

Assignees

Labels

a: accessibilityAccessibility, e.g. VoiceOver or TalkBack. (aka a11y)c: regressionIt was better in the past than it is nowplatform-androidAndroid applications specifically

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions