summaryrefslogtreecommitdiffstats
path: root/chrome/browser/accessibility
diff options
context:
space:
mode:
authordtseng@chromium.org <dtseng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-03 01:17:29 +0000
committerdtseng@chromium.org <dtseng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-03 01:17:29 +0000
commit74e40f6147d0ac81b8e769a78031d5d2d2bab933 (patch)
treeaab4cec226d9489a69c2c380872ccdb833b2fdd8 /chrome/browser/accessibility
parentc50008518aa19574ce694d280d3a7947dd150d91 (diff)
downloadchromium_src-74e40f6147d0ac81b8e769a78031d5d2d2bab933.zip
chromium_src-74e40f6147d0ac81b8e769a78031d5d2d2bab933.tar.gz
chromium_src-74e40f6147d0ac81b8e769a78031d5d2d2bab933.tar.bz2
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
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;
}