Title: [173515] trunk
Revision
173515
Author
[email protected]
Date
2014-09-11 09:13:23 -0700 (Thu, 11 Sep 2014)

Log Message

AX: Children inside a <legend> are not accessible
https://bugs.webkit.org/show_bug.cgi?id=136735

Reviewed by Mario Sanchez Prada.

Source/WebCore:

The AX children of a <legend> are being hidden currently, which makes it impossible for
VoiceOver to activate control elements inside of a <legend>.
The solution is that legend elements SHOULD be allowed to have children.

Test: accessibility/legend-children-are-visible.html

* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::canHaveChildren):

LayoutTests:

* accessibility/legend-children-are-visible-expected.txt: Added.
* accessibility/legend-children-are-visible.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (173514 => 173515)


--- trunk/LayoutTests/ChangeLog	2014-09-11 16:12:02 UTC (rev 173514)
+++ trunk/LayoutTests/ChangeLog	2014-09-11 16:13:23 UTC (rev 173515)
@@ -1,3 +1,13 @@
+2014-09-11  Chris Fleizach  <[email protected]>
+
+        AX: Children inside a <legend> are not accessible
+        https://bugs.webkit.org/show_bug.cgi?id=136735
+
+        Reviewed by Mario Sanchez Prada.
+
+        * accessibility/legend-children-are-visible-expected.txt: Added.
+        * accessibility/legend-children-are-visible.html: Added.
+
 2014-09-11  Philippe Normand  <[email protected]>
 
         [GTK] Layout Test http/tests/media/hls/video-controls-live-stream.html is flaky

Added: trunk/LayoutTests/accessibility/legend-children-are-visible-expected.txt (0 => 173515)


--- trunk/LayoutTests/accessibility/legend-children-are-visible-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/accessibility/legend-children-are-visible-expected.txt	2014-09-11 16:13:23 UTC (rev 173515)
@@ -0,0 +1,12 @@
+This tests that children of a will be visible to the AX hierarchy (so that in case a control element is inside, it can be reached)
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+fieldset description: AXDescription: Not link Link
+legend child 1: string value: AXValue: Not link 
+legend child 2: title: AXTitle: Link
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: trunk/LayoutTests/accessibility/legend-children-are-visible.html (0 => 173515)


--- trunk/LayoutTests/accessibility/legend-children-are-visible.html	                        (rev 0)
+++ trunk/LayoutTests/accessibility/legend-children-are-visible.html	2014-09-11 16:13:23 UTC (rev 173515)
@@ -0,0 +1,42 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src=""
+</head>
+<body id="body">
+
+<div id="content">
+
+<form>
+    <fieldset id="fieldset">
+        <legend>Not link <a href=""
+        <label for=""
+        <input type="radio" name="color" id="green">
+    </fieldset>
+</form>
+
+</div>
+
+<p id="description"></p>
+<div id="console"></div>
+
+<script>
+
+    description("This tests that children of a <legend> will be visible to the AX hierarchy (so that in case a control element is inside, it can be reached)");
+
+    if (window.accessibilityController) {
+          var fieldset = accessibilityController.accessibleElementById("fieldset");
+          var legendChild1 = fieldset.childAtIndex(0);
+          var legendChild2 = fieldset.childAtIndex(1);
+          debug("fieldset description: " + fieldset.description);
+          debug("legend child 1: string value: " + legendChild1.stringValue);
+          debug("legend child 2: title: " + legendChild2.title);
+
+          document.getElementById("content").style.visibility = "hidden";
+    }
+
+</script>
+
+<script src=""
+</body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (173514 => 173515)


--- trunk/Source/WebCore/ChangeLog	2014-09-11 16:12:02 UTC (rev 173514)
+++ trunk/Source/WebCore/ChangeLog	2014-09-11 16:13:23 UTC (rev 173515)
@@ -1,3 +1,19 @@
+2014-09-11  Chris Fleizach  <[email protected]>
+
+        AX: Children inside a <legend> are not accessible
+        https://bugs.webkit.org/show_bug.cgi?id=136735
+
+        Reviewed by Mario Sanchez Prada.
+
+        The AX children of a <legend> are being hidden currently, which makes it impossible for
+        VoiceOver to activate control elements inside of a <legend>.
+        The solution is that legend elements SHOULD be allowed to have children.
+
+        Test: accessibility/legend-children-are-visible.html
+
+        * accessibility/AccessibilityNodeObject.cpp:
+        (WebCore::AccessibilityNodeObject::canHaveChildren):
+
 2014-09-11  Brendan Long  <[email protected]>
 
         Fix FIXME's in JSTrackCustom now that AudioTrack and VideoTrack exist.

Modified: trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp (173514 => 173515)


--- trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp	2014-09-11 16:12:02 UTC (rev 173514)
+++ trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp	2014-09-11 16:13:23 UTC (rev 173515)
@@ -400,10 +400,6 @@
     case ScrollBarRole:
     case ProgressIndicatorRole:
         return false;
-    case LegendRole:
-        if (Element* element = this->element())
-            return !ancestorsOfType<HTMLFieldSetElement>(*element).first();
-        FALLTHROUGH;
     default:
         return true;
     }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to