OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/browser/accessibility/browser_accessibility_manager_mac.h" | 5 #include "content/browser/accessibility/browser_accessibility_manager_mac.h" |
6 | 6 |
7 #import "base/logging.h" | 7 #import "base/logging.h" |
8 #import "content/browser/accessibility/browser_accessibility_cocoa.h" | 8 #import "content/browser/accessibility/browser_accessibility_cocoa.h" |
9 #include "content/common/accessibility_messages.h" | 9 #include "content/common/accessibility_messages.h" |
10 | 10 |
11 namespace content { | 11 namespace content { |
12 | 12 |
13 // static | 13 // static |
14 BrowserAccessibilityManager* BrowserAccessibilityManager::Create( | 14 BrowserAccessibilityManager* BrowserAccessibilityManager::Create( |
15 const AccessibilityNodeData& src, | 15 const ui::AXNodeData& src, |
16 BrowserAccessibilityDelegate* delegate, | 16 BrowserAccessibilityDelegate* delegate, |
17 BrowserAccessibilityFactory* factory) { | 17 BrowserAccessibilityFactory* factory) { |
18 return new BrowserAccessibilityManagerMac(NULL, src, delegate, factory); | 18 return new BrowserAccessibilityManagerMac(NULL, src, delegate, factory); |
19 } | 19 } |
20 | 20 |
21 BrowserAccessibilityManagerMac::BrowserAccessibilityManagerMac( | 21 BrowserAccessibilityManagerMac::BrowserAccessibilityManagerMac( |
22 NSView* parent_view, | 22 NSView* parent_view, |
23 const AccessibilityNodeData& src, | 23 const ui::AXNodeData& src, |
24 BrowserAccessibilityDelegate* delegate, | 24 BrowserAccessibilityDelegate* delegate, |
25 BrowserAccessibilityFactory* factory) | 25 BrowserAccessibilityFactory* factory) |
26 : BrowserAccessibilityManager(src, delegate, factory), | 26 : BrowserAccessibilityManager(src, delegate, factory), |
27 parent_view_(parent_view) { | 27 parent_view_(parent_view) { |
28 } | 28 } |
29 | 29 |
30 // static | 30 // static |
31 AccessibilityNodeData BrowserAccessibilityManagerMac::GetEmptyDocument() { | 31 ui::AXNodeData BrowserAccessibilityManagerMac::GetEmptyDocument() { |
32 AccessibilityNodeData empty_document; | 32 ui::AXNodeData empty_document; |
33 empty_document.id = 0; | 33 empty_document.id = 0; |
34 empty_document.role = blink::WebAXRoleRootWebArea; | 34 empty_document.role = ui::AX_ROLE_ROOT_WEB_AREA; |
35 empty_document.state = | 35 empty_document.state = |
36 1 << blink::WebAXStateReadonly; | 36 1 << ui::AX_STATE_READONLY; |
37 return empty_document; | 37 return empty_document; |
38 } | 38 } |
39 | 39 |
40 void BrowserAccessibilityManagerMac::NotifyAccessibilityEvent( | 40 void BrowserAccessibilityManagerMac::NotifyAccessibilityEvent( |
41 blink::WebAXEvent event_type, | 41 ui::AXEvent event_type, |
42 BrowserAccessibility* node) { | 42 BrowserAccessibility* node) { |
43 if (!node->IsNative()) | 43 if (!node->IsNative()) |
44 return; | 44 return; |
45 | 45 |
46 // Refer to AXObjectCache.mm (webkit). | 46 // Refer to AXObjectCache.mm (webkit). |
47 NSString* event_id = @""; | 47 NSString* event_id = @""; |
48 switch (event_type) { | 48 switch (event_type) { |
49 case blink::WebAXEventActiveDescendantChanged: | 49 case ui::AX_EVENT_ACTIVEDESCENDANTCHANGED: |
50 if (node->role() == blink::WebAXRoleTree) | 50 if (node->role() == ui::AX_ROLE_TREE) |
51 event_id = NSAccessibilitySelectedRowsChangedNotification; | 51 event_id = NSAccessibilitySelectedRowsChangedNotification; |
52 else | 52 else |
53 event_id = NSAccessibilityFocusedUIElementChangedNotification; | 53 event_id = NSAccessibilityFocusedUIElementChangedNotification; |
54 break; | 54 break; |
55 case blink::WebAXEventAlert: | 55 case ui::AX_EVENT_ALERT: |
56 // Not used on Mac. | 56 // Not used on Mac. |
57 return; | 57 return; |
58 case blink::WebAXEventBlur: | 58 case ui::AX_EVENT_BLUR: |
59 // A no-op on Mac. | 59 // A no-op on Mac. |
60 return; | 60 return; |
61 case blink::WebAXEventCheckedStateChanged: | 61 case ui::AX_EVENT_CHECKED_STATE_CHANGED: |
62 // Not used on Mac. | 62 // Not used on Mac. |
63 return; | 63 return; |
64 case blink::WebAXEventChildrenChanged: | 64 case ui::AX_EVENT_CHILDREN_CHANGED: |
65 // TODO(dtseng): no clear equivalent on Mac. | 65 // TODO(dtseng): no clear equivalent on Mac. |
66 return; | 66 return; |
67 case blink::WebAXEventFocus: | 67 case ui::AX_EVENT_FOCUS: |
68 event_id = NSAccessibilityFocusedUIElementChangedNotification; | 68 event_id = NSAccessibilityFocusedUIElementChangedNotification; |
69 break; | 69 break; |
70 case blink::WebAXEventLayoutComplete: | 70 case ui::AX_EVENT_LAYOUT_COMPLETE: |
71 event_id = @"AXLayoutComplete"; | 71 event_id = @"AXLayoutComplete"; |
72 break; | 72 break; |
73 case blink::WebAXEventLiveRegionChanged: | 73 case ui::AX_EVENT_LIVE_REGION_CHANGED: |
74 event_id = @"AXLiveRegionChanged"; | 74 event_id = @"AXLiveRegionChanged"; |
75 break; | 75 break; |
76 case blink::WebAXEventLoadComplete: | 76 case ui::AX_EVENT_LOAD_COMPLETE: |
77 event_id = @"AXLoadComplete"; | 77 event_id = @"AXLoadComplete"; |
78 break; | 78 break; |
79 case blink::WebAXEventMenuListValueChanged: | 79 case ui::AX_EVENT_MENU_LIST_VALUE_CHANGED: |
80 // Not used on Mac. | 80 // Not used on Mac. |
81 return; | 81 return; |
82 case blink::WebAXEventShow: | 82 case ui::AX_EVENT_SHOW: |
83 // Not used on Mac. | 83 // Not used on Mac. |
84 return; | 84 return; |
85 case blink::WebAXEventHide: | 85 case ui::AX_EVENT_HIDE: |
86 // Not used on Mac. | 86 // Not used on Mac. |
87 return; | 87 return; |
88 case blink::WebAXEventRowCountChanged: | 88 case ui::AX_EVENT_ROW_COUNT_CHANGED: |
89 event_id = NSAccessibilityRowCountChangedNotification; | 89 event_id = NSAccessibilityRowCountChangedNotification; |
90 break; | 90 break; |
91 case blink::WebAXEventRowCollapsed: | 91 case ui::AX_EVENT_ROW_COLLAPSED: |
92 event_id = @"AXRowCollapsed"; | 92 event_id = @"AXRowCollapsed"; |
93 break; | 93 break; |
94 case blink::WebAXEventRowExpanded: | 94 case ui::AX_EVENT_ROW_EXPANDED: |
95 event_id = @"AXRowExpanded"; | 95 event_id = @"AXRowExpanded"; |
96 break; | 96 break; |
97 case blink::WebAXEventScrolledToAnchor: | 97 case ui::AX_EVENT_SCROLLED_TO_ANCHOR: |
98 // Not used on Mac. | 98 // Not used on Mac. |
99 return; | 99 return; |
100 case blink::WebAXEventSelectedChildrenChanged: | 100 case ui::AX_EVENT_SELECTED_CHILDREN_CHANGED: |
101 event_id = NSAccessibilitySelectedChildrenChangedNotification; | 101 event_id = NSAccessibilitySelectedChildrenChangedNotification; |
102 break; | 102 break; |
103 case blink::WebAXEventSelectedTextChanged: | 103 case ui::AX_EVENT_SELECTED_TEXT_CHANGED: |
104 event_id = NSAccessibilitySelectedTextChangedNotification; | 104 event_id = NSAccessibilitySelectedTextChangedNotification; |
105 break; | 105 break; |
106 case blink::WebAXEventTextInserted: | 106 case ui::AX_EVENT_TEXT_INSERTED: |
107 // Not used on Mac. | 107 // Not used on Mac. |
108 return; | 108 return; |
109 case blink::WebAXEventTextRemoved: | 109 case ui::AX_EVENT_TEXT_REMOVED: |
110 // Not used on Mac. | 110 // Not used on Mac. |
111 return; | 111 return; |
112 case blink::WebAXEventValueChanged: | 112 case ui::AX_EVENT_VALUE_CHANGED: |
113 event_id = NSAccessibilityValueChangedNotification; | 113 event_id = NSAccessibilityValueChangedNotification; |
114 break; | 114 break; |
115 case blink::WebAXEventAriaAttributeChanged: | 115 case ui::AX_EVENT_ARIA_ATTRIBUTE_CHANGED: |
116 // Not used on Mac. | 116 // Not used on Mac. |
117 return; | 117 return; |
118 case blink::WebAXEventAutocorrectionOccured: | 118 case ui::AX_EVENT_AUTOCORRECTION_OCCURED: |
119 // Not used on Mac. | 119 // Not used on Mac. |
120 return; | 120 return; |
121 case blink::WebAXEventInvalidStatusChanged: | 121 case ui::AX_EVENT_INVALID_STATUS_CHANGED: |
122 // Not used on Mac. | 122 // Not used on Mac. |
123 return; | 123 return; |
124 case blink::WebAXEventLocationChanged: | 124 case ui::AX_EVENT_LOCATION_CHANGED: |
125 // Not used on Mac. | 125 // Not used on Mac. |
126 return; | 126 return; |
127 case blink::WebAXEventMenuListItemSelected: | 127 case ui::AX_EVENT_MENU_LIST_ITEM_SELECTED: |
128 // Not used on Mac. | 128 // Not used on Mac. |
129 return; | 129 return; |
130 case blink::WebAXEventTextChanged: | 130 case ui::AX_EVENT_TEXT_CHANGED: |
131 // Not used on Mac. | 131 // Not used on Mac. |
132 return; | 132 return; |
133 default: | 133 default: |
134 LOG(WARNING) << "Unknown accessibility event: " << event_type; | 134 LOG(WARNING) << "Unknown accessibility event: " << event_type; |
135 return; | 135 return; |
136 } | 136 } |
137 BrowserAccessibilityCocoa* native_node = node->ToBrowserAccessibilityCocoa(); | 137 BrowserAccessibilityCocoa* native_node = node->ToBrowserAccessibilityCocoa(); |
138 DCHECK(native_node); | 138 DCHECK(native_node); |
139 NSAccessibilityPostNotification(native_node, event_id); | 139 NSAccessibilityPostNotification(native_node, event_id); |
140 } | 140 } |
141 | 141 |
142 } // namespace content | 142 } // namespace content |
OLD | NEW |