OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/view_messages.h" | 9 #include "content/common/view_messages.h" |
10 | 10 |
(...skipping 14 matching lines...) Expand all Loading... |
25 BrowserAccessibilityFactory* factory) | 25 BrowserAccessibilityFactory* factory) |
26 : BrowserAccessibilityManager(parent_window, src, delegate, factory) { | 26 : BrowserAccessibilityManager(parent_window, src, delegate, factory) { |
27 } | 27 } |
28 | 28 |
29 void BrowserAccessibilityManagerMac::NotifyAccessibilityEvent( | 29 void BrowserAccessibilityManagerMac::NotifyAccessibilityEvent( |
30 int type, | 30 int type, |
31 BrowserAccessibility* node) { | 31 BrowserAccessibility* node) { |
32 // Refer to AXObjectCache.mm (webkit). | 32 // Refer to AXObjectCache.mm (webkit). |
33 NSString* event_id = @""; | 33 NSString* event_id = @""; |
34 switch (type) { | 34 switch (type) { |
35 case ViewHostMsg_AccessibilityNotification_Type:: | 35 case ViewHostMsg_AccEvent::ACTIVE_DESCENDANT_CHANGED: |
36 NOTIFICATION_TYPE_CHECK_STATE_CHANGED: | 36 if (node->role() == WebAccessibility::ROLE_TREE) |
37 // Does not exist on Mac. | 37 event_id = NSAccessibilitySelectedRowsChangedNotification; |
| 38 else |
| 39 event_id = NSAccessibilityFocusedUIElementChangedNotification; |
| 40 case ViewHostMsg_AccEvent::ALERT: |
| 41 // Not used on Mac. |
38 return; | 42 return; |
39 case ViewHostMsg_AccessibilityNotification_Type:: | 43 case ViewHostMsg_AccEvent::CHECK_STATE_CHANGED: |
40 NOTIFICATION_TYPE_CHILDREN_CHANGED: | 44 // Not used on Mac. |
| 45 return; |
| 46 case ViewHostMsg_AccEvent::CHILDREN_CHANGED: |
41 // TODO(dtseng): no clear equivalent on Mac. | 47 // TODO(dtseng): no clear equivalent on Mac. |
42 return; | 48 return; |
43 case ViewHostMsg_AccessibilityNotification_Type:: | 49 case ViewHostMsg_AccEvent::FOCUS_CHANGED: |
44 NOTIFICATION_TYPE_FOCUS_CHANGED: | |
45 event_id = NSAccessibilityFocusedUIElementChangedNotification; | 50 event_id = NSAccessibilityFocusedUIElementChangedNotification; |
46 break; | 51 break; |
47 case ViewHostMsg_AccessibilityNotification_Type:: | 52 case ViewHostMsg_AccEvent::LAYOUT_COMPLETE: |
48 NOTIFICATION_TYPE_LOAD_COMPLETE: | 53 event_id = @"AXLayoutComplete"; |
| 54 break; |
| 55 case ViewHostMsg_AccEvent::LIVE_REGION_CHANGED: |
| 56 event_id = @"AXLiveRegionChanged"; |
| 57 break; |
| 58 case ViewHostMsg_AccEvent::LOAD_COMPLETE: |
49 event_id = @"AXLoadComplete"; | 59 event_id = @"AXLoadComplete"; |
50 break; | 60 break; |
51 case ViewHostMsg_AccessibilityNotification_Type:: | 61 case ViewHostMsg_AccEvent::MENU_LIST_VALUE_CHANGED: |
52 NOTIFICATION_TYPE_VALUE_CHANGED: | 62 // Not used on Mac. |
| 63 return; |
| 64 case ViewHostMsg_AccEvent::OBJECT_SHOW: |
| 65 // Not used on Mac. |
| 66 return; |
| 67 case ViewHostMsg_AccEvent::OBJECT_HIDE: |
| 68 // Not used on Mac. |
| 69 return; |
| 70 case ViewHostMsg_AccEvent::ROW_COUNT_CHANGED: |
| 71 event_id = NSAccessibilityRowCountChangedNotification; |
| 72 break; |
| 73 case ViewHostMsg_AccEvent::ROW_COLLAPSED: |
| 74 event_id = @"AXRowCollapsed"; |
| 75 break; |
| 76 case ViewHostMsg_AccEvent::ROW_EXPANDED: |
| 77 event_id = @"AXRowExpanded"; |
| 78 break; |
| 79 case ViewHostMsg_AccEvent::SCROLLED_TO_ANCHOR: |
| 80 // Not used on Mac. |
| 81 return; |
| 82 case ViewHostMsg_AccEvent::SELECTED_CHILDREN_CHANGED: |
| 83 event_id = NSAccessibilitySelectedChildrenChangedNotification; |
| 84 break; |
| 85 case ViewHostMsg_AccEvent::SELECTED_TEXT_CHANGED: |
| 86 event_id = NSAccessibilitySelectedTextChangedNotification; |
| 87 break; |
| 88 case ViewHostMsg_AccEvent::TEXT_INSERTED: |
| 89 // Not used on Mac. |
| 90 return; |
| 91 case ViewHostMsg_AccEvent::TEXT_REMOVED: |
| 92 // Not used on Mac. |
| 93 return; |
| 94 case ViewHostMsg_AccEvent::VALUE_CHANGED: |
53 event_id = NSAccessibilityValueChangedNotification; | 95 event_id = NSAccessibilityValueChangedNotification; |
54 break; | 96 break; |
55 case ViewHostMsg_AccessibilityNotification_Type:: | |
56 NOTIFICATION_TYPE_SELECTED_TEXT_CHANGED: | |
57 event_id = NSAccessibilitySelectedTextChangedNotification; | |
58 break; | |
59 } | 97 } |
60 BrowserAccessibilityCocoa* native_node = node->toBrowserAccessibilityCocoa(); | 98 BrowserAccessibilityCocoa* native_node = node->toBrowserAccessibilityCocoa(); |
61 DCHECK(native_node); | 99 DCHECK(native_node); |
62 NSAccessibilityPostNotification(native_node, event_id); | 100 NSAccessibilityPostNotification(native_node, event_id); |
63 } | 101 } |
OLD | NEW |