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 |