Title: [185533] trunk
Revision
185533
Author
[email protected]
Date
2015-06-12 23:04:25 -0700 (Fri, 12 Jun 2015)

Log Message

AX:ARIA Toggle buttons aren't properly conveyed on iOS using VoiceOver
https://bugs.webkit.org/show_bug.cgi?id=145949

Reviewed by Darin Adler.

Source/WebCore:

Expose pressed state information to the iOS platform AX API.

Test: Updated inspector-protocol/dom/getAccessibilityPropertiesForNode.html 
      There was a FIXME for this issue in that test: https://bugs.webkit.org/show_bug.cgi?id=129830

* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::isPressed):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::classList):
(WebCore::AccessibilityObject::supportsARIAPressed):
(WebCore::AccessibilityObject::supportsARIAExpanded):
* accessibility/AccessibilityObject.h:
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityARIALiveRegionIsAtomic]):
(-[WebAccessibilityObjectWrapper accessibilitySupportsARIAPressed]):
(-[WebAccessibilityObjectWrapper accessibilityIsPressed]):
(-[WebAccessibilityObjectWrapper accessibilitySupportsARIAExpanded]):

LayoutTests:

* inspector-protocol/dom/getAccessibilityPropertiesForNode-expected.txt:
* inspector-protocol/dom/getAccessibilityPropertiesForNode.html:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (185532 => 185533)


--- trunk/LayoutTests/ChangeLog	2015-06-13 03:52:06 UTC (rev 185532)
+++ trunk/LayoutTests/ChangeLog	2015-06-13 06:04:25 UTC (rev 185533)
@@ -1,3 +1,13 @@
+2015-06-12  Chris Fleizach  <[email protected]>
+
+        AX:ARIA Toggle buttons aren't properly conveyed on iOS using VoiceOver
+        https://bugs.webkit.org/show_bug.cgi?id=145949
+
+        Reviewed by Darin Adler.
+
+        * inspector-protocol/dom/getAccessibilityPropertiesForNode-expected.txt:
+        * inspector-protocol/dom/getAccessibilityPropertiesForNode.html:
+
 2015-06-12  Darin Adler  <[email protected]>
 
         Fix minor ES6 compliance issue in RegExp.prototype.toString and optimize performance a little

Modified: trunk/LayoutTests/inspector-protocol/dom/getAccessibilityPropertiesForNode-expected.txt (185532 => 185533)


--- trunk/LayoutTests/inspector-protocol/dom/getAccessibilityPropertiesForNode-expected.txt	2015-06-13 03:52:06 UTC (rev 185532)
+++ trunk/LayoutTests/inspector-protocol/dom/getAccessibilityPropertiesForNode-expected.txt	2015-06-13 06:04:25 UTC (rev 185533)
@@ -393,13 +393,13 @@
     pressed: false
     required: false
 
-<div role="button" tabindex="0" aria-pressed="true">FIXME: Pressed is false. Expected true. http://webkit.org/b/129830</div>
+<div role="button" tabindex="0" aria-pressed="true">Pressed.</div>
     exists: true
-    label: FIXME: Pressed is false. Expected true. http://webkit.org/b/129830
+    label: Pressed.
     role: 
     focused: false
     parentNodeId: exists
-    pressed: false
+    pressed: true
     required: false
 
 <div role="button" tabindex="0" aria-disabled="true">disabled</div>

Modified: trunk/LayoutTests/inspector-protocol/dom/getAccessibilityPropertiesForNode.html (185532 => 185533)


--- trunk/LayoutTests/inspector-protocol/dom/getAccessibilityPropertiesForNode.html	2015-06-13 03:52:06 UTC (rev 185532)
+++ trunk/LayoutTests/inspector-protocol/dom/getAccessibilityPropertiesForNode.html	2015-06-13 06:04:25 UTC (rev 185533)
@@ -41,7 +41,7 @@
 
 <div class="ex" role="button" tabindex="0"></div>
 <div class="ex" role="button" tabindex="0" aria-disabled="true">disabled</div>
-<div class="ex" role="button" tabindex="0" aria-pressed="true">FIXME: Pressed is false. Expected true. http://webkit.org/b/129830</div>
+<div class="ex" role="button" tabindex="0" aria-pressed="true">Pressed.</div>
 <div class="ex" role="button" tabindex="0" aria-pressed="false">Not Pressed.</div>
 <button class="ex"></button>
 <input class="ex" type="button">

Modified: trunk/Source/WebCore/ChangeLog (185532 => 185533)


