Index: chrome/browser/chromeos/arc/accessibility/ax_tree_source_arc.cc |
diff --git a/chrome/browser/chromeos/arc/accessibility/ax_tree_source_arc.cc b/chrome/browser/chromeos/arc/accessibility/ax_tree_source_arc.cc |
index a4a92086903d75b413ad9a51b4221e2e0f2ca356..9a995a29f39349c0da3910c4b2e8b8e0bd08a362 100644 |
--- a/chrome/browser/chromeos/arc/accessibility/ax_tree_source_arc.cc |
+++ b/chrome/browser/chromeos/arc/accessibility/ax_tree_source_arc.cc |
@@ -166,7 +166,6 @@ void PopulateAXState(arc::mojom::AccessibilityNodeInfoData* node, |
// sources. |
// The FOCUSABLE state is not mapped because Android places focusability on |
// many ancestor nodes. |
- MAP_STATE(AXBooleanProperty::CHECKED, ui::AX_STATE_CHECKED); |
MAP_STATE(AXBooleanProperty::EDITABLE, ui::AX_STATE_EDITABLE); |
MAP_STATE(AXBooleanProperty::MULTI_LINE, ui::AX_STATE_MULTILINE); |
MAP_STATE(AXBooleanProperty::PASSWORD, ui::AX_STATE_PROTECTED); |
@@ -174,6 +173,13 @@ void PopulateAXState(arc::mojom::AccessibilityNodeInfoData* node, |
#undef MAP_STATE |
+ if (GetBooleanProperty(node, AXBooleanProperty::CHECKABLE)) { |
+ const bool isChecked = GetBooleanProperty(node, AXBooleanProperty::CHECKED); |
+ const int checkedState = |
+ isChecked ? ui::AX_CHECKED_STATE_TRUE : ui::AX_CHECKED_STATE_FALSE; |
+ out_data->AddIntAttribute(ui::AX_ATTR_CHECKED_STATE, checkedState); |
+ } |
+ |
if (!GetBooleanProperty(node, AXBooleanProperty::ENABLED)) |
out_data->AddStateFlag(ui::AX_STATE_DISABLED); |
} |