summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-17 17:13:22 +0000
committerdmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-17 17:13:22 +0000
commitffebd7dd1ab0ac6a6869d43fac6951e7b6255f16 (patch)
treebcde99c48dfa8600327f2dc7a78cedf95e6bce76
parent575b29d064d027440f68771d5b6a61ecb4c3c6ba (diff)
downloadchromium_src-ffebd7dd1ab0ac6a6869d43fac6951e7b6255f16.zip
chromium_src-ffebd7dd1ab0ac6a6869d43fac6951e7b6255f16.tar.gz
chromium_src-ffebd7dd1ab0ac6a6869d43fac6951e7b6255f16.tar.bz2
Always return a subrole when the Mac accessibility role is AXList.
We already had tests for <ul>, <ol>, and <dl>, but not for <div role="list">, but it seems simplest to just always return a subrole of AXContentList by default and AXDescriptionList only for <dl>, since VoiceOver gets confused if it isn't one of those two. BUG=373498 Review URL: https://codereview.chromium.org/284113002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@271239 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--content/browser/accessibility/browser_accessibility_cocoa.mm7
-rw-r--r--content/browser/accessibility/dump_accessibility_tree_browsertest.cc4
-rw-r--r--content/test/data/accessibility/aria-list-expected-android.txt1
-rw-r--r--content/test/data/accessibility/aria-list-expected-mac.txt8
-rw-r--r--content/test/data/accessibility/aria-list-expected-win.txt1
-rw-r--r--content/test/data/accessibility/aria-list.html12
6 files changed, 29 insertions, 4 deletions
diff --git a/content/browser/accessibility/browser_accessibility_cocoa.mm b/content/browser/accessibility/browser_accessibility_cocoa.mm
index 61e9008..232e482 100644
--- a/content/browser/accessibility/browser_accessibility_cocoa.mm
+++ b/content/browser/accessibility/browser_accessibility_cocoa.mm
@@ -847,11 +847,10 @@ NSDictionary* attributeToMethodNameMap = nil;
browserAccessibility_, ui::AX_ATTR_HTML_TAG);
if (browserAccessibilityRole == ui::AX_ROLE_LIST) {
- if ([htmlTag isEqualToString:@"ul"] ||
- [htmlTag isEqualToString:@"ol"]) {
- return @"AXContentList";
- } else if ([htmlTag isEqualToString:@"dl"]) {
+ if ([htmlTag isEqualToString:@"dl"]) {
return @"AXDescriptionList";
+ } else {
+ return @"AXContentList";
}
}
diff --git a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
index 20cf865..d54d0e6 100644
--- a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
+++ b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
@@ -297,6 +297,10 @@ IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaLevel) {
RunTest(FILE_PATH_LITERAL("aria-level.html"));
}
+IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaList) {
+ RunTest(FILE_PATH_LITERAL("aria-list.html"));
+}
+
IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaMenu) {
RunTest(FILE_PATH_LITERAL("aria-menu.html"));
}
diff --git a/content/test/data/accessibility/aria-list-expected-android.txt b/content/test/data/accessibility/aria-list-expected-android.txt
new file mode 100644
index 0000000..e929435
--- /dev/null
+++ b/content/test/data/accessibility/aria-list-expected-android.txt
@@ -0,0 +1 @@
+#<skip -- need to validate/generate>
diff --git a/content/test/data/accessibility/aria-list-expected-mac.txt b/content/test/data/accessibility/aria-list-expected-mac.txt
new file mode 100644
index 0000000..8ae9e03
--- /dev/null
+++ b/content/test/data/accessibility/aria-list-expected-mac.txt
@@ -0,0 +1,8 @@
+AXWebArea
+ AXList AXSubrole=AXContentList
+ AXGroup
+ AXStaticText AXValue='Item 1'
+ AXGroup
+ AXStaticText AXValue='Item 2'
+ AXGroup
+ AXStaticText AXValue='Item 3'
diff --git a/content/test/data/accessibility/aria-list-expected-win.txt b/content/test/data/accessibility/aria-list-expected-win.txt
new file mode 100644
index 0000000..e929435
--- /dev/null
+++ b/content/test/data/accessibility/aria-list-expected-win.txt
@@ -0,0 +1 @@
+#<skip -- need to validate/generate>
diff --git a/content/test/data/accessibility/aria-list.html b/content/test/data/accessibility/aria-list.html
new file mode 100644
index 0000000..2e69bee
--- /dev/null
+++ b/content/test/data/accessibility/aria-list.html
@@ -0,0 +1,12 @@
+<!--
+@MAC-ALLOW:AXSubrole*
+-->
+<html>
+<body>
+<div role="list">
+ <div role="listitem">Item 1</div>
+ <div role="listitem">Item 2</div>
+ <div role="listitem">Item 3</div>
+</div>
+</body>
+</html>