--- trunk/Source/WebCore/ChangeLog	2015-06-13 03:52:06 UTC (rev 185532)
+++ trunk/Source/WebCore/ChangeLog	2015-06-13 06:04:25 UTC (rev 185533)
@@ -1,3 +1,28 @@
+2015-06-12  Chris Fleizach  <[email protected]>
+
+        AX:ARIA Toggle buttons aren't properly conveyed on iOS using VoiceOver
+        https://bugs.webkit.org/show_bug.cgi?id=145949
+
+        Reviewed by Darin Adler.
+
+        Expose pressed state information to the iOS platform AX API.
+
+        Test: Updated inspector-protocol/dom/getAccessibilityPropertiesForNode.html 
+              There was a FIXME for this issue in that test: https://bugs.webkit.org/show_bug.cgi?id=129830
+
+        * accessibility/AccessibilityNodeObject.cpp:
+        (WebCore::AccessibilityNodeObject::isPressed):
+        * accessibility/AccessibilityObject.cpp:
+        (WebCore::AccessibilityObject::classList):
+        (WebCore::AccessibilityObject::supportsARIAPressed):
+        (WebCore::AccessibilityObject::supportsARIAExpanded):
+        * accessibility/AccessibilityObject.h:
+        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
+        (-[WebAccessibilityObjectWrapper accessibilityARIALiveRegionIsAtomic]):
+        (-[WebAccessibilityObjectWrapper accessibilitySupportsARIAPressed]):
+        (-[WebAccessibilityObjectWrapper accessibilityIsPressed]):
+        (-[WebAccessibilityObjectWrapper accessibilitySupportsARIAExpanded]):
+
 2015-06-12  Gyuyoung Kim  <[email protected]>
 
         Purge PassRefPtr in _javascript_Core - 2

Modified: trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp (185532 => 185533)


--- trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp	2015-06-13 03:52:06 UTC (rev 185532)
+++ trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp	2015-06-13 06:04:25 UTC (rev 185533)
@@ -693,7 +693,8 @@
         return false;
 
     // If this is an ARIA button, check the aria-pressed attribute rather than node()->active()
-    if (ariaRoleAttribute() == ButtonRole) {
+    AccessibilityRole ariaRole = ariaRoleAttribute();
+    if (ariaRole == ButtonRole || ariaRole == ToggleButtonRole) {
         if (equalIgnoringCase(getAttribute(aria_pressedAttr), "true"))
             return true;
         return false;

Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.cpp (185532 => 185533)


--- trunk/Source/WebCore/accessibility/AccessibilityObject.cpp	2015-06-13 03:52:06 UTC (rev 185532)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.cpp	2015-06-13 06:04:25 UTC (rev 185533)
@@ -2213,6 +2213,11 @@
         classList.append(list.item(k).string());
 }
 
+bool AccessibilityObject::supportsARIAPressed() const
+{
+    const AtomicString& expanded = getAttribute(aria_pressedAttr);
+    return equalIgnoringCase(expanded, "true") || equalIgnoringCase(expanded, "false");
+}
     
 bool AccessibilityObject::supportsARIAExpanded() const
 {

Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.h (185532 => 185533)


--- trunk/Source/WebCore/accessibility/AccessibilityObject.h	2015-06-13 03:52:06 UTC (rev 185532)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.h	2015-06-13 06:04:25 UTC (rev 185533)
@@ -606,6 +606,7 @@
     bool ariaPressedIsPresent() const;
     bool ariaIsMultiline() const;
     String invalidStatus() const;
+    bool supportsARIAPressed() const;
     bool supportsARIAExpanded() const;
     bool supportsChecked() const;
     AccessibilitySortDirection sortDirection() const;

Modified: trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm (185532 => 185533)


--- trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm	2015-06-13 03:52:06 UTC (rev 185532)
+++ trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm	2015-06-13 06:04:25 UTC (rev 185533)
@@ -2300,6 +2300,22 @@
     return m_object->ariaLiveRegionAtomic();
 }
 
+- (BOOL)accessibilitySupportsARIAPressed
+{
+    if (![self _prepareAccessibilityCall])
+        return NO;
+    
+    return m_object->supportsARIAPressed();
+}
+
+- (BOOL)accessibilityIsPressed
+{
+    if (![self _prepareAccessibilityCall])
+        return NO;
+    
+    return m_object->isPressed();
+}
+
 - (BOOL)accessibilitySupportsARIAExpanded
 {
     if (![self _prepareAccessibilityCall])
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to