| 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 11bdcde2e4dbdb92e596fd5e48ac870effc94fc4..4a85863c714950168cafb0947003eb0e01c00112 100644
|
| --- a/ui/accessibility/platform/ax_platform_node_auralinux.cc
|
| +++ b/ui/accessibility/platform/ax_platform_node_auralinux.cc
|
| @@ -461,10 +461,8 @@ AtkRole AXPlatformNodeAuraLinux::GetAtkRole() {
|
| }
|
|
|
| void AXPlatformNodeAuraLinux::GetAtkState(AtkStateSet* atk_state_set) {
|
| - uint32_t state = GetData().state;
|
| + const uint32_t state = GetData().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))
|
| @@ -482,6 +480,20 @@ 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 auto checked_state = static_cast<ui::AXCheckedState>(
|
| + GetIntAttribute(ui::AX_ATTR_CHECKED_STATE));
|
| + switch (checked_state) {
|
| + case ui::AX_CHECKED_STATE_MIXED:
|
| + atk_state_set_add_state(atk_state_set, ATK_STATE_INDETERMINATE);
|
| + break;
|
| + 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);
|
| }
|
|
|