Chromium Code Reviews| 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"]) { |
| 252 return NSStringForWebAccessibilityAttribute( | 256 return NSStringForWebAccessibilityAttribute( |
| 253 browserAccessibility_->attributes(), | 257 browserAccessibility_->attributes(), |
| 254 WebAccessibility::ATTR_DOC_URL); | 258 WebAccessibility::ATTR_DOC_URL); |
| 255 } | 259 } |
| 256 | 260 |
| 257 // TODO(dtseng): provide complete implementations for the following. | |
| 258 if ([attribute isEqualToString:@"AXVisited"]) | |
| 259 return [NSNumber numberWithBool:NO]; | |
| 260 | |
| 261 // Text related attributes. | 261 // Text related attributes. |
| 262 if ([attribute isEqualToString: | 262 if ([attribute isEqualToString: |
| 263 NSAccessibilityNumberOfCharactersAttribute]) { | 263 NSAccessibilityNumberOfCharactersAttribute]) { |
| 264 return [NSNumber numberWithInt:browserAccessibility_->value().length()]; | 264 return [NSNumber numberWithInt:browserAccessibility_->value().length()]; |
| 265 } | 265 } |
| 266 if ([attribute isEqualToString: | 266 if ([attribute isEqualToString: |
| 267 NSAccessibilityVisibleCharacterRangeAttribute]) { | 267 NSAccessibilityVisibleCharacterRangeAttribute]) { |
| 268 return [NSValue valueWithRange: | 268 return [NSValue valueWithRange: |
| 269 NSMakeRange(0, browserAccessibility_->value().length())]; | 269 NSMakeRange(0, browserAccessibility_->value().length())]; |
| 270 } | 270 } |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 352 NSAccessibilityHelpAttribute, | 352 NSAccessibilityHelpAttribute, |
| 353 NSAccessibilityParentAttribute, | 353 NSAccessibilityParentAttribute, |
| 354 NSAccessibilityPositionAttribute, | 354 NSAccessibilityPositionAttribute, |
| 355 NSAccessibilityRoleAttribute, | 355 NSAccessibilityRoleAttribute, |
| 356 NSAccessibilityRoleDescriptionAttribute, | 356 NSAccessibilityRoleDescriptionAttribute, |
| 357 NSAccessibilitySizeAttribute, | 357 NSAccessibilitySizeAttribute, |
| 358 NSAccessibilityTitleAttribute, | 358 NSAccessibilityTitleAttribute, |
| 359 NSAccessibilityTopLevelUIElementAttribute, | 359 NSAccessibilityTopLevelUIElementAttribute, |
| 360 NSAccessibilityValueAttribute, | 360 NSAccessibilityValueAttribute, |
| 361 NSAccessibilityWindowAttribute, | 361 NSAccessibilityWindowAttribute, |
| 362 @"AXURL", | |
|
Chris Guillory
2010/12/09 22:04:02
Does this URL expect the href value for a link?
| |
| 363 @"AXVisited", | |
| 362 nil]]; | 364 nil]]; |
| 363 | 365 |
| 364 // Specific role attributes. | 366 // Specific role attributes. |
| 365 if ([self role] == @"AXWebArea") { | 367 if ([self role] == @"AXWebArea") { |
| 366 [ret addObjectsFromArray:[NSArray arrayWithObjects: | 368 [ret addObjectsFromArray:[NSArray arrayWithObjects: |
| 367 @"AXLoaded", | 369 @"AXLoaded", |
| 368 @"AXURL", | |
| 369 @"AXVisited", | |
| 370 nil]]; | 370 nil]]; |
| 371 } | 371 } |
| 372 | 372 |
| 373 if ([self role] == NSAccessibilityTextFieldRole) { | 373 if ([self role] == NSAccessibilityTextFieldRole) { |
| 374 [ret addObjectsFromArray:[NSArray arrayWithObjects: | 374 [ret addObjectsFromArray:[NSArray arrayWithObjects: |
| 375 NSAccessibilityInsertionPointLineNumberAttribute, | 375 NSAccessibilityInsertionPointLineNumberAttribute, |
| 376 NSAccessibilityNumberOfCharactersAttribute, | 376 NSAccessibilityNumberOfCharactersAttribute, |
| 377 NSAccessibilitySelectedTextAttribute, | 377 NSAccessibilitySelectedTextAttribute, |
| 378 NSAccessibilitySelectedTextRangeAttribute, | 378 NSAccessibilitySelectedTextRangeAttribute, |
| 379 NSAccessibilityVisibleCharacterRangeAttribute, | 379 NSAccessibilityVisibleCharacterRangeAttribute, |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 473 | 473 |
| 474 - (NSUInteger)hash { | 474 - (NSUInteger)hash { |
| 475 // Potentially called during dealloc. | 475 // Potentially called during dealloc. |
| 476 if (!browserAccessibility_) | 476 if (!browserAccessibility_) |
| 477 return [super hash]; | 477 return [super hash]; |
| 478 return browserAccessibility_->renderer_id(); | 478 return browserAccessibility_->renderer_id(); |
| 479 } | 479 } |
| 480 | 480 |
| 481 @end | 481 @end |
| 482 | 482 |
| OLD | NEW |