Title: [128742] releases/WebKitGTK/webkit-1.10
Revision
128742
Author
carlo...@webkit.org
Date
2012-09-17 04:08:14 -0700 (Mon, 17 Sep 2012)

Log Message

Merge r127936 - AX: WebCore accessibility roles should be cross-platform
https://bugs.webkit.org/show_bug.cgi?id=94870

Reviewed by Chris Fleizach.

Source/WebCore:

Make 5 accessibility roles cross-platform rather than GTK-only.

Instead of mapping the HR tag to SplitterRole (which is an interactive
splitter control on Mac), create a new role HorizontalRuleRole.

Map all of the new roles to AXGroup on Mac, which matches the existing
behavior. Add a new test for these roles on Chromium.

Test: platform/chromium/accessibility/chromium-only-roles.html

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::supportsARIAAttributes):
* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
* accessibility/gtk/AccessibilityObjectAtk.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
* accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
(atkRole):
* accessibility/mac/WebAccessibilityObjectWrapper.mm:
(createAccessibilityRoleMap):

Source/WebKit/chromium:

Add a new accessibility role.

* public/WebAccessibilityRole.h:
* src/AssertMatchingEnums.cpp:

Tools:

Add debug strings to Chromium for new accessibility roles.

* DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp:
(roleToString):

LayoutTests:

Adds a test for some new accessibility roles that aren't present on all platforms.

* platform/chromium/accessibility/chromium-only-roles-expected.txt: Added.
* platform/chromium/accessibility/chromium-only-roles.html: Added.

Modified Paths

Added Paths

Diff

Modified: releases/WebKitGTK/webkit-1.10/LayoutTests/ChangeLog (128741 => 128742)


--- releases/WebKitGTK/webkit-1.10/LayoutTests/ChangeLog	2012-09-17 11:06:55 UTC (rev 128741)
+++ releases/WebKitGTK/webkit-1.10/LayoutTests/ChangeLog	2012-09-17 11:08:14 UTC (rev 128742)
@@ -1,5 +1,17 @@
 2012-09-07  Dominic Mazzoni  <dmazz...@google.com>
 
+        AX: WebCore accessibility roles should be cross-platform
+        https://bugs.webkit.org/show_bug.cgi?id=94870
+
+        Reviewed by Chris Fleizach.
+
+        Adds a test for some new accessibility roles that aren't present on all platforms.
+
+        * platform/chromium/accessibility/chromium-only-roles-expected.txt: Added.
+        * platform/chromium/accessibility/chromium-only-roles.html: Added.
+
+2012-09-07  Dominic Mazzoni  <dmazz...@google.com>
+
         AX: ARIA spin button should support range value attributes
         https://bugs.webkit.org/show_bug.cgi?id=96076
 

Modified: releases/WebKitGTK/webkit-1.10/LayoutTests/accessibility/canvas-fallback-content.html (128741 => 128742)


--- releases/WebKitGTK/webkit-1.10/LayoutTests/accessibility/canvas-fallback-content.html	2012-09-17 11:06:55 UTC (rev 128741)
+++ releases/WebKitGTK/webkit-1.10/LayoutTests/accessibility/canvas-fallback-content.html	2012-09-17 11:08:14 UTC (rev 128742)
@@ -3,6 +3,12 @@
 <body>
 <script src=""
 
+<style>
+myelement {
+  display: block;
+}
+</style>
+
 <div>
   <a id="link1" href=""
   <button id="button1">Button</button>
@@ -11,7 +17,7 @@
   <input id="radio1" type="radio">
   <input id="submit1" type="submit">
   <select id="combobox1"><option>1<option>2</select>
-  <div id="focusable1" tabindex="0">Focusable</div>
+  <myelement id="focusable1" tabindex="0">Focusable</myelement>
   <div id="aria-button1" tabindex="0" role="button">ARIA button</div>
   <div id="aria-link1" tabindex="0" role="link">ARIA link</div>
 </div>
@@ -24,7 +30,7 @@
   <input id="radio2" type="radio">
   <input id="submit2" type="submit">
   <select id="combobox2"><option>1<option>2</select>
