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 |