Title: [216134] trunk
Revision
216134
Author
n_w...@apple.com
Date
2017-05-03 12:33:19 -0700 (Wed, 03 May 2017)

Log Message

AX: VO skips cells after cell with aria-colspan
https://bugs.webkit.org/show_bug.cgi?id=171579

Reviewed by Chris Fleizach.

Source/WebCore:

We should consider the previous cells' column span value when
calculating the column index.

Test: accessibility/mac/aria-grid-column-span.html

* accessibility/AccessibilityARIAGridCell.cpp:
(WebCore::AccessibilityARIAGridCell::columnIndexRange):

LayoutTests:

* accessibility/mac/aria-grid-column-span-expected.txt: Added.
* accessibility/mac/aria-grid-column-span.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (216133 => 216134)


--- trunk/LayoutTests/ChangeLog	2017-05-03 19:27:09 UTC (rev 216133)
+++ trunk/LayoutTests/ChangeLog	2017-05-03 19:33:19 UTC (rev 216134)
@@ -1,3 +1,13 @@
+2017-05-03  Nan Wang  <n_w...@apple.com>
+
+        AX: VO skips cells after cell with aria-colspan
+        https://bugs.webkit.org/show_bug.cgi?id=171579
+
+        Reviewed by Chris Fleizach.
+
+        * accessibility/mac/aria-grid-column-span-expected.txt: Added.
+        * accessibility/mac/aria-grid-column-span.html: Added.
+
 2017-05-03  Ryan Haddad  <ryanhad...@apple.com>
 
         Mark http/tests/websocket/tests/hybi/inspector/binary.html as flaky.

Added: trunk/LayoutTests/accessibility/aria-grid-column-span-expected.txt (0 => 216134)


--- trunk/LayoutTests/accessibility/aria-grid-column-span-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/accessibility/aria-grid-column-span-expected.txt	2017-05-03 19:33:19 UTC (rev 216134)
@@ -0,0 +1,17 @@
+Month	Jan	Mar
+Expenses	100	130	90
+This tests that cells that span multiple columns within an ARIA grid have correct column index range
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS cell1.role is 'AXRole: AXCell'
+PASS cell1.columnIndexRange() is '{1, 2}'
+PASS cell2.role is 'AXRole: AXCell'
+PASS cell2.columnIndexRange() is '{3, 1}'
+PASS cell3.role is 'AXRole: AXCell'
+PASS cell3.columnIndexRange() is '{2, 1}'
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: trunk/LayoutTests/accessibility/aria-grid-column-span.html (0 => 216134)


--- trunk/LayoutTests/accessibility/aria-grid-column-span.html	                        (rev 0)
+++ trunk/LayoutTests/accessibility/aria-grid-column-span.html	2017-05-03 19:33:19 UTC (rev 216134)
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src=""
+</head>
+<style>
+div[role=grid] {
+    display: table;
+}
+div[role=row] {
+    display: table-row;
+}
+div[role=gridcell], div[role=rowheader] {
+    padding: 1em;
+    display:table-cell;
+}
+</style>
+<body id="body">
+
+<div role="grid">
+<div role="row">
+<div role="rowheader">Month</div>
+<div role="gridcell" id="cell1" aria-colspan="2">Jan</div>
+<div role="gridcell" id="cell2">Mar</div>
+</div>
+<div role="row">
+<div role="rowheader">Expenses</div>
+<div role="gridcell">100</div>
+<div role="gridcell" id="cell3">130</div>
+<div role="gridcell">90</div>
+</div>
+</div>
+
+<p id="description"></p>
+<div id="console"></div>
+
+<script>
+
+    description("This tests that cells that span multiple columns within an ARIA grid have correct column index range");
+
+    if (window.accessibilityController) {
+
+          var cell1 = accessibilityController.accessibleElementById("cell1");
+          shouldBe("cell1.role", "'AXRole: AXCell'");
+          shouldBe("cell1.columnIndexRange()", "'{1, 2}'");
+
+          var cell2 = accessibilityController.accessibleElementById("cell2");
+          shouldBe("cell2.role", "'AXRole: AXCell'");
+          shouldBe("cell2.columnIndexRange()", "'{3, 1}'");
+
+          // also test cell index without column span
+          var cell3 = accessibilityController.accessibleElementById("cell3");
+          shouldBe("cell3.role", "'AXRole: AXCell'");
+          shouldBe("cell3.columnIndexRange()", "'{2, 1}'");
+    }
+</script>
+
+<script src=""
+</body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (216133 => 216134)


--- trunk/Source/WebCore/ChangeLog	2017-05-03 19:27:09 UTC (rev 216133)
+++ trunk/Source/WebCore/ChangeLog	2017-05-03 19:33:19 UTC (rev 216134)
@@ -1,3 +1,18 @@
+2017-05-03  Nan Wang  <n_w...@apple.com>
+
+        AX: VO skips cells after cell with aria-colspan
+        https://bugs.webkit.org/show_bug.cgi?id=171579
+
+        Reviewed by Chris Fleizach.
+
+        We should consider the previous cells' column span value when
+        calculating the column index.
+
+        Test: accessibility/mac/aria-grid-column-span.html
+
+        * accessibility/AccessibilityARIAGridCell.cpp:
+        (WebCore::AccessibilityARIAGridCell::columnIndexRange):
+
 2017-05-03  Jiewen Tan  <jiewen_...@apple.com>
 
         ASSERTION FAILED: m_scriptExecutionContext->isContextThread() seen with LayoutTest crypto/workers/crypto-random-values-limits-worker.html

Modified: trunk/Source/WebCore/accessibility/AccessibilityARIAGridCell.cpp (216133 => 216134)


--- trunk/Source/WebCore/accessibility/AccessibilityARIAGridCell.cpp	2017-05-03 19:27:09 UTC (rev 216133)
+++ trunk/Source/WebCore/accessibility/AccessibilityARIAGridCell.cpp	2017-05-03 19:33:19 UTC (rev 216134)
@@ -143,11 +143,14 @@
 
     const AccessibilityChildrenVector& siblings = parent->children();
     unsigned childrenSize = siblings.size();
+    unsigned indexWithSpan = 0;
     for (unsigned k = 0; k < childrenSize; ++k) {
-        if (siblings[k].get() == this) {
-            columnRange.first = k;
+        auto child = siblings[k].get();
+        if (child == this) {
+            columnRange.first = indexWithSpan;
             break;
         }
+        indexWithSpan += is<AccessibilityTableCell>(*child) ? std::max(downcast<AccessibilityTableCell>(*child).ariaColumnSpan(), 1) : 1;
     }
     
     // ARIA 1.1, aria-colspan attribute is intended for cells and gridcells which are not contained in a native table.
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to