| Index: ui/accessibility/platform/ax_platform_node_auralinux.cc
|
| diff --git a/ui/accessibility/platform/ax_platform_node_auralinux.cc b/ui/accessibility/platform/ax_platform_node_auralinux.cc
|
| index f65267a9227fa968871175836f90f8f89f86bea9..6d30f501265854207d2d87a8b4192d12857193cf 100644
|
| --- a/ui/accessibility/platform/ax_platform_node_auralinux.cc
|
| +++ b/ui/accessibility/platform/ax_platform_node_auralinux.cc
|
| @@ -455,10 +455,9 @@ AtkRole AXPlatformNodeAuraLinux::GetAtkRole() {
|
| }
|
|
|
| void AXPlatformNodeAuraLinux::GetAtkState(AtkStateSet* atk_state_set) {
|
| - uint32_t state = GetData().state;
|
| + const AXNodeData& data = GetData();
|
| + uint32_t state = data.state;
|
|
|
| - if (state & (1 << ui::AX_STATE_CHECKED))
|
| - atk_state_set_add_state(atk_state_set, ATK_STATE_CHECKED);
|
| if (state & (1 << ui::AX_STATE_DEFAULT))
|
| atk_state_set_add_state(atk_state_set, ATK_STATE_DEFAULT);
|
| if (state & (1 << ui::AX_STATE_EDITABLE))
|
| @@ -476,6 +475,19 @@ void AXPlatformNodeAuraLinux::GetAtkState(AtkStateSet* atk_state_set) {
|
| if (state & (1 << ui::AX_STATE_SELECTED))
|
| atk_state_set_add_state(atk_state_set, ATK_STATE_SELECTED);
|
|
|
| + // Checked state
|
| + const int checked = GetIntAttribute(ui::AX_ATTR_INVALID_STATE);
|
| + switch (checked) {
|
| + case ui::AX_CHECKED_STATE_MIXED:
|
| + atk_state_set_add_state(atk_state_set, ATK_STATE_INDETERMINATE);
|
| + // Fall through
|
| + case ui::AX_CHECKED_STATE_TRUE:
|
| + atk_state_set_add_state(atk_state_set, ATK_STATE_CHECKED);
|
| + break;
|
| + default:
|
| + break;
|
| + }
|
| +
|
| if (delegate_->GetFocus() == GetNativeViewAccessible())
|
| atk_state_set_add_state(atk_state_set, ATK_STATE_FOCUSED);
|
| }
|
|
|