Chromium Code Reviews| 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 10788e77cbf3aee2ba6865a912a6e05c6abfa449..41ef7cbde5d427ab2453de078c01db7eaa6a9280 100644 |
| --- a/content/browser/accessibility/browser_accessibility_cocoa.mm |
| +++ b/content/browser/accessibility/browser_accessibility_cocoa.mm |
| @@ -390,15 +390,35 @@ NSDictionary* attributeToMethodNameMap = nil; |
| } |
| - (NSString*)invalid { |
| - base::string16 invalidUTF; |
| - if (!browserAccessibility_->GetHtmlAttribute("aria-invalid", &invalidUTF)) |
| - return NULL; |
| - NSString* invalid = base::SysUTF16ToNSString(invalidUTF); |
| - if ([invalid isEqualToString:@"false"] || |
| - [invalid isEqualToString:@""]) { |
| + int invalidState; |
| + if (!browserAccessibility_->GetIntAttribute( |
| + ui::AX_ATTR_INVALID_STATE, &invalidState)) |
| return @"false"; |
| + |
| + switch (invalidState) { |
| + case ui::AX_INVALID_STATE_FALSE: |
| + return @"false"; |
| + case ui::AX_INVALID_STATE_TRUE: |
| + return @"true"; |
| + case ui::AX_INVALID_STATE_SPELLING: |
| + return @"spelling"; |
| + case ui::AX_INVALID_STATE_GRAMMAR: |
| + return @"grammar"; |
| + case ui::AX_INVALID_STATE_OTHER: |
| + { |
| + std::string ariaInvalidValue; |
| + if (browserAccessibility_->GetStringAttribute( |
| + ui::AX_ATTR_ARIA_INVALID_VALUE, |
| + &ariaInvalidValue)) |
| + return base::SysUTF8ToNSString(ariaInvalidValue); |
|
dmazzoni
2014/12/19 17:30:33
nit: this line should be indented 2 spaces less
|
| + // Return @"true" since we cannot be more specific about the value. |
| + return @"true"; |
| + } |
| + default: |
| + NOTREACHED(); |
| } |
| - return invalid; |
| + |
| + return @"false"; |
| } |
| - (void)addLinkedUIElementsFromAttribute:(ui::AXIntListAttribute)attribute |