-  <div id="focusable2" tabindex="0">Focusable</div>
+  <myelement id="focusable2" tabindex="0">Focusable</myelement>
   <div id="aria-button2" tabindex="0" role="button">ARIA button</div>
   <div id="aria-link2" tabindex="0" role="link">ARIA link</div>
 </canvas>

Modified: releases/WebKitGTK/webkit-1.10/LayoutTests/accessibility/inline-continuations.html (128741 => 128742)


--- releases/WebKitGTK/webkit-1.10/LayoutTests/accessibility/inline-continuations.html	2012-09-17 11:06:55 UTC (rev 128741)
+++ releases/WebKitGTK/webkit-1.10/LayoutTests/accessibility/inline-continuations.html	2012-09-17 11:08:14 UTC (rev 128742)
@@ -16,7 +16,7 @@
    below should be visited only ones traversing the accessibility
    tree.</p>
 
-<div contentEditable="true" id="test"><span>1<div>2</div>3</span><span>4</span><div>5</div></div>
+<div contentEditable="true" id="test"><span>1<div role="group">2</div>3</span><span>4</span><div role="group">5</div></div>
 
 <div id="console"></div>
 
@@ -27,8 +27,8 @@
     var count = elt.childrenCount;
     for (var i = 0; i < count; ++i) {
         var child = elt.childAtIndex(i);
-          if (!child.role.match(/group/i))
-          result++;
+        if (!child.role.match(/group/i))
+            result++;
         result += nonGroupDescendants(child);
     }
     return result;

Modified: releases/WebKitGTK/webkit-1.10/LayoutTests/platform/chromium/accessibility/adjacent-continuations-cause-assertion-failure-expected.txt (128741 => 128742)


--- releases/WebKitGTK/webkit-1.10/LayoutTests/platform/chromium/accessibility/adjacent-continuations-cause-assertion-failure-expected.txt	2012-09-17 11:06:55 UTC (rev 128741)
+++ releases/WebKitGTK/webkit-1.10/LayoutTests/platform/chromium/accessibility/adjacent-continuations-cause-assertion-failure-expected.txt	2012-09-17 11:08:14 UTC (rev 128742)
@@ -9,10 +9,10 @@
 
 AXRole: AXWebArea AXValue: 
     AXRole: AXStaticText AXValue: x
-    AXRole: AXGroup AXValue: 
+    AXRole: AXDiv AXValue: 
         AXRole: AXStaticText AXValue: y
     AXRole: AXStaticText AXValue: z
-    AXRole: AXGroup AXValue: 
+    AXRole: AXDiv AXValue: 
         AXRole: AXStaticText AXValue: End of test
 PASS successfullyParsed is true
 

Added: releases/WebKitGTK/webkit-1.10/LayoutTests/platform/chromium/accessibility/chromium-only-roles-expected.txt (0 => 128742)


--- releases/WebKitGTK/webkit-1.10/LayoutTests/platform/chromium/accessibility/chromium-only-roles-expected.txt	                        (rev 0)
+++ releases/WebKitGTK/webkit-1.10/LayoutTests/platform/chromium/accessibility/chromium-only-roles-expected.txt	2012-09-17 11:08:14 UTC (rev 128742)
@@ -0,0 +1,14 @@
+This test makes sure that a generic focusable div can get accessibility focus.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS axContainer.childAtIndex(0).role is "AXRole: AXHorizontalRule"
+PASS axContainer.childAtIndex(1).role is "AXRole: AXParagraph"
+PASS axContainer.childAtIndex(2).role is "AXRole: AXLabel"
+PASS axContainer.childAtIndex(3).role is "AXRole: AXForm"
+PASS axContainer.childAtIndex(4).role is "AXRole: AXDiv"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: releases/WebKitGTK/webkit-1.10/LayoutTests/platform/chromium/accessibility/chromium-only-roles.html (0 => 128742)


