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

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

Issue 2969603002: Move two BrowserAccessibility role predicates to ax_role_properties. (Closed)
Patch Set: macos Created 3 years, 5 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
OLDNEW
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 #import "content/browser/accessibility/browser_accessibility_cocoa.h" 5 #import "content/browser/accessibility/browser_accessibility_cocoa.h"
6 6
7 #include <execinfo.h> 7 #include <execinfo.h>
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 #include <string.h> 10 #include <string.h>
(...skipping 864 matching lines...) Expand 10 before | Expand all | Expand 10 after
875 std::string basename = 875 std::string basename =
876 leftIndex != std::string::npos ? url.substr(leftIndex) : url; 876 leftIndex != std::string::npos ? url.substr(leftIndex) : url;
877 return base::SysUTF8ToNSString(basename); 877 return base::SysUTF8ToNSString(basename);
878 } 878 }
879 } 879 }
880 880
881 // If it's focusable but didn't have any other name or value, compute a name 881 // If it's focusable but didn't have any other name or value, compute a name
882 // from its descendants. 882 // from its descendants.
883 base::string16 value = browserAccessibility_->GetValue(); 883 base::string16 value = browserAccessibility_->GetValue();
884 if (browserAccessibility_->HasState(ui::AX_STATE_FOCUSABLE) && 884 if (browserAccessibility_->HasState(ui::AX_STATE_FOCUSABLE) &&
885 !browserAccessibility_->IsControl() && 885 !IsControl(browserAccessibility_->GetRole()) && value.empty() &&
886 value.empty() &&
887 [self internalRole] != ui::AX_ROLE_DATE_TIME && 886 [self internalRole] != ui::AX_ROLE_DATE_TIME &&
888 [self internalRole] != ui::AX_ROLE_WEB_AREA && 887 [self internalRole] != ui::AX_ROLE_WEB_AREA &&
889 [self internalRole] != ui::AX_ROLE_ROOT_WEB_AREA) { 888 [self internalRole] != ui::AX_ROLE_ROOT_WEB_AREA) {
890 return base::SysUTF8ToNSString( 889 return base::SysUTF8ToNSString(
891 browserAccessibility_->ComputeAccessibleNameFromDescendants()); 890 browserAccessibility_->ComputeAccessibleNameFromDescendants());
892 } 891 }
893 892
894 return @""; 893 return @"";
895 } 894 }
896 895
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after
1296 } 1295 }
1297 } 1296 }
1298 1297
1299 // Returns true if this object should expose its accessible name using 1298 // Returns true if this object should expose its accessible name using
1300 // AXTitleUIElement rather than AXTitle or AXDescription. We only do 1299 // AXTitleUIElement rather than AXTitle or AXDescription. We only do
1301 // this if it's a control, if there's a single label, and the label has 1300 // this if it's a control, if there's a single label, and the label has
1302 // nonempty text. 1301 // nonempty text.
1303 // internal 1302 // internal
1304 - (BOOL)shouldExposeTitleUIElement { 1303 - (BOOL)shouldExposeTitleUIElement {
1305 // VoiceOver ignores TitleUIElement if the element isn't a control. 1304 // VoiceOver ignores TitleUIElement if the element isn't a control.
1306 if (!browserAccessibility_->IsControl()) 1305 if (!IsControl(browserAccessibility_->GetRole()))
1307 return false; 1306 return false;
1308 1307
1309 ui::AXNameFrom nameFrom = static_cast<ui::AXNameFrom>( 1308 ui::AXNameFrom nameFrom = static_cast<ui::AXNameFrom>(
1310 browserAccessibility_->GetIntAttribute(ui::AX_ATTR_NAME_FROM)); 1309 browserAccessibility_->GetIntAttribute(ui::AX_ATTR_NAME_FROM));
1311 if (nameFrom != ui::AX_NAME_FROM_RELATED_ELEMENT) 1310 if (nameFrom != ui::AX_NAME_FROM_RELATED_ELEMENT)
1312 return false; 1311 return false;
1313 1312
1314 std::vector<int32_t> labelledby_ids = 1313 std::vector<int32_t> labelledby_ids =
1315 browserAccessibility_->GetIntListAttribute(ui::AX_ATTR_LABELLEDBY_IDS); 1314 browserAccessibility_->GetIntListAttribute(ui::AX_ATTR_LABELLEDBY_IDS);
1316 if (labelledby_ids.size() != 1) 1315 if (labelledby_ids.size() != 1)
(...skipping 1182 matching lines...) Expand 10 before | Expand all | Expand 10 after
2499 return nil; 2498 return nil;
2500 2499
2501 NSMutableArray* actions = [NSMutableArray 2500 NSMutableArray* actions = [NSMutableArray
2502 arrayWithObjects:NSAccessibilityShowMenuAction, 2501 arrayWithObjects:NSAccessibilityShowMenuAction,
2503 NSAccessibilityScrollToVisibleAction, nil]; 2502 NSAccessibilityScrollToVisibleAction, nil];
2504 2503
2505 // VoiceOver expects the "press" action to be first. 2504 // VoiceOver expects the "press" action to be first.
2506 if (browserAccessibility_->IsClickable()) 2505 if (browserAccessibility_->IsClickable())
2507 [actions insertObject:NSAccessibilityPressAction atIndex:0]; 2506 [actions insertObject:NSAccessibilityPressAction atIndex:0];
2508 2507
2509 if (browserAccessibility_->IsMenuRelated()) 2508 if (IsMenuRelated(browserAccessibility_->GetRole()))
2510 [actions addObject:NSAccessibilityCancelAction]; 2509 [actions addObject:NSAccessibilityCancelAction];
2511 2510
2512 if ([self internalRole] == ui::AX_ROLE_SLIDER) { 2511 if ([self internalRole] == ui::AX_ROLE_SLIDER) {
2513 [actions addObjectsFromArray:@[ 2512 [actions addObjectsFromArray:@[
2514 NSAccessibilityIncrementAction, NSAccessibilityDecrementAction 2513 NSAccessibilityIncrementAction, NSAccessibilityDecrementAction
2515 ]]; 2514 ]];
2516 } 2515 }
2517 2516
2518 return actions; 2517 return actions;
2519 } 2518 }
(...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after
2883 } 2882 }
2884 2883
2885 - (BOOL)accessibilityNotifiesWhenDestroyed { 2884 - (BOOL)accessibilityNotifiesWhenDestroyed {
2886 // Indicate that BrowserAccessibilityCocoa will post a notification when it's 2885 // Indicate that BrowserAccessibilityCocoa will post a notification when it's
2887 // destroyed (see -detach). This allows VoiceOver to do some internal things 2886 // destroyed (see -detach). This allows VoiceOver to do some internal things
2888 // more efficiently. 2887 // more efficiently.
2889 return YES; 2888 return YES;
2890 } 2889 }
2891 2890
2892 @end 2891 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698