Title: [152783] trunk
Revision
152783
Author
[email protected]
Date
2013-07-17 09:15:35 -0700 (Wed, 17 Jul 2013)

Log Message

Regression: columnheader/rowheader roles not exposed correctly
https://bugs.webkit.org/show_bug.cgi?id=113628

Reviewed by Tim Horton.

Source/WebCore: 

When we determine the row and column headers we look at the ARIA role being returned, but
since TableCell overrides the determineAccessibilityRole method, the ARIA role is never set.

Test: platform/mac/accessibility/aria-columnrowheaders.html

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

LayoutTests: 

* platform/mac/accessibility/aria-columnrowheaders-expected.txt: Added.
* platform/mac/accessibility/aria-columnrowheaders.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (152782 => 152783)


--- trunk/LayoutTests/ChangeLog	2013-07-17 15:34:44 UTC (rev 152782)
+++ trunk/LayoutTests/ChangeLog	2013-07-17 16:15:35 UTC (rev 152783)
@@ -1,3 +1,13 @@
+2013-07-17  Chris Fleizach  <[email protected]>
+
+        Regression: columnheader/rowheader roles not exposed correctly
+        https://bugs.webkit.org/show_bug.cgi?id=113628
+
+        Reviewed by Tim Horton.
+
+        * platform/mac/accessibility/aria-columnrowheaders-expected.txt: Added.
+        * platform/mac/accessibility/aria-columnrowheaders.html: Added.
+
 2013-07-17  Simon Pena  <[email protected]>
 
         [GTK] Make DRT obbey testRunner's addURLToRedirect

Added: trunk/LayoutTests/platform/mac/accessibility/aria-columnrowheaders-expected.txt (0 => 152783)


--- trunk/LayoutTests/platform/mac/accessibility/aria-columnrowheaders-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/mac/accessibility/aria-columnrowheaders-expected.txt	2013-07-17 16:15:35 UTC (rev 152783)
@@ -0,0 +1,151 @@
+Placeholder content header 2 header 3
+obj1 obj2 obj3
+obj1 obj2 obj3
+This tests that ARIA rowheader and columnheader roles are identified correctly.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+AXRole: AXCell
+AXSubrole: (null)
+AXRoleDescription: cell
+AXChildren: 
+AXHelp: 
+AXParent: 
+AXSize: NSSize: {124, 18}
+AXTitle: 
+AXDescription: 
+AXValue: 
+AXFocused: 0
+AXEnabled: 1
+AXWindow: 
+AXSelectedTextMarkerRange: (null)
+AXStartTextMarker: 
+AXEndTextMarker: 
+AXVisited: 0
+AXLinkedUIElements: (null)
+AXSelected: 0
+AXBlockQuoteLevel: 0
+AXTopLevelUIElement: 
+AXRowIndexRange: NSRange: {0, 1}
+AXColumnIndexRange: NSRange: {0, 1}
+AXARIABusy: 0
+AXRequired: 0
+
+------------
+AXRole: AXCell
+AXSubrole: (null)
+AXRoleDescription: cell
+AXChildren: 
+AXHelp: 
+AXParent: 
+AXSize: NSSize: {54, 18}
+AXTitle: 
+AXDescription: 
+AXValue: 
+AXFocused: 0
+AXEnabled: 1
+AXWindow: 
+AXSelectedTextMarkerRange: (null)
+AXStartTextMarker: 
+AXEndTextMarker: 
+AXVisited: 0
+AXLinkedUIElements: (null)
+AXSelected: 0
+AXBlockQuoteLevel: 0
+AXTopLevelUIElement: 
+AXRowIndexRange: NSRange: {0, 1}
+AXColumnIndexRange: NSRange: {1, 1}
+AXARIABusy: 0
+AXRequired: 0
+
+------------
+AXRole: AXCell
+AXSubrole: (null)
+AXRoleDescription: cell
+AXChildren: 
+AXHelp: 
+AXParent: 
+AXSize: NSSize: {54, 18}
+AXTitle: 
+AXDescription: 
+AXValue: 
+AXFocused: 0
+AXEnabled: 1
+AXWindow: 
+AXSelectedTextMarkerRange: (null)
+AXStartTextMarker: 
+AXEndTextMarker: 
+AXVisited: 0
+AXLinkedUIElements: (null)
+AXSelected: 0
+AXBlockQuoteLevel: 0
+AXTopLevelUIElement: 
+AXRowIndexRange: NSRange: {0, 1}
+AXColumnIndexRange: NSRange: {2, 1}
+AXARIABusy: 0
+AXRequired: 0
+
+------------
+
+
+
+AXRole: AXCell
+AXSubrole: (null)
+AXRoleDescription: cell
+AXChildren: 
+AXHelp: 
+AXParent: 
+AXSize: NSSize: {28, 18}
+AXTitle: 
+AXDescription: 
+AXValue: 
+AXFocused: 0
+AXEnabled: 1
+AXWindow: 
+AXSelectedTextMarkerRange: (null)
+AXStartTextMarker: 
+AXEndTextMarker: 
+AXVisited: 0
+AXLinkedUIElements: (null)
+AXSelected: 0
+AXBlockQuoteLevel: 0
+AXTopLevelUIElement: 
+AXRowIndexRange: NSRange: {1, 1}
+AXColumnIndexRange: NSRange: {0, 1}
+AXARIABusy: 0
+AXRequired: 0
+
+------------
+AXRole: AXCell
+AXSubrole: (null)
+AXRoleDescription: cell
+AXChildren: 
+AXHelp: 
+AXParent: 
+AXSize: NSSize: {28, 18}
+AXTitle: 
+AXDescription: 
+AXValue: 
+AXFocused: 0
+AXEnabled: 1
+AXWindow: 
+AXSelectedTextMarkerRange: (null)
+AXStartTextMarker: 
+AXEndTextMarker: 
+AXVisited: 0
+AXLinkedUIElements: (null)
+AXSelected: 0
+AXBlockQuoteLevel: 0
+AXTopLevelUIElement: 
+AXRowIndexRange: NSRange: {2, 1}
+AXColumnIndexRange: NSRange: {0, 1}
+AXARIABusy: 0
+AXRequired: 0
+
+------------
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: trunk/LayoutTests/platform/mac/accessibility/aria-columnrowheaders.html (0 => 152783)


--- trunk/LayoutTests/platform/mac/accessibility/aria-columnrowheaders.html	                        (rev 0)
+++ trunk/LayoutTests/platform/mac/accessibility/aria-columnrowheaders.html	2013-07-17 16:15:35 UTC (rev 152783)
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src=""
+</head>
+<body id="body">
+
+<div role="grid" id="grid">
+    <div role="row">
+        <span id="test" role="columnheader" aria-readonly="true">Placeholder content</span>
+        <span role="columnheader">header 2</span>
+        <span role="columnheader">header 3</span>
+    </div>
+
+    <div role="row">
+        <span role="rowheader" id="obj1">obj1</span>    
+        <span role="gridcell">obj2</span>
+        <span role="gridcell">obj3</span>
+    </div>
+
+    <div role="row">
+        <span role="rowheader">obj1</span>
+        <span role="gridcell">obj2</span>
+        <span role="gridcell">obj3</span>
+    </div>
+</div>
+
+
+
+<div id="console"></div>
+
+<script>
+
+    description("This tests that ARIA rowheader and columnheader roles are identified correctly.");
+
+    if (window.accessibilityController) {
+
+          var grid = accessibilityController.accessibleElementById("grid");
+
+          debug(grid.attributesOfColumnHeaders());
+          debug("\n");
+          debug(grid.attributesOfRowHeaders());
+    }
+
+</script>
+
+<script src=""
+</body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (152782 => 152783)


--- trunk/Source/WebCore/ChangeLog	2013-07-17 15:34:44 UTC (rev 152782)
+++ trunk/Source/WebCore/ChangeLog	2013-07-17 16:15:35 UTC (rev 152783)
@@ -1,3 +1,18 @@
+2013-07-17  Chris Fleizach  <[email protected]>
+
+        Regression: columnheader/rowheader roles not exposed correctly
+        https://bugs.webkit.org/show_bug.cgi?id=113628
+
+        Reviewed by Tim Horton.
+
+        When we determine the row and column headers we look at the ARIA role being returned, but
+        since TableCell overrides the determineAccessibilityRole method, the ARIA role is never set.
+
+        Test: platform/mac/accessibility/aria-columnrowheaders.html
+
+        * accessibility/AccessibilityTableCell.cpp:
+        (WebCore::AccessibilityTableCell::determineAccessibilityRole):
+
 2013-07-17  Christophe Dumez  <[email protected]>
 
         Get rid of SVGPoint special case from the bindings generator

Modified: trunk/Source/WebCore/accessibility/AccessibilityTableCell.cpp (152782 => 152783)


--- trunk/Source/WebCore/accessibility/AccessibilityTableCell.cpp	2013-07-17 15:34:44 UTC (rev 152782)
+++ trunk/Source/WebCore/accessibility/AccessibilityTableCell.cpp	2013-07-17 16:15:35 UTC (rev 152783)
@@ -96,8 +96,12 @@
     
 AccessibilityRole AccessibilityTableCell::determineAccessibilityRole()
 {
+    // Always call determineAccessibleRole so that the ARIA role is set.
+    // Even though this object reports a Cell role, the ARIA role will be used
+    // to determine if it's a column header.
+    AccessibilityRole defaultRole = AccessibilityRenderObject::determineAccessibilityRole();
     if (!isTableCell())
-        return AccessibilityRenderObject::determineAccessibilityRole();
+        return defaultRole;
     
     return CellRole;
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to