OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/renderer/accessibility/blink_ax_enum_conversion.h" | 5 #include "content/renderer/accessibility/blink_ax_enum_conversion.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 | 8 |
9 namespace content { | 9 namespace content { |
10 | 10 |
11 uint32 AXStateFromBlink(const blink::WebAXObject& o) { | 11 uint32 AXStateFromBlink(const blink::WebAXObject& o) { |
12 uint32 state = 0; | 12 uint32 state = 0; |
13 if (o.isChecked()) | 13 if (o.isChecked()) |
14 state |= (1 << ui::AX_STATE_CHECKED); | 14 state |= (1 << ui::AX_STATE_CHECKED); |
15 | 15 |
16 if (o.isCollapsed()) | 16 blink::WebAXExpanded expanded = o.isExpanded(); |
17 state |= (1 << ui::AX_STATE_COLLAPSED); | 17 if (expanded) { |
| 18 if (expanded == blink::WebAXExpandedCollapsed) |
| 19 state |= (1 << ui::AX_STATE_COLLAPSED); |
| 20 else if (expanded == blink::WebAXExpandedExpanded) |
| 21 state |= (1 << ui::AX_STATE_EXPANDED); |
| 22 } |
18 | 23 |
19 if (o.canSetFocusAttribute()) | 24 if (o.canSetFocusAttribute()) |
20 state |= (1 << ui::AX_STATE_FOCUSABLE); | 25 state |= (1 << ui::AX_STATE_FOCUSABLE); |
21 | 26 |
22 if (o.isFocused()) | 27 if (o.isFocused()) |
23 state |= (1 << ui::AX_STATE_FOCUSED); | 28 state |= (1 << ui::AX_STATE_FOCUSED); |
24 | 29 |
25 if (o.role() == blink::WebAXRolePopUpButton || | 30 if (o.role() == blink::WebAXRolePopUpButton || |
26 o.ariaHasPopup()) { | 31 o.ariaHasPopup()) |
27 state |= (1 << ui::AX_STATE_HASPOPUP); | 32 state |= (1 << ui::AX_STATE_HASPOPUP); |
28 if (!o.isCollapsed()) | |
29 state |= (1 << ui::AX_STATE_EXPANDED); | |
30 } | |
31 | 33 |
32 if (o.isHovered()) | 34 if (o.isHovered()) |
33 state |= (1 << ui::AX_STATE_HOVERED); | 35 state |= (1 << ui::AX_STATE_HOVERED); |
34 | 36 |
35 if (o.isIndeterminate()) | 37 if (o.isIndeterminate()) |
36 state |= (1 << ui::AX_STATE_INDETERMINATE); | 38 state |= (1 << ui::AX_STATE_INDETERMINATE); |
37 | 39 |
38 if (!o.isVisible()) | 40 if (!o.isVisible()) |
39 state |= (1 << ui::AX_STATE_INVISIBLE); | 41 state |= (1 << ui::AX_STATE_INVISIBLE); |
40 | 42 |
(...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
410 case blink::WebAXTextDirectionBT: | 412 case blink::WebAXTextDirectionBT: |
411 return ui::AX_TEXT_DIRECTION_BT; | 413 return ui::AX_TEXT_DIRECTION_BT; |
412 default: | 414 default: |
413 NOTREACHED(); | 415 NOTREACHED(); |
414 } | 416 } |
415 | 417 |
416 return ui::AX_TEXT_DIRECTION_NONE; | 418 return ui::AX_TEXT_DIRECTION_NONE; |
417 } | 419 } |
418 | 420 |
419 } // namespace content | 421 } // namespace content |
OLD | NEW |