Title: [149581] trunk
- Revision
- 149581
- Author
- cfleiz...@apple.com
- Date
- 2013-05-05 16:25:46 -0700 (Sun, 05 May 2013)
Log Message
AX: aria-checked not exposed correctly on menuitemcheckbox or menuitemradio roles
https://bugs.webkit.org/show_bug.cgi?id=115499
Reviewed by Tim Horton.
Source/WebCore:
Expose isChecked() for menu item objects.
Return the Mac-platform specific value that you find on menu items for "checked" menu items.
Test: platform/mac/accessibility/aria-menuitem-checked-value.html
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::isChecked):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
LayoutTests:
* platform/mac/accessibility/aria-menuitem-checked-value-expected.txt: Added.
* platform/mac/accessibility/aria-menuitem-checked-value.html: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (149580 => 149581)
--- trunk/LayoutTests/ChangeLog 2013-05-05 22:11:53 UTC (rev 149580)
+++ trunk/LayoutTests/ChangeLog 2013-05-05 23:25:46 UTC (rev 149581)
@@ -1,3 +1,13 @@
+2013-05-05 Chris Fleizach <cfleiz...@apple.com>
+
+ AX: aria-checked not exposed correctly on menuitemcheckbox or menuitemradio roles
+ https://bugs.webkit.org/show_bug.cgi?id=115499
+
+ Reviewed by Tim Horton.
+
+ * platform/mac/accessibility/aria-menuitem-checked-value-expected.txt: Added.
+ * platform/mac/accessibility/aria-menuitem-checked-value.html: Added.
+
2013-05-04 Dean Jackson <d...@apple.com>
Animations and Transitions should not start when globally suspended
Added: trunk/LayoutTests/platform/mac/accessibility/aria-menuitem-checked-value-expected.txt (0 => 149581)
--- trunk/LayoutTests/platform/mac/accessibility/aria-menuitem-checked-value-expected.txt (rev 0)
+++ trunk/LayoutTests/platform/mac/accessibility/aria-menuitem-checked-value-expected.txt 2013-05-05 23:25:46 UTC (rev 149581)
@@ -0,0 +1,13 @@
+This tests that the right Mac attribute for conveying 'checked' states works on menu items
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Item 1 Mark: ✓
+PASS !item2mark || item2mark == '' is true
+Item 3 Mark: ✓
+PASS !item4mark || item4mark == '' is true
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/platform/mac/accessibility/aria-menuitem-checked-value.html (0 => 149581)
--- trunk/LayoutTests/platform/mac/accessibility/aria-menuitem-checked-value.html (rev 0)
+++ trunk/LayoutTests/platform/mac/accessibility/aria-menuitem-checked-value.html 2013-05-05 23:25:46 UTC (rev 149581)
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src=""
+</head>
+<body id="body">
+
+<div id="menu" role="menu">
+
+<div role="menuitemcheckbox" id="menuitem1" aria-checked="true">test</div>
+<div role="menuitemcheckbox" id="menuitem2" aria-checked="false">test</div>
+
+<div role="menuitemradio" id="menuitem3" aria-checked="true">test</div>
+<div role="menuitemradio" id="menuitem4" aria-checked="false">test</div>
+
+</div>
+
+<p id="description"></p>
+<div id="console"></div>
+
+<script>
+
+ description("This tests that the right Mac attribute for conveying 'checked' states works on menu items");
+
+ if (window.accessibilityController) {
+
+ var item1 = accessibilityController.accessibleElementById("menuitem1");
+ debug("Item 1 Mark: " + item1.stringAttributeValue('AXMenuItemMarkChar'));
+
+ var item2 = accessibilityController.accessibleElementById("menuitem2");
+ var item2mark = item2.stringAttributeValue('AXMenuItemMarkChar');
+ shouldBeTrue("!item2mark || item2mark == ''");
+
+ var item3 = accessibilityController.accessibleElementById("menuitem3");
+ debug("Item 3 Mark: " + item3.stringAttributeValue('AXMenuItemMarkChar'));
+
+ var item4 = accessibilityController.accessibleElementById("menuitem4");
+ var item4mark = item4.stringAttributeValue('AXMenuItemMarkChar');
+ shouldBeTrue("!item4mark || item4mark == ''");
+
+ document.getElementById("menu").style.visibility = "hidden";
+ }
+
+</script>
+
+<script src=""
+</body>
+</html>
Modified: trunk/Source/WebCore/ChangeLog (149580 => 149581)
--- trunk/Source/WebCore/ChangeLog 2013-05-05 22:11:53 UTC (rev 149580)
+++ trunk/Source/WebCore/ChangeLog 2013-05-05 23:25:46 UTC (rev 149581)
@@ -1,3 +1,20 @@
+2013-05-05 Chris Fleizach <cfleiz...@apple.com>
+
+ AX: aria-checked not exposed correctly on menuitemcheckbox or menuitemradio roles
+ https://bugs.webkit.org/show_bug.cgi?id=115499
+
+ Reviewed by Tim Horton.
+
+ Expose isChecked() for menu item objects.
+ Return the Mac-platform specific value that you find on menu items for "checked" menu items.
+
+ Test: platform/mac/accessibility/aria-menuitem-checked-value.html
+
+ * accessibility/AccessibilityNodeObject.cpp:
+ (WebCore::AccessibilityNodeObject::isChecked):
+ * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
+ (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
+
2013-05-05 Tim Horton <timothy_hor...@apple.com>
[wk2] Page Overlays: deviceScaleFactor doesn't update when the display changes
Modified: trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp (149580 => 149581)
--- trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp 2013-05-05 22:11:53 UTC (rev 149580)
+++ trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp 2013-05-05 23:25:46 UTC (rev 149581)
@@ -649,14 +649,20 @@
return inputElement->shouldAppearChecked();
// Else, if this is an ARIA checkbox or radio, respect the aria-checked attribute
- AccessibilityRole ariaRole = ariaRoleAttribute();
- if (ariaRole == RadioButtonRole || ariaRole == CheckBoxRole) {
- if (equalIgnoringCase(getAttribute(aria_checkedAttr), "true"))
- return true;
- return false;
+ bool validRole = false;
+ switch (ariaRoleAttribute()) {
+ case RadioButtonRole:
+ case CheckBoxRole:
+ case MenuItemRole:
+ validRole = true;
+ break;
+ default:
+ break;
}
+
+ if (validRole && equalIgnoringCase(getAttribute(aria_checkedAttr), "true"))
+ return true;
- // Otherwise it's not checked
return false;
}
Modified: trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm (149580 => 149581)
--- trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm 2013-05-05 22:11:53 UTC (rev 149580)
+++ trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm 2013-05-05 23:25:46 UTC (rev 149581)
@@ -2296,7 +2296,12 @@
return m_object->stringValue();
}
-
+
+ if ([attributeName isEqualToString:(NSString *)kAXMenuItemMarkCharAttribute]) {
+ const unichar ch = 0x2713; // ✓ used on Mac for selected menu items.
+ return (m_object->isChecked()) ? [NSString stringWithCharacters:&ch length:1] : nil;
+ }
+
if ([attributeName isEqualToString: NSAccessibilityMinValueAttribute])
return [NSNumber numberWithFloat:m_object->minValueForRange()];
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes