Changeset 229310 in webkit
- Timestamp:
- Mar 6, 2018 12:18:53 AM (6 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r229308 r229310 1 2018-03-06 Nan Wang <n_wang@apple.com> 2 3 AX: AOM: More accessibility events support 4 https://bugs.webkit.org/show_bug.cgi?id=183023 5 <rdar://problem/37764380> 6 7 Reviewed by Chris Fleizach. 8 9 * accessibility/mac/AOM-events-all-expected.txt: Added. 10 * accessibility/mac/AOM-events-all.html: Added. 11 * js/dom/dom-static-property-for-in-iteration-expected.txt: 12 1 13 2018-03-05 Yoav Weiss <yoav@yoav.ws> 2 14 -
trunk/LayoutTests/js/dom/dom-static-property-for-in-iteration-expected.txt
r229112 r229310 135 135 PASS a["innerHTML"] is nerget 136 136 PASS a["outerHTML"] is <a id="foo" href="bar">nerget</a> 137 PASS a["onaccessiblecontextmenu"] is null 137 138 PASS a["onaccessibleclick"] is null 139 PASS a["onaccessibledecrement"] is null 140 PASS a["onaccessibledismiss"] is null 141 PASS a["onaccessiblefocus"] is null 142 PASS a["onaccessibleincrement"] is null 143 PASS a["onaccessiblescrollintoview"] is null 138 144 PASS a["onaccessiblesetvalue"] is null 145 PASS a["onaccessibleselect"] is null 139 146 PASS a["oncopy"] is null 140 147 PASS a["oncut"] is null -
trunk/LayoutTests/platform/mac-wk1/TestExpectations
r229297 r229310 495 495 496 496 webkit.org/b/180898 accessibility/mac/AOM-events.html [ Skip ] 497 webkit.org/b/183023 accessibility/mac/AOM-events-all.html [ Skip ] 497 498 498 499 webkit.org/b/182752 accessibility/mac/accessibility-make-first-responder.html [ Skip ] -
trunk/Source/WebCore/ChangeLog
r229309 r229310 1 2018-03-06 Nan Wang <n_wang@apple.com> 2 3 AX: AOM: More accessibility events support 4 https://bugs.webkit.org/show_bug.cgi?id=183023 5 <rdar://problem/37764380> 6 7 Reviewed by Chris Fleizach. 8 9 Accessibility events. 10 Spec: https://wicg.github.io/aom/spec/phase2.html 11 12 This change adds support for these new events: 13 accessiblecontextmenu 14 accessibledecrement 15 accessibledismiss 16 accessiblefocus 17 accessibleincrement 18 accessiblescrollintoview 19 accessibleselect 20 21 Note: The show context menu action is only supported on macOS now. 22 The dismiss action is not implemented for all the platforms yet. 23 24 Test: accessibility/mac/AOM-events-all.html 25 26 * accessibility/AccessibilityListBoxOption.cpp: 27 (WebCore::AccessibilityListBoxOption::setSelected): 28 * accessibility/AccessibilityMediaObject.cpp: 29 (WebCore::AccessibilityMediaObject::increment): 30 (WebCore::AccessibilityMediaObject::decrement): 31 * accessibility/AccessibilityMenuListOption.cpp: 32 (WebCore::AccessibilityMenuListOption::setSelected): 33 * accessibility/AccessibilityNodeObject.cpp: 34 (WebCore::AccessibilityNodeObject::increment): 35 (WebCore::AccessibilityNodeObject::decrement): 36 * accessibility/AccessibilityObject.cpp: 37 (WebCore::AccessibilityObject::press): 38 (WebCore::AccessibilityObject::dispatchAccessibilityEvent const): 39 (WebCore::AccessibilityObject::dispatchAccessibilityEventWithType const): 40 (WebCore::AccessibilityObject::dispatchAccessibleSetValueEvent const): 41 (WebCore::AccessibilityObject::scrollToMakeVisible const): 42 (WebCore::AccessibilityObject::dispatchAccessibilityEvent): Deleted. 43 (WebCore::AccessibilityObject::dispatchAccessibleSetValueEvent): Deleted. 44 * accessibility/AccessibilityObject.h: 45 * accessibility/AccessibilityRenderObject.cpp: 46 (WebCore::AccessibilityRenderObject::setFocused): 47 * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: 48 (-[WebAccessibilityObjectWrapper accessibilityShowContextMenu]): 49 * dom/Element.idl: 50 * dom/EventNames.h: 51 1 52 2018-03-05 Yusuke Suzuki <utatane.tea@gmail.com> 2 53 -
trunk/Source/WebCore/accessibility/AccessibilityListBoxOption.cpp
r228427 r229310 178 178 return; 179 179 180 if (selected && dispatchAccessibilityEventWithType(AccessibilityEventType::Select)) 181 return; 182 180 183 bool isOptionSelected = isSelected(); 181 184 if ((isOptionSelected && selected) || (!isOptionSelected && !selected)) -
trunk/Source/WebCore/accessibility/AccessibilityMediaObject.cpp
r223728 r229310 108 108 void AccessibilityMediaObject::increment() 109 109 { 110 if (dispatchAccessibilityEventWithType(AccessibilityEventType::Increment)) 111 return; 110 112 mediaSeek(AXSeekForward); 111 113 } … … 113 115 void AccessibilityMediaObject::decrement() 114 116 { 117 if (dispatchAccessibilityEventWithType(AccessibilityEventType::Decrement)) 118 return; 115 119 mediaSeek(AXSeekBackward); 116 120 } -
trunk/Source/WebCore/accessibility/AccessibilityMenuListOption.cpp
r191964 r229310 83 83 if (!canSetSelectedAttribute()) 84 84 return; 85 86 if (selected && dispatchAccessibilityEventWithType(AccessibilityEventType::Select)) 87 return; 85 88 86 89 downcast<HTMLOptionElement>(*m_element).setSelected(selected); -
trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp
r229112 r229310 1073 1073 void AccessibilityNodeObject::increment() 1074 1074 { 1075 if (dispatchAccessibilityEventWithType(AccessibilityEventType::Increment)) 1076 return; 1075 1077 UserGestureIndicator gestureIndicator(ProcessingUserGesture, document()); 1076 1078 alterSliderValue(true); … … 1079 1081 void AccessibilityNodeObject::decrement() 1080 1082 { 1083 if (dispatchAccessibilityEventWithType(AccessibilityEventType::Decrement)) 1084 return; 1081 1085 UserGestureIndicator gestureIndicator(ProcessingUserGesture, document()); 1082 1086 alterSliderValue(false); -
trunk/Source/WebCore/accessibility/AccessibilityObject.cpp
r229112 r229310 998 998 if (auto* cache = axObjectCache()) { 999 999 if (auto* pressObject = cache->getOrCreate(pressElement)) { 1000 auto event = Event::create(eventNames().accessibleclickEvent, true, true); 1001 if (pressObject->dispatchAccessibilityEvent(event)) 1000 if (pressObject->dispatchAccessibilityEventWithType(AccessibilityEventType::Click)) 1002 1001 return true; 1003 1002 } … … 2154 2153 } 2155 2154 2156 bool AccessibilityObject::dispatchAccessibilityEvent(Event& event) 2155 bool AccessibilityObject::dispatchAccessibilityEvent(Event& event) const 2157 2156 { 2158 2157 Vector<Element*> eventPath; 2159 2158 for (auto* parentObject = this; parentObject; parentObject = parentObject->parentObject()) { 2159 if (parentObject->isWebArea()) 2160 break; 2160 2161 if (auto* parentElement = parentObject->element()) 2161 2162 eventPath.append(parentElement); … … 2168 2169 } 2169 2170 2170 bool AccessibilityObject::dispatchAccessibleSetValueEvent(const String& value) 2171 bool AccessibilityObject::dispatchAccessibilityEventWithType(AccessibilityEventType type) const 2172 { 2173 AtomicString eventName; 2174 switch (type) { 2175 case AccessibilityEventType::ContextMenu: 2176 eventName = eventNames().accessiblecontextmenuEvent; 2177 break; 2178 case AccessibilityEventType::Click: 2179 eventName = eventNames().accessibleclickEvent; 2180 break; 2181 case AccessibilityEventType::Decrement: 2182 eventName = eventNames().accessibledecrementEvent; 2183 break; 2184 case AccessibilityEventType::Dismiss: 2185 eventName = eventNames().accessibledismissEvent; 2186 break; 2187 case AccessibilityEventType::Focus: 2188 eventName = eventNames().accessiblefocusEvent; 2189 break; 2190 case AccessibilityEventType::Increment: 2191 eventName = eventNames().accessibleincrementEvent; 2192 break; 2193 case AccessibilityEventType::ScrollIntoView: 2194 eventName = eventNames().accessiblescrollintoviewEvent; 2195 break; 2196 case AccessibilityEventType::Select: 2197 eventName = eventNames().accessibleselectEvent; 2198 break; 2199 default: 2200 return false; 2201 } 2202 2203 auto event = Event::create(eventName, true, true); 2204 return dispatchAccessibilityEvent(event); 2205 } 2206 2207 bool AccessibilityObject::dispatchAccessibleSetValueEvent(const String& value) const 2171 2208 { 2172 2209 if (!canSetValueAttribute()) … … 2925 2962 void AccessibilityObject::scrollToMakeVisible() const 2926 2963 { 2964 if (dispatchAccessibilityEventWithType(AccessibilityEventType::ScrollIntoView)) 2965 return; 2927 2966 IntRect objectRect = snappedIntRect(boundingBoxRect()); 2928 2967 objectRect.setLocation(IntPoint()); -
trunk/Source/WebCore/accessibility/AccessibilityObject.h
r229112 r229310 255 255 Action, 256 256 }; 257 258 enum class AccessibilityEventType { 259 ContextMenu, 260 Click, 261 Decrement, 262 Dismiss, 263 Focus, 264 Increment, 265 ScrollIntoView, 266 Select, 267 }; 257 268 258 269 struct AccessibilityText { … … 896 907 bool hasTagName(const QualifiedName&) const; 897 908 898 bool dispatchAccessibilityEvent(Event&); 899 bool dispatchAccessibleSetValueEvent(const String&); 909 bool dispatchAccessibilityEvent(Event&) const; 910 bool dispatchAccessibilityEventWithType(AccessibilityEventType) const; 911 bool dispatchAccessibleSetValueEvent(const String&) const; 900 912 901 913 virtual VisiblePositionRange visiblePositionRange() const { return VisiblePositionRange(); } -
trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp
r229112 r229310 1708 1708 void AccessibilityRenderObject::setFocused(bool on) 1709 1709 { 1710 if (on && dispatchAccessibilityEventWithType(AccessibilityEventType::Focus)) 1711 return; 1712 1710 1713 if (!canSetFocusAttribute()) 1711 1714 return; -
trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm
r229080 r229310 3540 3540 return; 3541 3541 3542 if (m_object->dispatchAccessibilityEventWithType(AccessibilityEventType::ContextMenu)) 3543 return; 3544 3542 3545 IntRect rect = snappedIntRect(m_object->elementRect()); 3543 3546 FrameView* frameView = m_object->documentFrameView(); -
trunk/Source/WebCore/dom/Element.idl
r229112 r229310 143 143 144 144 // Accessibility events. 145 [EnabledAtRuntime=AccessibilityObjectModel] attribute EventHandler onaccessiblecontextmenu; 145 146 [EnabledAtRuntime=AccessibilityObjectModel] attribute EventHandler onaccessibleclick; 147 [EnabledAtRuntime=AccessibilityObjectModel] attribute EventHandler onaccessibledecrement; 148 [EnabledAtRuntime=AccessibilityObjectModel] attribute EventHandler onaccessibledismiss; 149 [EnabledAtRuntime=AccessibilityObjectModel] attribute EventHandler onaccessiblefocus; 150 [EnabledAtRuntime=AccessibilityObjectModel] attribute EventHandler onaccessibleincrement; 151 [EnabledAtRuntime=AccessibilityObjectModel] attribute EventHandler onaccessiblescrollintoview; 146 152 [EnabledAtRuntime=AccessibilityObjectModel] attribute EventHandler onaccessiblesetvalue; 153 [EnabledAtRuntime=AccessibilityObjectModel] attribute EventHandler onaccessibleselect; 147 154 }; 148 155 -
trunk/Source/WebCore/dom/EventNames.h
r229112 r229310 46 46 macro(DOMSubtreeModified) \ 47 47 macro(abort) \ 48 macro(accessiblecontextmenu) \ 48 49 macro(accessibleclick) \ 50 macro(accessibledecrement) \ 51 macro(accessibledismiss) \ 52 macro(accessiblefocus) \ 53 macro(accessibleincrement) \ 54 macro(accessiblescrollintoview) \ 49 55 macro(accessiblesetvalue) \ 56 macro(accessibleselect) \ 50 57 macro(activate) \ 51 58 macro(active) \
Note: See TracChangeset
for help on using the changeset viewer.