--- releases/WebKitGTK/webkit-1.10/LayoutTests/platform/chromium/accessibility/chromium-only-roles.html	                        (rev 0)
+++ releases/WebKitGTK/webkit-1.10/LayoutTests/platform/chromium/accessibility/chromium-only-roles.html	2012-09-17 11:08:14 UTC (rev 128742)
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML>
+<html>
+<body>
+<script src=""
+
+<div id="container" contentEditable>
+  <hr aria-label="hr">
+  <p aria-label="p"></p>
+  <label aria-label="label"></label>
+  <form aria-label="form"></form>
+  <div aria-label="div"></div>
+</div>
+
+<div id="console"></div>
+<script>
+description("This test makes sure that a generic focusable div can get accessibility focus.");
+
+if (window.testRunner && window.accessibilityController) {
+    window.testRunner.dumpAsText();
+
+    document.getElementById('container').focus();
+    var axContainer = accessibilityController.focusedElement;
+
+    shouldBe('axContainer.childAtIndex(0).role', '"AXRole: AXHorizontalRule"');
+    shouldBe('axContainer.childAtIndex(1).role', '"AXRole: AXParagraph"');
+    shouldBe('axContainer.childAtIndex(2).role', '"AXRole: AXLabel"');
+    shouldBe('axContainer.childAtIndex(3).role', '"AXRole: AXForm"');
+    shouldBe('axContainer.childAtIndex(4).role', '"AXRole: AXDiv"');
+}
+
+</script>
+
+<script src=""
+</body>
+</html>

Modified: releases/WebKitGTK/webkit-1.10/LayoutTests/platform/chromium/accessibility/div-within-anchors-causes-crash-expected.txt (128741 => 128742)


--- releases/WebKitGTK/webkit-1.10/LayoutTests/platform/chromium/accessibility/div-within-anchors-causes-crash-expected.txt	2012-09-17 11:06:55 UTC (rev 128741)
+++ releases/WebKitGTK/webkit-1.10/LayoutTests/platform/chromium/accessibility/div-within-anchors-causes-crash-expected.txt	2012-09-17 11:08:14 UTC (rev 128742)
@@ -2,11 +2,11 @@
 Before:
 AXRole: AXWebArea AXValue: 
     AXRole: AXLink AXValue: 
-    AXRole: AXGroup AXValue: 
+    AXRole: AXDiv AXValue: 
         AXRole: AXStaticText AXValue: End of test
 After:
 AXRole: AXWebArea AXValue: 
-    AXRole: AXGroup AXValue: 
+    AXRole: AXDiv AXValue: 
         AXRole: AXStaticText AXValue: End of test
 This can cause a crash.
 

Modified: releases/WebKitGTK/webkit-1.10/Source/WebCore/ChangeLog (128741 => 128742)


--- releases/WebKitGTK/webkit-1.10/Source/WebCore/ChangeLog	2012-09-17 11:06:55 UTC (rev 128741)
+++ releases/WebKitGTK/webkit-1.10/Source/WebCore/ChangeLog	2012-09-17 11:08:14 UTC (rev 128742)
@@ -1,5 +1,34 @@
 2012-09-07  Dominic Mazzoni  <dmazz...@google.com>
 
