Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(76)

Side by Side Diff: content/browser/accessibility/browser_accessibility_manager_mac.mm

Issue 7745035: Add a big grab bag of missing web accessibility functionality... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698