| 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 <execinfo.h> | 5 #include <execinfo.h> |
| 6 | 6 |
| 7 #import "chrome/browser/accessibility/browser_accessibility_cocoa.h" | 7 #import "chrome/browser/accessibility/browser_accessibility_cocoa.h" |
| 8 | 8 |
| 9 #include "app/l10n_util_mac.h" | 9 #include "app/l10n_util_mac.h" |
| 10 #include "base/string16.h" | 10 #include "base/string16.h" |
| (...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 237 } | 237 } |
| 238 if ([attribute isEqualToString:NSAccessibilityFocusedAttribute]) { | 238 if ([attribute isEqualToString:NSAccessibilityFocusedAttribute]) { |
| 239 NSNumber* ret = [NSNumber numberWithBool: | 239 NSNumber* ret = [NSNumber numberWithBool: |
| 240 GetState(browserAccessibility_, WebAccessibility::STATE_FOCUSED)]; | 240 GetState(browserAccessibility_, WebAccessibility::STATE_FOCUSED)]; |
| 241 return ret; | 241 return ret; |
| 242 } | 242 } |
| 243 if ([attribute isEqualToString:NSAccessibilityEnabledAttribute]) { | 243 if ([attribute isEqualToString:NSAccessibilityEnabledAttribute]) { |
| 244 return [NSNumber numberWithBool: | 244 return [NSNumber numberWithBool: |
| 245 !GetState(browserAccessibility_, WebAccessibility::STATE_UNAVAILABLE)]; | 245 !GetState(browserAccessibility_, WebAccessibility::STATE_UNAVAILABLE)]; |
| 246 } | 246 } |
| 247 if ([attribute isEqualToString:@"AXVisited"]) { |
| 248 return [NSNumber numberWithBool: |
| 249 GetState(browserAccessibility_, WebAccessibility::STATE_TRAVERSED)]; |
| 250 } |
| 247 | 251 |
| 248 // AXWebArea attributes. | 252 // AXWebArea attributes. |
| 249 if ([attribute isEqualToString:@"AXLoaded"]) | 253 if ([attribute isEqualToString:@"AXLoaded"]) |
| 250 return [NSNumber numberWithBool:YES]; | 254 return [NSNumber numberWithBool:YES]; |
| 251 if ([attribute isEqualToString:@"AXURL"]) { | 255 if ([attribute isEqualToString:@"AXURL"]) { |
| 256 WebAccessibility::Attribute urlAttribute = |
| 257 [[self role] isEqualToString:@"AXWebArea"] ? |
| 258 WebAccessibility::ATTR_DOC_URL : |
| 259 WebAccessibility::ATTR_LINK_TARGET; |
| 252 return NSStringForWebAccessibilityAttribute( | 260 return NSStringForWebAccessibilityAttribute( |
| 253 browserAccessibility_->attributes(), | 261 browserAccessibility_->attributes(), |
| 254 WebAccessibility::ATTR_DOC_URL); | 262 urlAttribute); |
| 255 } | 263 } |
| 256 | 264 |
| 257 // TODO(dtseng): provide complete implementations for the following. | |
| 258 if ([attribute isEqualToString:@"AXVisited"]) | |
| 259 return [NSNumber numberWithBool:NO]; | |
| 260 | |
| 261 // Text related attributes. | 265 // Text related attributes. |
| 262 if ([attribute isEqualToString: | 266 if ([attribute isEqualToString: |
| 263 NSAccessibilityNumberOfCharactersAttribute]) { | 267 NSAccessibilityNumberOfCharactersAttribute]) { |
| 264 return [NSNumber numberWithInt:browserAccessibility_->value().length()]; | 268 return [NSNumber numberWithInt:browserAccessibility_->value().length()]; |
| 265 } | 269 } |
| 266 if ([attribute isEqualToString: | 270 if ([attribute isEqualToString: |
| 267 NSAccessibilityVisibleCharacterRangeAttribute]) { | 271 NSAccessibilityVisibleCharacterRangeAttribute]) { |
| 268 return [NSValue valueWithRange: | 272 return [NSValue valueWithRange: |
| 269 NSMakeRange(0, browserAccessibility_->value().length())]; | 273 NSMakeRange(0, browserAccessibility_->value().length())]; |
| 270 } | 274 } |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 352 NSAccessibilityHelpAttribute, | 356 NSAccessibilityHelpAttribute, |
| 353 NSAccessibilityParentAttribute, | 357 NSAccessibilityParentAttribute, |
| 354 NSAccessibilityPositionAttribute, | 358 NSAccessibilityPositionAttribute, |
| 355 NSAccessibilityRoleAttribute, | 359 NSAccessibilityRoleAttribute, |
| 356 NSAccessibilityRoleDescriptionAttribute, | 360 NSAccessibilityRoleDescriptionAttribute, |
| 357 NSAccessibilitySizeAttribute, | 361 NSAccessibilitySizeAttribute, |
| 358 NSAccessibilityTitleAttribute, | 362 NSAccessibilityTitleAttribute, |
| 359 NSAccessibilityTopLevelUIElementAttribute, | 363 NSAccessibilityTopLevelUIElementAttribute, |
| 360 NSAccessibilityValueAttribute, | 364 NSAccessibilityValueAttribute, |
| 361 NSAccessibilityWindowAttribute, | 365 NSAccessibilityWindowAttribute, |
| 366 @"AXURL", |
| 367 @"AXVisited", |
| 362 nil]]; | 368 nil]]; |
| 363 | 369 |
| 364 // Specific role attributes. | 370 // Specific role attributes. |
| 365 if ([self role] == @"AXWebArea") { | 371 if ([self role] == @"AXWebArea") { |
| 366 [ret addObjectsFromArray:[NSArray arrayWithObjects: | 372 [ret addObjectsFromArray:[NSArray arrayWithObjects: |
| 367 @"AXLoaded", | 373 @"AXLoaded", |
| 368 @"AXURL", | |
| 369 @"AXVisited", | |
| 370 nil]]; | 374 nil]]; |
| 371 } | 375 } |
| 372 | 376 |
| 373 if ([self role] == NSAccessibilityTextFieldRole) { | 377 if ([self role] == NSAccessibilityTextFieldRole) { |
| 374 [ret addObjectsFromArray:[NSArray arrayWithObjects: | 378 [ret addObjectsFromArray:[NSArray arrayWithObjects: |
| 375 NSAccessibilityInsertionPointLineNumberAttribute, | 379 NSAccessibilityInsertionPointLineNumberAttribute, |
| 376 NSAccessibilityNumberOfCharactersAttribute, | 380 NSAccessibilityNumberOfCharactersAttribute, |
| 377 NSAccessibilitySelectedTextAttribute, | 381 NSAccessibilitySelectedTextAttribute, |
| 378 NSAccessibilitySelectedTextRangeAttribute, | 382 NSAccessibilitySelectedTextRangeAttribute, |
| 379 NSAccessibilityVisibleCharacterRangeAttribute, | 383 NSAccessibilityVisibleCharacterRangeAttribute, |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 473 | 477 |
| 474 - (NSUInteger)hash { | 478 - (NSUInteger)hash { |
| 475 // Potentially called during dealloc. | 479 // Potentially called during dealloc. |
| 476 if (!browserAccessibility_) | 480 if (!browserAccessibility_) |
| 477 return [super hash]; | 481 return [super hash]; |
| 478 return browserAccessibility_->renderer_id(); | 482 return browserAccessibility_->renderer_id(); |
| 479 } | 483 } |
| 480 | 484 |
| 481 @end | 485 @end |
| 482 | 486 |
| OLD | NEW |