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 #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 760 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
771 children_.reset(); | 771 children_.reset(); |
772 } else { | 772 } else { |
773 [ToBrowserAccessibilityCocoa(browserAccessibility_->PlatformGetParent()) | 773 [ToBrowserAccessibilityCocoa(browserAccessibility_->PlatformGetParent()) |
774 childrenChanged]; | 774 childrenChanged]; |
775 } | 775 } |
776 } | 776 } |
777 | 777 |
778 - (NSArray*)columnHeaders { | 778 - (NSArray*)columnHeaders { |
779 if (![self instanceActive]) | 779 if (![self instanceActive]) |
780 return nil; | 780 return nil; |
781 if ([self internalRole] != ui::AX_ROLE_TABLE && | 781 if (!browserAccessibility_->IsTableOrGridOrTreeGridRole()) { |
782 [self internalRole] != ui::AX_ROLE_GRID) { | |
783 return nil; | 782 return nil; |
784 } | 783 } |
785 | 784 |
786 NSMutableArray* ret = [[[NSMutableArray alloc] init] autorelease]; | 785 NSMutableArray* ret = [[[NSMutableArray alloc] init] autorelease]; |
787 const std::vector<int32_t>& uniqueCellIds = | 786 const std::vector<int32_t>& uniqueCellIds = |
788 browserAccessibility_->GetIntListAttribute(ui::AX_ATTR_UNIQUE_CELL_IDS); | 787 browserAccessibility_->GetIntListAttribute(ui::AX_ATTR_UNIQUE_CELL_IDS); |
789 for (size_t i = 0; i < uniqueCellIds.size(); ++i) { | 788 for (size_t i = 0; i < uniqueCellIds.size(); ++i) { |
790 int id = uniqueCellIds[i]; | 789 int id = uniqueCellIds[i]; |
791 BrowserAccessibility* cell = | 790 BrowserAccessibility* cell = |
792 browserAccessibility_->manager()->GetFromID(id); | 791 browserAccessibility_->manager()->GetFromID(id); |
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1000 grabbed == "true") | 999 grabbed == "true") |
1001 return [NSNumber numberWithBool:YES]; | 1000 return [NSNumber numberWithBool:YES]; |
1002 | 1001 |
1003 return [NSNumber numberWithBool:NO]; | 1002 return [NSNumber numberWithBool:NO]; |
1004 } | 1003 } |
1005 | 1004 |
1006 - (id)header { | 1005 - (id)header { |
1007 if (![self instanceActive]) | 1006 if (![self instanceActive]) |
1008 return nil; | 1007 return nil; |
1009 int headerElementId = -1; | 1008 int headerElementId = -1; |
1010 if ([self internalRole] == ui::AX_ROLE_TABLE || | 1009 if (browserAccessibility_->IsTableOrGridOrTreeGridRole()) { |
1011 [self internalRole] == ui::AX_ROLE_GRID) { | |
1012 browserAccessibility_->GetIntAttribute( | 1010 browserAccessibility_->GetIntAttribute( |
1013 ui::AX_ATTR_TABLE_HEADER_ID, &headerElementId); | 1011 ui::AX_ATTR_TABLE_HEADER_ID, &headerElementId); |
1014 } else if ([self internalRole] == ui::AX_ROLE_COLUMN) { | 1012 } else if ([self internalRole] == ui::AX_ROLE_COLUMN) { |
1015 browserAccessibility_->GetIntAttribute( | 1013 browserAccessibility_->GetIntAttribute( |
1016 ui::AX_ATTR_TABLE_COLUMN_HEADER_ID, &headerElementId); | 1014 ui::AX_ATTR_TABLE_COLUMN_HEADER_ID, &headerElementId); |
1017 } else if ([self internalRole] == ui::AX_ROLE_ROW) { | 1015 } else if ([self internalRole] == ui::AX_ROLE_ROW) { |
1018 browserAccessibility_->GetIntAttribute( | 1016 browserAccessibility_->GetIntAttribute( |
1019 ui::AX_ATTR_TABLE_ROW_HEADER_ID, &headerElementId); | 1017 ui::AX_ATTR_TABLE_ROW_HEADER_ID, &headerElementId); |
1020 } | 1018 } |
1021 | 1019 |
(...skipping 487 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1509 default: | 1507 default: |
1510 break; | 1508 break; |
1511 } | 1509 } |
1512 | 1510 |
1513 return NSAccessibilityRoleDescription(role, nil); | 1511 return NSAccessibilityRoleDescription(role, nil); |
1514 } | 1512 } |
1515 | 1513 |
1516 - (NSArray*)rowHeaders { | 1514 - (NSArray*)rowHeaders { |
1517 if (![self instanceActive]) | 1515 if (![self instanceActive]) |
1518 return nil; | 1516 return nil; |
1519 if ([self internalRole] != ui::AX_ROLE_TABLE && | 1517 if (!browserAccessibility_->IsTableOrGridOrTreeGridRole()) { |
1520 [self internalRole] != ui::AX_ROLE_GRID) { | |
1521 return nil; | 1518 return nil; |
1522 } | 1519 } |
1523 | 1520 |
1524 NSMutableArray* ret = [[[NSMutableArray alloc] init] autorelease]; | 1521 NSMutableArray* ret = [[[NSMutableArray alloc] init] autorelease]; |
1525 const std::vector<int32_t>& uniqueCellIds = | 1522 const std::vector<int32_t>& uniqueCellIds = |
1526 browserAccessibility_->GetIntListAttribute(ui::AX_ATTR_UNIQUE_CELL_IDS); | 1523 browserAccessibility_->GetIntListAttribute(ui::AX_ATTR_UNIQUE_CELL_IDS); |
1527 for (size_t i = 0; i < uniqueCellIds.size(); ++i) { | 1524 for (size_t i = 0; i < uniqueCellIds.size(); ++i) { |
1528 int id = uniqueCellIds[i]; | 1525 int id = uniqueCellIds[i]; |
1529 BrowserAccessibility* cell = | 1526 BrowserAccessibility* cell = |
1530 browserAccessibility_->manager()->GetFromID(id); | 1527 browserAccessibility_->manager()->GetFromID(id); |
(...skipping 1368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2899 } | 2896 } |
2900 | 2897 |
2901 - (BOOL)accessibilityNotifiesWhenDestroyed { | 2898 - (BOOL)accessibilityNotifiesWhenDestroyed { |
2902 // Indicate that BrowserAccessibilityCocoa will post a notification when it's | 2899 // Indicate that BrowserAccessibilityCocoa will post a notification when it's |
2903 // destroyed (see -detach). This allows VoiceOver to do some internal things | 2900 // destroyed (see -detach). This allows VoiceOver to do some internal things |
2904 // more efficiently. | 2901 // more efficiently. |
2905 return YES; | 2902 return YES; |
2906 } | 2903 } |
2907 | 2904 |
2908 @end | 2905 @end |
OLD | NEW |