From 74e40f6147d0ac81b8e769a78031d5d2d2bab933 Mon Sep 17 00:00:00 2001 From: "dtseng@chromium.org" Date: Thu, 3 Feb 2011 01:17:29 +0000 Subject: Use the proper role for secure text fields to distinguish from ordinary text fields. BUG=57478 TEST=manually with VoiceOver. Review URL: http://codereview.chromium.org/6368060 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73571 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/accessibility/browser_accessibility_cocoa.mm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'chrome/browser/accessibility') 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( 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; } -- cgit v1.1