+        AX: WebCore accessibility roles should be cross-platform
+        https://bugs.webkit.org/show_bug.cgi?id=94870
+
+        Reviewed by Chris Fleizach.
+
+        Make 5 accessibility roles cross-platform rather than GTK-only.
+
+        Instead of mapping the HR tag to SplitterRole (which is an interactive
+        splitter control on Mac), create a new role HorizontalRuleRole.
+
+        Map all of the new roles to AXGroup on Mac, which matches the existing
+        behavior. Add a new test for these roles on Chromium.
+
+        Test: platform/chromium/accessibility/chromium-only-roles.html
+
+        * accessibility/AccessibilityObject.cpp:
+        (WebCore::AccessibilityObject::supportsARIAAttributes):
+        * accessibility/AccessibilityObject.h:
+        * accessibility/AccessibilityRenderObject.cpp:
+        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
+        * accessibility/gtk/AccessibilityObjectAtk.cpp:
+        (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
+        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
+        (atkRole):
+        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
+        (createAccessibilityRoleMap):
+
+2012-09-07  Dominic Mazzoni  <dmazz...@google.com>
+
         AX: ARIA spin button should support range value attributes
         https://bugs.webkit.org/show_bug.cgi?id=96076
 

Modified: releases/WebKitGTK/webkit-1.10/Source/WebCore/accessibility/AccessibilityObject.cpp (128741 => 128742)


--- releases/WebKitGTK/webkit-1.10/Source/WebCore/accessibility/AccessibilityObject.cpp	2012-09-17 11:06:55 UTC (rev 128741)
+++ releases/WebKitGTK/webkit-1.10/Source/WebCore/accessibility/AccessibilityObject.cpp	2012-09-17 11:08:14 UTC (rev 128742)
@@ -1496,7 +1496,12 @@
 
 bool AccessibilityObject::supportsARIAAttributes() const
 {
-    return supportsARIALiveRegion() || supportsARIADragging() || supportsARIADropping() || supportsARIAFlowTo() || supportsARIAOwns();
+    return supportsARIALiveRegion()
+        || supportsARIADragging()
+        || supportsARIADropping()
+        || supportsARIAFlowTo()
+        || supportsARIAOwns()
+        || hasAttribute(aria_labelAttr);
 }
     
 bool AccessibilityObject::supportsARIALiveRegion() const

Modified: releases/WebKitGTK/webkit-1.10/Source/WebCore/accessibility/AccessibilityObject.h (128741 => 128742)


--- releases/WebKitGTK/webkit-1.10/Source/WebCore/accessibility/AccessibilityObject.h	2012-09-17 11:06:55 UTC (rev 128741)
+++ releases/WebKitGTK/webkit-1.10/Source/WebCore/accessibility/AccessibilityObject.h	2012-09-17 11:08:14 UTC (rev 128742)
@@ -129,6 +129,7 @@
     GrowAreaRole,
     HeadingRole,
     HelpTagRole,
+    HorizontalRuleRole,
     IgnoredRole,
     ImageRole,
     ImageMapRole,

Modified: releases/WebKitGTK/webkit-1.10/Source/WebCore/accessibility/AccessibilityRenderObject.cpp (128741 => 128742)


--- releases/WebKitGTK/webkit-1.10/Source/WebCore/accessibility/AccessibilityRenderObject.cpp	2012-09-17 11:06:55 UTC (rev 128741)
+++ releases/WebKitGTK/webkit-1.10/Source/WebCore/accessibility/AccessibilityRenderObject.cpp	2012-09-17 11:08:14 UTC (rev 128742)
@@ -3259,10 +3259,9 @@
     // Table sections should be ignored.
     if (m_renderer->isTableSection())
         return IgnoredRole;
-    
-#if PLATFORM(GTK)
+
     if (m_renderer->isHR())
-        return SplitterRole;
+        return HorizontalRuleRole;
 
     if (node && node->hasTagName(pTag))
         return ParagraphRole;
@@ -3275,10 +3274,6 @@
 
     if (node && node->hasTagName(formTag))
         return FormRole;
-#else
-    if (node && node->hasTagName(labelTag))
-        return GroupRole;
-#endif
 
     if (node && node->hasTagName(articleTag))
         return DocumentArticleRole;

Modified: releases/WebKitGTK/webkit-1.10/Source/WebCore/accessibility/gtk/AccessibilityObjectAtk.cpp (128741 => 128742)


--- releases/WebKitGTK/webkit-1.10/Source/WebCore/accessibility/gtk/AccessibilityObjectAtk.cpp	2012-09-17 11:06:55 UTC (rev 128741)
+++ releases/WebKitGTK/webkit-1.10/Source/WebCore/accessibility/gtk/AccessibilityObjectAtk.cpp	2012-09-17 11:08:14 UTC (rev 128742)
@@ -41,7 +41,7 @@
         return DefaultBehavior;
 
     AccessibilityRole role = roleValue();
-    if (role == SplitterRole)
+    if (role == HorizontalRuleRole)
         return IncludeObject;
 
     // We expose the slider as a whole but not its value indicator.

Modified: releases/WebKitGTK/webkit-1.10/Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.cpp (128741 => 128742)


--- releases/WebKitGTK/webkit-1.10/Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.cpp	2012-09-17 11:06:55 UTC (rev 128741)
+++ releases/WebKitGTK/webkit-1.10/Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.cpp	2012-09-17 11:08:14 UTC (rev 128742)
@@ -476,7 +476,7 @@
     case SplitGroupRole:
         return ATK_ROLE_SPLIT_PANE;
     case SplitterRole:
-        return ATK_ROLE_SEPARATOR;
+        return ATK_ROLE_UNKNOWN;
     case ColorWellRole:
         return ATK_ROLE_COLOR_CHOOSER;
     case ListRole:
@@ -526,6 +526,8 @@
         return ATK_ROLE_FORM;
     case CanvasRole:
         return ATK_ROLE_CANVAS;
+    case HorizontalRuleRole:
+        return ATK_ROLE_SEPARATOR;
     default:
         return ATK_ROLE_UNKNOWN;
     }

