Title: [142014] trunk
Revision
142014
Author
cfleiz...@apple.com
Date
2013-02-06 12:08:20 -0800 (Wed, 06 Feb 2013)

Log Message

AX: if <html> has an ARIA attribute, it's exposed as an AXGroup
https://bugs.webkit.org/show_bug.cgi?id=109008

Reviewed by Ryosuke Niwa.

Source/WebCore: 

If an <html> element had an ARIA attribute, it was being turned into an element
in the AX hierarchy. This was causing trouble for screen readers by inserting
an unexpected element in the navigation sequence.

Test: accessibility/html-html-element-is-ignored.html

* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

LayoutTests: 

* accessibility/html-html-element-is-ignored-expected.txt: Added.
* accessibility/html-html-element-is-ignored.html: Added.
* platform/chromium/TestExpectations:

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (142013 => 142014)


--- trunk/LayoutTests/ChangeLog	2013-02-06 19:43:21 UTC (rev 142013)
+++ trunk/LayoutTests/ChangeLog	2013-02-06 20:08:20 UTC (rev 142014)
@@ -1,3 +1,14 @@
+2013-02-06  Chris Fleizach  <cfleiz...@apple.com>
+
+        AX: if <html> has an ARIA attribute, it's exposed as an AXGroup
+        https://bugs.webkit.org/show_bug.cgi?id=109008
+
+        Reviewed by Ryosuke Niwa.
+
+        * accessibility/html-html-element-is-ignored-expected.txt: Added.
+        * accessibility/html-html-element-is-ignored.html: Added.
+        * platform/chromium/TestExpectations:
+
 2013-02-06  Shawn Singh  <shawnsi...@chromium.org>
 
         RenderLayer hasVisibleContent() has inconsistent semantics causing disappearing composited layers

Added: trunk/LayoutTests/accessibility/html-html-element-is-ignored-expected.txt (0 => 142014)


--- trunk/LayoutTests/accessibility/html-html-element-is-ignored-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/accessibility/html-html-element-is-ignored-expected.txt	2013-02-06 20:08:20 UTC (rev 142014)
@@ -0,0 +1,14 @@
+This test checks that the element is not the AX tree (ever), even when it has an aria attribute.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+The start element should be a button.
+PASS startElement.role is 'AXRole: AXButton'
+
+The parent should be the web area.
+PASS startElement.parentElement().role is 'AXRole: AXWebArea'
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: trunk/LayoutTests/accessibility/html-html-element-is-ignored.html (0 => 142014)


--- trunk/LayoutTests/accessibility/html-html-element-is-ignored.html	                        (rev 0)
+++ trunk/LayoutTests/accessibility/html-html-element-is-ignored.html	2013-02-06 20:08:20 UTC (rev 142014)
@@ -0,0 +1,28 @@
+<html aria-label="Test">
+<head>
+<script src=""
+</head>
+<body id="body">
+
+    <p role="button" id="description"></p>
+    <div id="console"></div>
+     
+    <script>
+        if (window.accessibilityController) {
+            description("This test checks that the <html> element is not the AX tree (ever), even when it has an aria attribute. ");
+
+            var startElement = accessibilityController.accessibleElementById("description");
+            debug("The start element should be a button.");
+            shouldBe("startElement.role", "'AXRole: AXButton'");
+
+            debug("\nThe parent should be the web area.");
+            shouldBe("startElement.parentElement().role", "'AXRole: AXWebArea'");
+        } else {
+            debug("This test requires accessibilityController.")
+        }
+    </script>
+
+<script src=""
+
+</body> 
+</html>

Modified: trunk/LayoutTests/platform/chromium/TestExpectations (142013 => 142014)


--- trunk/LayoutTests/platform/chromium/TestExpectations	2013-02-06 19:43:21 UTC (rev 142013)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2013-02-06 20:08:20 UTC (rev 142014)
@@ -1413,6 +1413,7 @@
 webkit.org/b/96529 accessibility/hidden-legend.html [ Skip ]
 webkit.org/b/73912 accessibility/aria-checkbox-text.html [ Skip ]
 webkit.org/b/99665 accessibility/loading-iframe-sends-notification.html [ Skip ]
+webkit.org/b/109056 accessibility/html-html-element-is-ignored.html [ Skip ]
 
 webkit.org/b/73912 accessibility/aria-checkbox-sends-notification.html [ Failure Pass ]
 #webkit.org/b/98787 accessibility/aria-hidden-negates-no-visibility.html [ Skip ]

Modified: trunk/Source/WebCore/ChangeLog (142013 => 142014)


--- trunk/Source/WebCore/ChangeLog	2013-02-06 19:43:21 UTC (rev 142013)
+++ trunk/Source/WebCore/ChangeLog	2013-02-06 20:08:20 UTC (rev 142014)
@@ -1,3 +1,19 @@
+2013-02-06  Chris Fleizach  <cfleiz...@apple.com>
+
+        AX: if <html> has an ARIA attribute, it's exposed as an AXGroup
+        https://bugs.webkit.org/show_bug.cgi?id=109008
+
+        Reviewed by Ryosuke Niwa.
+
+        If an <html> element had an ARIA attribute, it was being turned into an element
+        in the AX hierarchy. This was causing trouble for screen readers by inserting
+        an unexpected element in the navigation sequence.
+
+        Test: accessibility/html-html-element-is-ignored.html
+
+        * accessibility/AccessibilityRenderObject.cpp:
+        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
+
 2013-02-06  Shawn Singh  <shawnsi...@chromium.org>
 
         RenderLayer hasVisibleContent() has inconsistent semantics causing disappearing composited layers

Modified: trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp (142013 => 142014)


--- trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp	2013-02-06 19:43:21 UTC (rev 142013)
+++ trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp	2013-02-06 20:08:20 UTC (rev 142014)
@@ -2586,6 +2586,10 @@
     if (node && node->hasTagName(addressTag))
         return LandmarkContentInfoRole;
 
+    // The HTML element should not be exposed as an element. That's what the RenderView element does.
+    if (node && node->hasTagName(htmlTag))
+        return IgnoredRole;
+
     // There should only be one banner/contentInfo per page. If header/footer are being used within an article or section
     // then it should not be exposed as whole page's banner/contentInfo
     if (node && node->hasTagName(headerTag) && !isDescendantOfElementType(articleTag) && !isDescendantOfElementType(sectionTag))
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to