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)