summaryrefslogtreecommitdiffstats
path: root/chrome/browser/accessibility
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/accessibility')
-rw-r--r--chrome/browser/accessibility/browser_accessibility_cocoa.mm10
1 files changed, 9 insertions, 1 deletions
diff --git a/chrome/browser/accessibility/browser_accessibility_cocoa.mm b/chrome/browser/accessibility/browser_accessibility_cocoa.mm
index d3d77f7..3d451cf 100644
--- a/chrome/browser/accessibility/browser_accessibility_cocoa.mm
+++ b/chrome/browser/accessibility/browser_accessibility_cocoa.mm
@@ -133,9 +133,16 @@ bool GetState(BrowserAccessibility* accessibility, int state) {
// Returns a string indicating the role of this object.
- (NSString*)role {
- NSString* role = NSAccessibilityUnknownRole;
WebAccessibility::Role value =
static_cast<WebAccessibility::Role>( browserAccessibility_->role());
+
+ // Roles that we only determine at runtime.
+ if (value == WebAccessibility::ROLE_TEXT_FIELD &&
+ GetState(browserAccessibility_, WebAccessibility::STATE_PROTECTED)) {
+ return @"AXSecureTextField";
+ }
+
+ NSString* role = NSAccessibilityUnknownRole;
const size_t numRoles = sizeof(roles) / sizeof(roles[0]);
for (size_t i = 0; i < numRoles; ++i) {
if (roles[i].value == value) {
@@ -143,6 +150,7 @@ bool GetState(BrowserAccessibility* accessibility, int state) {
break;
}
}
+
return role;
}