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

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

Issue 25943003: Support accessible inline text boxes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix typo Created 7 years, 1 month 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) 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 <execinfo.h> 5 #include <execinfo.h>
6 6
7 #import "content/browser/accessibility/browser_accessibility_cocoa.h" 7 #import "content/browser/accessibility/browser_accessibility_cocoa.h"
8 8
9 #include <map> 9 #include <map>
10 10
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 346
347 - (NSString*)ariaRelevant { 347 - (NSString*)ariaRelevant {
348 return NSStringForStringAttribute( 348 return NSStringForStringAttribute(
349 browserAccessibility_, AccessibilityNodeData::ATTR_LIVE_RELEVANT); 349 browserAccessibility_, AccessibilityNodeData::ATTR_LIVE_RELEVANT);
350 } 350 }
351 351
352 // Returns an array of BrowserAccessibilityCocoa objects, representing the 352 // Returns an array of BrowserAccessibilityCocoa objects, representing the
353 // accessibility children of this object. 353 // accessibility children of this object.
354 - (NSArray*)children { 354 - (NSArray*)children {
355 if (!children_) { 355 if (!children_) {
356 children_.reset([[NSMutableArray alloc] 356 uint32 childCount = browserAccessibility_->PlatformChildCount();
357 initWithCapacity:browserAccessibility_->child_count()] ); 357 children_.reset([[NSMutableArray alloc] initWithCapacity:childCount]);
358 for (uint32 index = 0; 358 for (uint32 index = 0; index < childCount; ++index) {
359 index < browserAccessibility_->child_count();
360 ++index) {
361 BrowserAccessibilityCocoa* child = 359 BrowserAccessibilityCocoa* child =
362 browserAccessibility_->GetChild(index)->ToBrowserAccessibilityCocoa(); 360 browserAccessibility_->PlatformGetChild(index)->
361 ToBrowserAccessibilityCocoa();
363 if ([child isIgnored]) 362 if ([child isIgnored])
364 [children_ addObjectsFromArray:[child children]]; 363 [children_ addObjectsFromArray:[child children]];
365 else 364 else
366 [children_ addObject:child]; 365 [children_ addObject:child];
367 } 366 }
368 367
369 // Also, add indirect children (if any). 368 // Also, add indirect children (if any).
370 const std::vector<int32>& indirectChildIds = 369 const std::vector<int32>& indirectChildIds =
371 browserAccessibility_->GetIntListAttribute( 370 browserAccessibility_->GetIntListAttribute(
372 AccessibilityNodeData::ATTR_INDIRECT_CHILD_IDS); 371 AccessibilityNodeData::ATTR_INDIRECT_CHILD_IDS);
(...skipping 671 matching lines...) Expand 10 before | Expand all | Expand 10 after
1044 int row = [[array objectAtIndex:1] intValue]; 1043 int row = [[array objectAtIndex:1] intValue];
1045 int num_columns = browserAccessibility_->GetIntAttribute( 1044 int num_columns = browserAccessibility_->GetIntAttribute(
1046 AccessibilityNodeData::ATTR_TABLE_COLUMN_COUNT); 1045 AccessibilityNodeData::ATTR_TABLE_COLUMN_COUNT);
1047 int num_rows = browserAccessibility_->GetIntAttribute( 1046 int num_rows = browserAccessibility_->GetIntAttribute(
1048 AccessibilityNodeData::ATTR_TABLE_ROW_COUNT); 1047 AccessibilityNodeData::ATTR_TABLE_ROW_COUNT);
1049 if (column < 0 || column >= num_columns || 1048 if (column < 0 || column >= num_columns ||
1050 row < 0 || row >= num_rows) { 1049 row < 0 || row >= num_rows) {
1051 return nil; 1050 return nil;
1052 } 1051 }
1053 for (size_t i = 0; 1052 for (size_t i = 0;
1054 i < browserAccessibility_->child_count(); 1053 i < browserAccessibility_->PlatformChildCount();
1055 ++i) { 1054 ++i) {
1056 BrowserAccessibility* child = browserAccessibility_->GetChild(i); 1055 BrowserAccessibility* child = browserAccessibility_->PlatformGetChild(i);
1057 if (child->role() != WebKit::WebAXRoleRow) 1056 if (child->role() != WebKit::WebAXRoleRow)
1058 continue; 1057 continue;
1059 int rowIndex; 1058 int rowIndex;
1060 if (!child->GetIntAttribute( 1059 if (!child->GetIntAttribute(
1061 AccessibilityNodeData::ATTR_TABLE_ROW_INDEX, &rowIndex)) { 1060 AccessibilityNodeData::ATTR_TABLE_ROW_INDEX, &rowIndex)) {
1062 continue; 1061 continue;
1063 } 1062 }
1064 if (rowIndex < row) 1063 if (rowIndex < row)
1065 continue; 1064 continue;
1066 if (rowIndex > row) 1065 if (rowIndex > row)
1067 break; 1066 break;
1068 for (size_t j = 0; 1067 for (size_t j = 0;
1069 j < child->child_count(); 1068 j < child->PlatformChildCount();
1070 ++j) { 1069 ++j) {
1071 BrowserAccessibility* cell = child->GetChild(j); 1070 BrowserAccessibility* cell = child->PlatformGetChild(j);
1072 if (cell->role() != WebKit::WebAXRoleCell) 1071 if (cell->role() != WebKit::WebAXRoleCell)
1073 continue; 1072 continue;
1074 int colIndex; 1073 int colIndex;
1075 if (!cell->GetIntAttribute( 1074 if (!cell->GetIntAttribute(
1076 AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_INDEX, 1075 AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_INDEX,
1077 &colIndex)) { 1076 &colIndex)) {
1078 continue; 1077 continue;
1079 } 1078 }
1080 if (colIndex == column) 1079 if (colIndex == column)
1081 return cell->ToBrowserAccessibilityCocoa(); 1080 return cell->ToBrowserAccessibilityCocoa();
(...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after
1451 return [super hash]; 1450 return [super hash];
1452 return browserAccessibility_->renderer_id(); 1451 return browserAccessibility_->renderer_id();
1453 } 1452 }
1454 1453
1455 - (BOOL)accessibilityShouldUseUniqueId { 1454 - (BOOL)accessibilityShouldUseUniqueId {
1456 return YES; 1455 return YES;
1457 } 1456 }
1458 1457
1459 @end 1458 @end
1460 1459
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698