Title: [155191] trunk
Revision
155191
Author
[email protected]
Date
2013-09-06 09:13:52 -0700 (Fri, 06 Sep 2013)

Log Message

AX: aria-relevant does not expose AXARIARelevant
https://bugs.webkit.org/show_bug.cgi?id=120373

Reviewed by Darin Adler.

Source/WebCore:

When global ARIA attributes are present on an Element we need to ignore
a presentational role, if set on that Element.

Test: accessibility/global-aria-attributes-invalidate-presentational.html

* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::determineAriaRoleAttribute):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::supportsARIAAttributes):

LayoutTests:

* accessibility/global-aria-attributes-invalidate-presentational-expected.txt: Added.
* accessibility/global-aria-attributes-invalidate-presentational.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (155190 => 155191)


--- trunk/LayoutTests/ChangeLog	2013-09-06 16:12:33 UTC (rev 155190)
+++ trunk/LayoutTests/ChangeLog	2013-09-06 16:13:52 UTC (rev 155191)
@@ -1,3 +1,13 @@
+2013-09-06  Chris Fleizach  <[email protected]>
+
+        AX: aria-relevant does not expose AXARIARelevant
+        https://bugs.webkit.org/show_bug.cgi?id=120373
+
+        Reviewed by Darin Adler.
+
+        * accessibility/global-aria-attributes-invalidate-presentational-expected.txt: Added.
+        * accessibility/global-aria-attributes-invalidate-presentational.html: Added.
+
 2013-09-06  Radu Stavila  <[email protected]>
 
         [CSS Regions] Remove orphan test results

Added: trunk/LayoutTests/accessibility/global-aria-attributes-invalidate-presentational-expected.txt (0 => 155191)


--- trunk/LayoutTests/accessibility/global-aria-attributes-invalidate-presentational-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/accessibility/global-aria-attributes-invalidate-presentational-expected.txt	2013-09-06 16:13:52 UTC (rev 155191)
@@ -0,0 +1,24 @@
+             
+This tests that the presence of any global ARIA attribute invalidates a presentational role.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS item.role is 'AXRole: AXImage'
+PASS item.role is 'AXRole: AXImage'
+PASS item.role is 'AXRole: AXImage'
+PASS item.role is 'AXRole: AXImage'
+PASS item.role is 'AXRole: AXImage'
+PASS item.role is 'AXRole: AXImage'
+PASS item.role is 'AXRole: AXImage'
+PASS item.role is 'AXRole: AXImage'
+PASS item.role is 'AXRole: AXImage'
+PASS item.role is 'AXRole: AXImage'
+PASS item.role is 'AXRole: AXImage'
+PASS item.role is 'AXRole: AXImage'
+PASS item.role is 'AXRole: AXImage'
+PASS item.role is 'AXRole: AXImage'
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: trunk/LayoutTests/accessibility/global-aria-attributes-invalidate-presentational.html (0 => 155191)


