| Index: content/browser/accessibility/browser_accessibility_cocoa.mm
|
| diff --git a/content/browser/accessibility/browser_accessibility_cocoa.mm b/content/browser/accessibility/browser_accessibility_cocoa.mm
|
| index 4b88bc6078de3aec3fdc9ee64f25cb0df7910c5c..15ac6084474095f91c801876a866bb8ca57758a4 100644
|
| --- a/content/browser/accessibility/browser_accessibility_cocoa.mm
|
| +++ b/content/browser/accessibility/browser_accessibility_cocoa.mm
|
| @@ -641,7 +641,11 @@ NSDictionary* attributeToMethodNameMap = nil;
|
| }
|
|
|
| - (NSValue*)position {
|
| - return [NSValue valueWithPoint:[delegate_ accessibilityPointInScreen:self]];
|
| + NSPoint origin = [self origin];
|
| + NSSize size = [[self size] sizeValue];
|
| + NSPoint pointInScreen =
|
| + [delegate_ accessibilityPointInScreen:origin size:size];
|
| + return [NSValue valueWithPoint:pointInScreen];
|
| }
|
|
|
| - (NSNumber*)required {
|
| @@ -1085,13 +1089,27 @@ NSDictionary* attributeToMethodNameMap = nil;
|
| return nil;
|
| }
|
|
|
| + if ([attribute isEqualToString:
|
| + NSAccessibilityBoundsForRangeParameterizedAttribute]) {
|
| + if ([self internalRole] != blink::WebAXRoleStaticText)
|
| + return nil;
|
| + NSRange range = [(NSValue*)parameter rangeValue];
|
| + gfx::Rect rect = browserAccessibility_->GetGlobalBoundsForRange(
|
| + range.location, range.length);
|
| + NSPoint origin = NSMakePoint(rect.x(), rect.y());
|
| + NSSize size = NSMakeSize(rect.width(), rect.height());
|
| + NSPoint pointInScreen =
|
| + [delegate_ accessibilityPointInScreen:origin size:size];
|
| + NSRect nsrect = NSMakeRect(
|
| + pointInScreen.x, pointInScreen.y, rect.width(), rect.height());
|
| + return [NSValue valueWithRect:nsrect];
|
| + }
|
| +
|
| // TODO(dtseng): support the following attributes.
|
| if ([attribute isEqualTo:
|
| NSAccessibilityRangeForPositionParameterizedAttribute] ||
|
| [attribute isEqualTo:
|
| NSAccessibilityRangeForIndexParameterizedAttribute] ||
|
| - [attribute isEqualTo:
|
| - NSAccessibilityBoundsForRangeParameterizedAttribute] ||
|
| [attribute isEqualTo:NSAccessibilityRTFForRangeParameterizedAttribute] ||
|
| [attribute isEqualTo:
|
| NSAccessibilityStyleRangeForIndexParameterizedAttribute]) {
|
| @@ -1126,6 +1144,11 @@ NSDictionary* attributeToMethodNameMap = nil;
|
| NSAccessibilityStyleRangeForIndexParameterizedAttribute,
|
| nil];
|
| }
|
| + if ([self internalRole] == blink::WebAXRoleStaticText) {
|
| + return [NSArray arrayWithObjects:
|
| + NSAccessibilityBoundsForRangeParameterizedAttribute,
|
| + nil];
|
| + }
|
| return nil;
|
| }
|
|
|
|
|