Class AccessibilityChannel


  • public class AccessibilityChannel
    extends Object
    System channel that sends accessibility requests and events from Flutter to Android.

    See AccessibilityChannel.AccessibilityMessageHandler, which lists all accessibility requests and events that might be sent from Flutter to the Android platform.

    • Constructor Detail

      • AccessibilityChannel

        public AccessibilityChannel​(@NonNull
                                    DartExecutor dartExecutor,
                                    @NonNull
                                    FlutterJNI flutterJNI)
        Constructs an AccessibilityChannel that connects Android to the Dart code running in dartExecutor.

        The given dartExecutor is permitted to be idle or executing code.

        See DartExecutor.

    • Method Detail

      • onAndroidAccessibilityEnabled

        public void onAndroidAccessibilityEnabled()
        Informs Flutter that the Android OS currently has accessibility enabled.

        To accommodate enabled accessibility, this method instructs Flutter to activate its semantics tree, which forms the basis of Flutter's accessibility support.

      • onAndroidAccessibilityDisabled

        public void onAndroidAccessibilityDisabled()
        Informs Flutter that the Android OS currently has accessibility disabled.

        Given that accessibility is not required at this time, this method instructs Flutter to deactivate its semantics tree.

      • setAccessibilityFeatures

        public void setAccessibilityFeatures​(int accessibilityFeatureFlags)
        Instructs Flutter to activate/deactivate accessibility features corresponding to the flags provided by accessibilityFeatureFlags.
      • dispatchSemanticsAction

        public void dispatchSemanticsAction​(int virtualViewId,
                                            @NonNull
                                            AccessibilityBridge.Action action)
        Instructs Flutter to perform the given action on the SemanticsNode referenced by the given virtualViewId.

        One might wonder why Flutter would need to be instructed that the user wants to perform an action. When the user is touching the screen in accessibility mode, Android takes over the touch input, categorizing input as one of a many accessibility gestures. Therefore, Flutter does not have an opportunity to react to said touch input. Instead, Flutter must be notified by Android of the desired action. Additionally, some accessibility systems use other input methods, such as speech, to take virtual actions. Android interprets those requests and then instructs the app to take the appropriate action.

      • dispatchSemanticsAction

        public void dispatchSemanticsAction​(int virtualViewId,
                                            @NonNull
                                            AccessibilityBridge.Action action,
                                            @Nullable
                                            Object args)
        Instructs Flutter to perform the given action on the SemanticsNode referenced by the given virtualViewId, passing the given args.