--- trunk/LayoutTests/accessibility/global-aria-attributes-invalidate-presentational.html	                        (rev 0)
+++ trunk/LayoutTests/accessibility/global-aria-attributes-invalidate-presentational.html	2013-09-06 16:13:52 UTC (rev 155191)
@@ -0,0 +1,41 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src=""
+</head>
+<body id="body">
+
+<img id="item1" src="" alt="test1" role="presentation" aria-atomic="true">
+<img id="item2" src="" alt="test1" role="presentation" aria-busy="true">
+<img id="item3" src="" alt="test1" role="presentation" aria-controls="item1">
+<img id="item4" src="" alt="test1" role="presentation" aria-describedby="item1">
+<img id="item5" src="" alt="test1" role="presentation" aria-disabled="true">
+<img id="item6" src="" alt="test1" role="presentation" aria-dropeffect="true">
+<img id="item7" src="" alt="test1" role="presentation" aria-haspopup="true">
+<img id="item8" src="" alt="test1" role="presentation" aria-flowto="item1">
+<img id="item9" src="" alt="test1" role="presentation" aria-invalid="true">
+<img id="item10" src="" alt="test1" role="presentation" aria-label="test">
+<img id="item11" src="" alt="test1" role="presentation" aria-labelledby="item1">
+<img id="item12" src="" alt="test1" role="presentation" aria-live="polite">
+<img id="item13" src="" alt="test1" role="presentation" aria-owns="item1">
+<img id="item14" src="" alt="test1" role="presentation" aria-relevant="all">
+
+<p id="description"></p>
+<div id="console"></div>
+
+<script>
+
+    description("This tests that the presence of any global ARIA attribute invalidates a presentational role.");
+
+    if (window.accessibilityController) {
+        for (var k = 1; k < 15; k++) {
+            var item = accessibilityController.accessibleElementById("item" + k);
+            shouldBe("item.role", "'AXRole: AXImage'");
+        }
+    }
+
+</script>
+
+<script src=""
+</body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (155190 => 155191)


--- trunk/Source/WebCore/ChangeLog	2013-09-06 16:12:33 UTC (rev 155190)
+++ trunk/Source/WebCore/ChangeLog	2013-09-06 16:13:52 UTC (rev 155191)
@@ -1,3 +1,20 @@
+2013-09-06  Chris Fleizach  <[email protected]>
+
+        AX: aria-relevant does not expose AXARIARelevant
+        https://bugs.webkit.org/show_bug.cgi?id=120373
+
+        Reviewed by Darin Adler.
+
+        When global ARIA attributes are present on an Element we need to ignore
+        a presentational role, if set on that Element.
+
+        Test: accessibility/global-aria-attributes-invalidate-presentational.html
+
+        * accessibility/AccessibilityNodeObject.cpp:
+        (WebCore::AccessibilityNodeObject::determineAriaRoleAttribute):
+        * accessibility/AccessibilityObject.cpp:
+        (WebCore::AccessibilityObject::supportsARIAAttributes):
+
 2013-09-06  Brendan Long  <[email protected]>
 
         [Qt][BlackBerry] Text track localized string functions are named wrong

Modified: trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp (155190 => 155191)


--- trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp	2013-09-06 16:12:33 UTC (rev 155190)
+++ trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp	2013-09-06 16:13:52 UTC (rev 155191)
@@ -1853,6 +1853,10 @@
 
     role = remapAriaRoleDueToParent(role);
     
+    // Presentational roles are invalidated by the presence of ARIA attributes.
+    if (role == PresentationalRole && supportsARIAAttributes())
+        role = UnknownRole;
+    
     if (role)
         return role;
 

Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.cpp (155190 => 155191)


--- trunk/Source/WebCore/accessibility/AccessibilityObject.cpp	2013-09-06 16:12:33 UTC (rev 155190)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.cpp	2013-09-06 16:13:52 UTC (rev 155191)
@@ -1544,12 +1544,22 @@
 
 bool AccessibilityObject::supportsARIAAttributes() const
 {
+    // This returns whether the element supports any global ARIA attributes.
     return supportsARIALiveRegion()
         || supportsARIADragging()
         || supportsARIADropping()
         || supportsARIAFlowTo()
         || supportsARIAOwns()
-        || hasAttribute(aria_labelAttr);
+        || hasAttribute(aria_atomicAttr)
+        || hasAttribute(aria_busyAttr)
+        || hasAttribute(aria_controlsAttr)
+        || hasAttribute(aria_describedbyAttr)
+        || hasAttribute(aria_disabledAttr)
+        || hasAttribute(aria_haspopupAttr)
+        || hasAttribute(aria_invalidAttr)
+        || hasAttribute(aria_labelAttr)
+        || hasAttribute(aria_labelledbyAttr)
+        || hasAttribute(aria_relevantAttr);
 }
     
 bool AccessibilityObject::supportsARIALiveRegion() const
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to