From c23690f0d751898a0ed5eab4c5242a9e182b54b0 Mon Sep 17 00:00:00 2001 From: Jonah Williams Date: Mon, 20 Aug 2018 09:30:13 -0700 Subject: [PATCH] use setContentDescription for controls on Android (#6050) --- .../android/io/flutter/view/AccessibilityBridge.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/shell/platform/android/io/flutter/view/AccessibilityBridge.java b/shell/platform/android/io/flutter/view/AccessibilityBridge.java index 40ebf9d0f..001c7afcf 100644 --- a/shell/platform/android/io/flutter/view/AccessibilityBridge.java +++ b/shell/platform/android/io/flutter/view/AccessibilityBridge.java @@ -302,6 +302,7 @@ class AccessibilityBridge result.setCheckable(hasCheckedState || hasToggledState); if (hasCheckedState) { result.setChecked(object.hasFlag(Flag.IS_CHECKED)); + result.setContentDescription(object.getValueLabelHint()); if (object.hasFlag(Flag.IS_IN_MUTUALLY_EXCLUSIVE_GROUP)) result.setClassName("android.widget.RadioButton"); else @@ -309,10 +310,14 @@ class AccessibilityBridge } else if (hasToggledState) { result.setChecked(object.hasFlag(Flag.IS_TOGGLED)); result.setClassName("android.widget.Switch"); + result.setContentDescription(object.getValueLabelHint()); + } else { + // Setting the text directly instead of the content description + // will replace the "checked" or "not-checked" label. + result.setText(object.getValueLabelHint()); } result.setSelected(object.hasFlag(Flag.IS_SELECTED)); - result.setText(object.getValueLabelHint()); // Accessibility Focus if (mA11yFocusedObject != null && mA11yFocusedObject.id == virtualViewId) { -- GitLab