Changeset 180600 in webkit
- Timestamp:
- Feb 24, 2015 5:43:42 PM (9 years ago)
- Location:
- trunk
- Files:
-
- 10 added
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r180599 r180600 1 2015-02-24 Joanmarie Diggs <jdiggs@igalia.com> 2 3 AX: Implement support for ARIA 1.1 'switch' role 4 https://bugs.webkit.org/show_bug.cgi?id=141986 5 6 Reviewed by Chris Fleizach. 7 8 * accessibility/aria-switch-checked-expected.txt: Added. 9 * accessibility/aria-switch-checked.html: Added. 10 * accessibility/aria-switch-sends-notification-expected.txt: Added. 11 * accessibility/aria-switch-sends-notification.html: Added. 12 * accessibility/aria-switch-text.html: Added. 13 * accessibility/roles-exposed.html: Added a test case for the new role. 14 * platform/efl/accessibility/aria-fallback-roles-expected.txt: Added. 15 * platform/efl/accessibility/aria-switch-text-expected.txt: Added. 16 * platform/efl/accessibility/roles-exposed-expected.txt: Updated for the new role. 17 * platform/gtk/accessibility/aria-fallback-roles-expected.txt: Added. 18 * platform/gtk/accessibility/aria-switch-text-expected.txt: Added. 19 * platform/gtk/accessibility/roles-exposed-expected.txt: Updated for the new role. 20 * platform/mac-mavericks/accessibility/roles-exposed-expected.txt: Updated for the new role. 21 * platform/mac/TestExpectations: Skip the 'checked' notifcation as the Mac doesn't have it. 22 * platform/mac/accessibility/aria-switch-text-expected.txt: Added. 23 * platform/mac/accessibility/roles-exposed-expected.txt: Updated for the new role. 24 1 25 2015-02-24 Myles C. Maxfield <mmaxfield@apple.com> 2 26 -
trunk/LayoutTests/accessibility/roles-exposed.html
r179253 r180600 305 305 <div role="spinbutton" data-platform="atk,mac" class="ex">X</div> 306 306 <div role="status" data-platform="atk,mac" class="ex">X</div> 307 <div role="switch" data-platform="atk,mac" class="ex">X</div> 307 308 <div role="tablist" data-platform="atk,mac" class="ex"> 308 309 <div role="tab" data-platform="atk,mac" class="ex">X</div> -
trunk/LayoutTests/platform/efl/accessibility/roles-exposed-expected.txt
r179425 r180600 644 644 AXRole: AXStatusBar 645 645 646 div[role=switch] 647 AXRole: AXToggleButton 648 646 649 div[role=tablist] 647 650 AXRole: AXTabGroup -
trunk/LayoutTests/platform/gtk/accessibility/roles-exposed-expected.txt
r180566 r180600 644 644 AXRole: AXStatusBar 645 645 646 div[role=switch] 647 AXRole: AXToggleButton 648 646 649 div[role=tablist] 647 650 AXRole: AXTabGroup -
trunk/LayoutTests/platform/mac-mavericks/accessibility/roles-exposed-expected.txt
r179253 r180600 1070 1070 AXRoleDescription: application status 1071 1071 1072 div[role=switch] 1073 AXRole: AXCheckBox 1074 AXSubrole: AXSwitch 1075 AXRoleDescription: switch 1076 1072 1077 div[role=tablist] 1073 1078 AXRole: AXTabGroup -
trunk/LayoutTests/platform/mac/TestExpectations
r180549 r180600 32 32 # Accessibility tests for notifications that don't exist or aren't needed on Mac OS X. 33 33 accessibility/aria-checkbox-sends-notification.html 34 accessibility/aria-switch-sends-notification.html 34 35 accessibility/combo-box-collapsed-selection-changed.html 35 36 accessibility/children-changed-sends-notification.html -
trunk/LayoutTests/platform/mac/accessibility/roles-exposed-expected.txt
r179253 r180600 1070 1070 AXRoleDescription: application status 1071 1071 1072 div[role=switch] 1073 AXRole: AXCheckBox 1074 AXSubrole: AXSwitch 1075 AXRoleDescription: switch 1076 1072 1077 div[role=tablist] 1073 1078 AXRole: AXTabGroup -
trunk/Source/WebCore/ChangeLog
r180599 r180600 1 2015-02-24 Joanmarie Diggs <jdiggs@igalia.com> 2 3 AX: Implement support for ARIA 1.1 'switch' role 4 https://bugs.webkit.org/show_bug.cgi?id=141986 5 6 Reviewed by Chris Fleizach. 7 8 Map the role to ATK_ROLE_TOGGLE_BUTTON for Gtk and Efl; on the Mac, to 9 AXCheckBox with a subrole of AXSwitch. Ensure it looks and acts like a 10 widget to accessibility APIs (supports and emits notifications when 11 toggled, doesn't have children, exposes a name and description when 12 provided). 13 14 Tests: accessibility/aria-switch-checked.html 15 accessibility/aria-switch-sends-notification.html 16 accessibility/aria-switch-text.html 17 18 * accessibility/AccessibilityNodeObject.cpp: 19 (WebCore::AccessibilityNodeObject::canHaveChildren): 20 (WebCore::AccessibilityNodeObject::isChecked): 21 (WebCore::AccessibilityNodeObject::visibleText): 22 (WebCore::AccessibilityNodeObject::title): 23 * accessibility/AccessibilityObject.cpp: 24 (WebCore::AccessibilityObject::isARIAInput): 25 (WebCore::AccessibilityObject::actionVerb): 26 (WebCore::initializeRoleMap): 27 (WebCore::AccessibilityObject::supportsChecked): 28 (WebCore::AccessibilityObject::checkboxOrRadioValue): 29 * accessibility/AccessibilityObject.h: 30 (WebCore::AccessibilityObject::isSwitch): 31 * accessibility/atk/AXObjectCacheAtk.cpp: 32 (WebCore::AXObjectCache::postPlatformNotification): 33 * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: 34 (atkRole): 35 * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: 36 (-[WebAccessibilityObjectWrapper accessibilityCanFuzzyHitTest]): 37 (-[WebAccessibilityObjectWrapper accessibilityTraits]): 38 (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]): 39 * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: 40 (createAccessibilityRoleMap): 41 (-[WebAccessibilityObjectWrapper subrole]): 42 (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]): 43 1 44 2015-02-24 Myles C. Maxfield <mmaxfield@apple.com> 2 45 -
trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp
r179157 r180600 404 404 case ScrollBarRole: 405 405 case ProgressIndicatorRole: 406 case SwitchRole: 406 407 return false; 407 408 default: … … 700 701 case MenuItemCheckboxRole: 701 702 case MenuItemRadioRole: 703 case SwitchRole: 702 704 validRole = true; 703 705 break; … … 1357 1359 case MenuItemRadioRole: 1358 1360 case RadioButtonRole: 1361 case SwitchRole: 1359 1362 case TabRole: 1360 1363 case ProgressIndicatorRole: … … 1735 1738 case MenuItemRadioRole: 1736 1739 case RadioButtonRole: 1740 case SwitchRole: 1737 1741 case TabRole: 1738 1742 return textUnderElement(); -
trunk/Source/WebCore/accessibility/AccessibilityObject.cpp
r179143 r180600 780 780 bool AccessibilityObject::isARIAInput(AccessibilityRole ariaRole) 781 781 { 782 return ariaRole == RadioButtonRole || ariaRole == CheckBoxRole || ariaRole == TextFieldRole ;782 return ariaRole == RadioButtonRole || ariaRole == CheckBoxRole || ariaRole == TextFieldRole || ariaRole == SwitchRole; 783 783 } 784 784 … … 1734 1734 return radioButtonAction; 1735 1735 case CheckBoxRole: 1736 case SwitchRole: 1736 1737 return isChecked() ? checkedCheckBoxAction : uncheckedCheckBoxAction; 1737 1738 case LinkRole: … … 1916 1917 { "spinbutton", SpinButtonRole }, 1917 1918 { "status", ApplicationStatusRole }, 1919 { "switch", SwitchRole }, 1918 1920 { "tab", TabRole }, 1919 1921 { "tablist", TabListRole }, … … 2213 2215 case MenuItemRadioRole: 2214 2216 case RadioButtonRole: 2217 case SwitchRole: 2215 2218 return true; 2216 2219 default: … … 2222 2225 { 2223 2226 // If this is a real checkbox or radio button, AccessibilityRenderObject will handle. 2224 // If it's an ARIA checkbox or radio,the aria-checked attribute should be used.2227 // If it's an ARIA checkbox, radio, or switch the aria-checked attribute should be used. 2225 2228 2226 2229 const AtomicString& result = getAttribute(aria_checkedAttr); … … 2228 2231 return ButtonStateOn; 2229 2232 if (equalIgnoringCase(result, "mixed")) { 2230 // ARIA says that radio and menuitemradioelements must NOT expose button state mixed.2233 // ARIA says that radio, menuitemradio, and switch elements must NOT expose button state mixed. 2231 2234 AccessibilityRole ariaRole = ariaRoleAttribute(); 2232 if (ariaRole == RadioButtonRole || ariaRole == MenuItemRadioRole )2235 if (ariaRole == RadioButtonRole || ariaRole == MenuItemRadioRole || ariaRole == SwitchRole) 2233 2236 return ButtonStateOff; 2234 2237 return ButtonStateMixed; -
trunk/Source/WebCore/accessibility/AccessibilityObject.h
r179253 r180600 189 189 SplitterRole, 190 190 StaticTextRole, 191 SwitchRole, 191 192 SystemWideRole, 192 193 SVGRootRole, … … 500 501 virtual bool isMockObject() const { return false; } 501 502 virtual bool isMediaControlLabel() const { return false; } 503 bool isSwitch() const { return roleValue() == SwitchRole; } 502 504 bool isTextControl() const; 503 505 bool isARIATextControl() const; -
trunk/Source/WebCore/accessibility/atk/AXObjectCacheAtk.cpp
r176076 r180600 195 195 switch (notification) { 196 196 case AXCheckedStateChanged: 197 if (!coreObject->isCheckboxOrRadio() )197 if (!coreObject->isCheckboxOrRadio() && !coreObject->isSwitch()) 198 198 return; 199 199 atk_object_notify_state_change(axObject, ATK_STATE_CHECKED, coreObject->isChecked()); -
trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp
r180566 r180600 511 511 case ButtonRole: 512 512 return ATK_ROLE_PUSH_BUTTON; 513 case SwitchRole: 513 514 case ToggleButtonRole: 514 515 return ATK_ROLE_TOGGLE_BUTTON; -
trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm
r180273 r180600 300 300 case SliderRole: 301 301 case StaticTextRole: 302 case SwitchRole: 302 303 case TabRole: 303 304 case TextFieldRole: … … 567 568 case ToggleButtonRole: 568 569 case CheckBoxRole: 570 case SwitchRole: 569 571 traits |= ([self _axButtonTrait] | [self _axToggleTrait]); 570 572 break; … … 646 648 case DocumentMathRole: 647 649 case HorizontalRuleRole: 650 case SwitchRole: 648 651 return true; 649 652 case StaticTextRole: -
trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm
r180273 r180600 1943 1943 { VideoRole, NSAccessibilityGroupRole }, 1944 1944 { HorizontalRuleRole, NSAccessibilitySplitterRole }, 1945 { BlockquoteRole, NSAccessibilityGroupRole } 1945 { BlockquoteRole, NSAccessibilityGroupRole }, 1946 { SwitchRole, NSAccessibilityCheckBoxRole }, 1946 1947 }; 1947 1948 AccessibilityRoleMap& roleMap = *new AccessibilityRoleMap; … … 2118 2119 if (m_object->isMediaTimeline()) 2119 2120 return NSAccessibilityTimelineSubrole; 2121 2122 if (m_object->isSwitch()) 2123 return NSAccessibilitySwitchSubrole; 2120 2124 2121 2125 return nil; … … 2435 2439 return [NSNumber numberWithInt:m_object->headingLevel()]; 2436 2440 2437 if (m_object->isCheckboxOrRadio() || m_object->isMenuItem() ) {2441 if (m_object->isCheckboxOrRadio() || m_object->isMenuItem() || m_object->isSwitch()) { 2438 2442 switch (m_object->checkboxOrRadioValue()) { 2439 2443 case ButtonStateOff:
Note: See TracChangeset
for help on using the changeset viewer.