diff --git a/shell/platform/android/io/flutter/view/AccessibilityBridge.java b/shell/platform/android/io/flutter/view/AccessibilityBridge.java index 4a4cdc83257..91118cded88 100644 --- a/shell/platform/android/io/flutter/view/AccessibilityBridge.java +++ b/shell/platform/android/io/flutter/view/AccessibilityBridge.java @@ -95,6 +95,7 @@ class AccessibilityBridge extends AccessibilityNodeProvider implements BasicMess result.setPackageName(mOwner.getContext().getPackageName()); result.setClassName("Flutter"); // TODO(goderbauer): Set proper class names result.setSource(mOwner, virtualViewId); + result.setFocusable(object.isFocusable()); if (object.parent != null) { assert object.id > 0; @@ -144,7 +145,6 @@ class AccessibilityBridge extends AccessibilityNodeProvider implements BasicMess } if ((object.actions & SEMANTICS_ACTION_INCREASE) != 0 || (object.actions & SEMANTICS_ACTION_DECREASE) != 0 ) { - result.setFocusable(true); result.setClassName("android.widget.SeekBar"); if ((object.actions & SEMANTICS_ACTION_INCREASE) != 0) { result.addAction(AccessibilityNodeInfo.ACTION_SCROLL_FORWARD); @@ -509,6 +509,10 @@ class AccessibilityBridge extends AccessibilityNodeProvider implements BasicMess return this; } + boolean isFocusable() { + return flags != 0 || label != null || (actions & ~SEMANTICS_ACTION_SCROLLABLE) != 0; + } + void updateRecursively(float[] ancestorTransform, Set visitedObjects, boolean forceUpdate) { visitedObjects.add(this);