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