Title: [169936] trunk
Revision
169936
Author
commit-qu...@webkit.org
Date
2014-06-13 09:12:27 -0700 (Fri, 13 Jun 2014)

Log Message

Source/WebCore: [ATK] Fix text inside "span" block in "a" block was not accessible.
https://bugs.webkit.org/show_bug.cgi?id=132349

Patch by Jarek Czekalski <jarekc...@poczta.onet.pl> on 2014-06-13
Reviewed by Mario Sanchez Prada.

* accessibility/atk/WebKitAccessibleWrapperAtk.cpp: Add link role
  to the list of roles whose objects always expose atk_text interface.

LayoutTests: [ATK] Add test for accessibility of text inside "span" block in "a" block.
https://bugs.webkit.org/show_bug.cgi?id=132349

Patch by Jarek Czekalski <jarekc...@poczta.onet.pl> on 2014-06-13
Reviewed by Mario Sanchez Prada.

* platform/gtk/accessibility/text-in-span-block-in-a-block-expected.txt: Added.
* platform/gtk/accessibility/text-in-span-block-in-a-block.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (169935 => 169936)


--- trunk/LayoutTests/ChangeLog	2014-06-13 13:33:38 UTC (rev 169935)
+++ trunk/LayoutTests/ChangeLog	2014-06-13 16:12:27 UTC (rev 169936)
@@ -1,3 +1,13 @@
+2014-06-13  Jarek Czekalski  <jarekc...@poczta.onet.pl>
+
+        [ATK] Add test for accessibility of text inside "span" block in "a" block.
+        https://bugs.webkit.org/show_bug.cgi?id=132349
+
+        Reviewed by Mario Sanchez Prada.
+
+        * platform/gtk/accessibility/text-in-span-block-in-a-block-expected.txt: Added.
+        * platform/gtk/accessibility/text-in-span-block-in-a-block.html: Added.
+
 2014-06-13  Andrzej Badowski  <a.badow...@samsung.com>
 
         [EFL] Change expectations for two failing layout tests.

Added: trunk/LayoutTests/platform/gtk/accessibility/text-in-span-block-in-a-block-expected.txt (0 => 169936)


--- trunk/LayoutTests/platform/gtk/accessibility/text-in-span-block-in-a-block-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/gtk/accessibility/text-in-span-block-in-a-block-expected.txt	2014-06-13 16:12:27 UTC (rev 169936)
@@ -0,0 +1,33 @@
+one
+before
+two
+three
+before,
+four
+,after
+before
+five
+,after
+before,
+six
+This tests that text inside "a" block inside "span" block is accessible.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS accText is "AXValue:one"
+PASS setCaretOffset(elem, 1) is true
+PASS accText is "AXValue:two"
+PASS setCaretOffset(elem, 1) is true
+PASS accText is "AXValue:three"
+PASS setCaretOffset(elem, 1) is true
+PASS accText is "AXValue:before,four,after"
+PASS setCaretOffset(elem, 1) is true
+PASS accText is "AXValue:five,after"
+PASS setCaretOffset(elem, 1) is true
+PASS accText is "AXValue:before,six"
+PASS setCaretOffset(elem, 1) is true
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: trunk/LayoutTests/platform/gtk/accessibility/text-in-span-block-in-a-block.html (0 => 169936)


--- trunk/LayoutTests/platform/gtk/accessibility/text-in-span-block-in-a-block.html	                        (rev 0)
+++ trunk/LayoutTests/platform/gtk/accessibility/text-in-span-block-in-a-block.html	2014-06-13 16:12:27 UTC (rev 169936)
@@ -0,0 +1,93 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src=""
+<script src=""
+</head>
+
+<body>
+
+<!-- Suspected "a" element in several different configurations. -->
+
+<div>
+  <a id="id1" href="" style="display:block;">
+    <span style="display:block;">one</span>
+  </a>
+</div>
+
+<div>
+  <div>before</div>
+  <a id="id2" href="" style="display:block;">
+    <span style="display:block;">two</span>
+  </a>
+</div>
+
+<a id="id3" href="" style="display:block;"><span style="display:block;">three</span></a>
+
+<div>
+  <a id="id4" href="" style="display:block;">
+    before,
+    <span style="display:block;">four</span>
+    ,after
+  </a>
+</div>
+
+<div>
+  <div>before</div>
+  <a id="id5" href="" style="display:block;"><span style="display:block;">five</span>
+    ,after
+  </a>
+</div>
+
+<a id="id6" href="" style="display:block;">before,<span style="display:block;">six</span></a>
+
+<div id="console"></div>
+
+<script>
+var caretMovedData;
+
+function stripNonWhite(s)
+{
+    var s2 = "";
+    var i;
+    for(i = 0; i < s.length; i++)
+        if (s[i] != ' ' && s[i] != '\n')
+            s2 += s[i];
+    return s2.replace(/<\\n>/g, "");
+}
+
+function globalListener(object, name, offset)
+{
+    var role = object.role.replace('AXRole: AX', '');
+    if (name == 'AXTextCaretMoved') {
+        caretMovedData += role + '|' + offset;
+    }
+}
+
+if (window.testRunner) {
+    testRunner.overridePreference("WebKitEnableCaretBrowsing", true);
+    testRunner.dumpAsText();
+}
+
+if (window.accessibilityController) {
+    var i, linkText, accText, id;
+    accessibilityController.addNotificationListener(globalListener)
+    for (i = 1; i <= 6; i++) {
+        id = 'id' + i;
+        elem = accessibilityController.accessibleElementById(id);
+        linkText = stripNonWhite(document.links[id].textContent);
+        accText = stripNonWhite(elem.stringValue);
+        shouldBeEqualToString("accText", "AXValue:" + linkText);
+        caretMovedData = '';
+        shouldBe("setCaretOffset(elem, 1)", "true");
+        // FIXME: This line will be added after fixing bug #130941.
+        //shouldBeEqualToString("caretMovedData", "Link|1");
+    }
+}
+
+description('This tests that text inside "a" block inside "span" block is accessible.');
+
+</script>
+<script src=""
+</body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (169935 => 169936)


--- trunk/Source/WebCore/ChangeLog	2014-06-13 13:33:38 UTC (rev 169935)
+++ trunk/Source/WebCore/ChangeLog	2014-06-13 16:12:27 UTC (rev 169936)
@@ -1,3 +1,13 @@
+2014-06-13  Jarek Czekalski  <jarekc...@poczta.onet.pl>
+
+        [ATK] Fix text inside "span" block in "a" block was not accessible.
+        https://bugs.webkit.org/show_bug.cgi?id=132349
+
+        Reviewed by Mario Sanchez Prada.
+
+        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: Add link role
+          to the list of roles whose objects always expose atk_text interface.
+
 2014-06-13  Alberto Garcia  <be...@igalia.com>
 
         [GTK] GLContextEGL.cpp: conflicting declaration 'typedef ptrdiff_t GLintptr'

Modified: trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp (169935 => 169936)


--- trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp	2014-06-13 13:33:38 UTC (rev 169935)
+++ trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp	2014-06-13 16:12:27 UTC (rev 169936)
@@ -1123,7 +1123,8 @@
 
 static bool roleIsTextType(AccessibilityRole role)
 {
-    return role == ParagraphRole || role == HeadingRole || role == DivRole || role == CellRole || role == ListItemRole;
+    return role == ParagraphRole || role == HeadingRole || role == DivRole || role == CellRole
+        || role == LinkRole || role == WebCoreLinkRole || role == ListItemRole;
 }
 
 static guint16 getInterfaceMaskFromObject(AccessibilityObject* coreObject)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to