Modified: releases/WebKitGTK/webkit-1.10/Source/WebKit/chromium/ChangeLog (128741 => 128742)


--- releases/WebKitGTK/webkit-1.10/Source/WebKit/chromium/ChangeLog	2012-09-17 11:06:55 UTC (rev 128741)
+++ releases/WebKitGTK/webkit-1.10/Source/WebKit/chromium/ChangeLog	2012-09-17 11:08:14 UTC (rev 128742)
@@ -1,5 +1,17 @@
 2012-09-07  Dominic Mazzoni  <dmazz...@google.com>
 
+        AX: WebCore accessibility roles should be cross-platform
+        https://bugs.webkit.org/show_bug.cgi?id=94870
+
+        Reviewed by Chris Fleizach.
+
+        Add a new accessibility role.
+
+        * public/WebAccessibilityRole.h:
+        * src/AssertMatchingEnums.cpp:
+
+2012-09-07  Dominic Mazzoni  <dmazz...@google.com>
+
         AX: ARIA spin button should support range value attributes
         https://bugs.webkit.org/show_bug.cgi?id=96076
 

Modified: releases/WebKitGTK/webkit-1.10/Source/WebKit/chromium/public/WebAccessibilityRole.h (128741 => 128742)


--- releases/WebKitGTK/webkit-1.10/Source/WebKit/chromium/public/WebAccessibilityRole.h	2012-09-17 11:06:55 UTC (rev 128741)
+++ releases/WebKitGTK/webkit-1.10/Source/WebKit/chromium/public/WebAccessibilityRole.h	2012-09-17 11:08:14 UTC (rev 128742)
@@ -75,6 +75,7 @@
     WebAccessibilityRoleGrowArea,
     WebAccessibilityRoleHeading,
     WebAccessibilityRoleHelpTag,
+    WebAccessibilityRoleHorizontalRule,
     WebAccessibilityRoleIgnored,
     WebAccessibilityRoleImage,
     WebAccessibilityRoleImageMap,

Modified: releases/WebKitGTK/webkit-1.10/Tools/ChangeLog (128741 => 128742)


--- releases/WebKitGTK/webkit-1.10/Tools/ChangeLog	2012-09-17 11:06:55 UTC (rev 128741)
+++ releases/WebKitGTK/webkit-1.10/Tools/ChangeLog	2012-09-17 11:08:14 UTC (rev 128742)
@@ -1,3 +1,15 @@
+2012-09-07  Dominic Mazzoni  <dmazz...@google.com>
+
+        AX: WebCore accessibility roles should be cross-platform
+        https://bugs.webkit.org/show_bug.cgi?id=94870
+
+        Reviewed by Chris Fleizach.
+
+        Add debug strings to Chromium for new accessibility roles.
+
+        * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp:
+        (roleToString):
+
 2012-09-07  Dominic Mazzoni <dmazz...@google.com>
 
         New time input needs accessibility

Modified: releases/WebKitGTK/webkit-1.10/Tools/DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp (128741 => 128742)


--- releases/WebKitGTK/webkit-1.10/Tools/DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp	2012-09-17 11:06:55 UTC (rev 128741)
+++ releases/WebKitGTK/webkit-1.10/Tools/DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp	2012-09-17 11:08:14 UTC (rev 128742)
@@ -208,6 +208,16 @@
         return result.append("ToggleButton");
     case WebAccessibilityRoleCanvas:
         return result.append("Canvas");
+    case WebAccessibilityRoleParagraph:
+        return result.append("Paragraph");
+    case WebAccessibilityRoleDiv:
+        return result.append("Div");
+    case WebAccessibilityRoleLabel:
+        return result.append("Label");
+    case WebAccessibilityRoleForm:
+        return result.append("Form");
+    case WebAccessibilityRoleHorizontalRule:
+        return result.append("HorizontalRule");
     default:
         // Also matches WebAccessibilityRoleUnknown.
         return result.append("Unknown");
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to