Changeset 229112 in webkit


Ignore:
Timestamp:
Feb 28, 2018 4:30:08 PM (6 years ago)
Author:
n_wang@apple.com
Message:

AX: AOM: Dispatch accessiblesetvalue event
https://bugs.webkit.org/show_bug.cgi?id=183021
<rdar://problem/37764242>

Reviewed by Chris Fleizach.

Source/WebCore:

Accessibility events.
Spec: https://wicg.github.io/aom/spec/phase2.html

Added a new event type AccessibleSetValueEvent.

Test: accessibility/mac/AOM-event-accessiblesetvalue.html

  • CMakeLists.txt:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/AccessibilityAllInOne.cpp:
  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::canSetValueAttribute const):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::press):
(WebCore::AccessibilityObject::dispatchAccessibilityEvent):
(WebCore::AccessibilityObject::dispatchAccessibleSetValueEvent):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::setValue):

  • accessibility/AccessibilityScrollbar.cpp:

(WebCore::AccessibilityScrollbar::setValue):

  • accessibility/AccessibilitySlider.cpp:

(WebCore::AccessibilitySlider::setValue):

  • accessibility/AccessibleSetValueEvent.cpp: Added.

(WebCore::AccessibleSetValueEvent::AccessibleSetValueEvent):

  • accessibility/AccessibleSetValueEvent.h: Added.

(WebCore::AccessibleSetValueEvent::create):
(WebCore::AccessibleSetValueEvent::value const):

  • accessibility/AccessibleSetValueEvent.idl: Added.
  • dom/Element.idl:
  • dom/EventNames.h:
  • dom/EventNames.in:

LayoutTests:

  • accessibility/mac/AOM-event-accessiblesetvalue-expected.txt: Added.
  • accessibility/mac/AOM-event-accessiblesetvalue.html: Added.
  • js/dom/dom-static-property-for-in-iteration-expected.txt:
Location:
trunk
Files:
5 added
17 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r229108 r229112  
     12018-02-28  Nan Wang  <n_wang@apple.com>
     2
     3        AX: AOM: Dispatch accessiblesetvalue event
     4        https://bugs.webkit.org/show_bug.cgi?id=183021
     5        <rdar://problem/37764242>
     6
     7        Reviewed by Chris Fleizach.
     8
     9        * accessibility/mac/AOM-event-accessiblesetvalue-expected.txt: Added.
     10        * accessibility/mac/AOM-event-accessiblesetvalue.html: Added.
     11        * js/dom/dom-static-property-for-in-iteration-expected.txt:
     12
    1132018-02-28  Chris Dumez  <cdumez@apple.com>
    214
  • trunk/LayoutTests/js/dom/dom-static-property-for-in-iteration-expected.txt

    r228827 r229112  
    136136PASS a["outerHTML"] is <a id="foo" href="bar">nerget</a>
    137137PASS a["onaccessibleclick"] is null
     138PASS a["onaccessiblesetvalue"] is null
    138139PASS a["oncopy"] is null
    139140PASS a["oncut"] is null
  • trunk/Source/WebCore/CMakeLists.txt

    r228662 r229112  
    439439    Modules/webvr/VRPose.idl
    440440    Modules/webvr/VRStageParameters.idl
     441
     442    accessibility/AccessibleSetValueEvent.idl
    441443
    442444    animation/Animatable.idl
  • trunk/Source/WebCore/ChangeLog

    r229108 r229112  
     12018-02-28  Nan Wang  <n_wang@apple.com>
     2
     3        AX: AOM: Dispatch accessiblesetvalue event
     4        https://bugs.webkit.org/show_bug.cgi?id=183021
     5        <rdar://problem/37764242>
     6
     7        Reviewed by Chris Fleizach.
     8
     9        Accessibility events.
     10        Spec: https://wicg.github.io/aom/spec/phase2.html
     11
     12        Added a new event type AccessibleSetValueEvent.
     13
     14        Test: accessibility/mac/AOM-event-accessiblesetvalue.html
     15
     16        * CMakeLists.txt:
     17        * DerivedSources.make:
     18        * Sources.txt:
     19        * WebCore.xcodeproj/project.pbxproj:
     20        * accessibility/AccessibilityAllInOne.cpp:
     21        * accessibility/AccessibilityNodeObject.cpp:
     22        (WebCore::AccessibilityNodeObject::canSetValueAttribute const):
     23        * accessibility/AccessibilityObject.cpp:
     24        (WebCore::AccessibilityObject::press):
     25        (WebCore::AccessibilityObject::dispatchAccessibilityEvent):
     26        (WebCore::AccessibilityObject::dispatchAccessibleSetValueEvent):
     27        * accessibility/AccessibilityObject.h:
     28        * accessibility/AccessibilityRenderObject.cpp:
     29        (WebCore::AccessibilityRenderObject::setValue):
     30        * accessibility/AccessibilityScrollbar.cpp:
     31        (WebCore::AccessibilityScrollbar::setValue):
     32        * accessibility/AccessibilitySlider.cpp:
     33        (WebCore::AccessibilitySlider::setValue):
     34        * accessibility/AccessibleSetValueEvent.cpp: Added.
     35        (WebCore::AccessibleSetValueEvent::AccessibleSetValueEvent):
     36        * accessibility/AccessibleSetValueEvent.h: Added.
     37        (WebCore::AccessibleSetValueEvent::create):
     38        (WebCore::AccessibleSetValueEvent::value const):
     39        * accessibility/AccessibleSetValueEvent.idl: Added.
     40        * dom/Element.idl:
     41        * dom/EventNames.h:
     42        * dom/EventNames.in:
     43
    1442018-02-28  Chris Dumez  <cdumez@apple.com>
    245
  • trunk/Source/WebCore/DerivedSources.make

    r229081 r229112  
    361361    $(WebCore)/Modules/webvr/VRPose.idl \
    362362    $(WebCore)/Modules/webvr/VRStageParameters.idl \
     363    $(WebCore)/accessibility/AccessibleSetValueEvent.idl \
    363364    $(WebCore)/animation/Animatable.idl \
    364365    $(WebCore)/animation/AnimationEffectReadOnly.idl \
  • trunk/Source/WebCore/Sources.txt

    r229089 r229112  
    330330accessibility/AccessibilityTree.cpp
    331331accessibility/AccessibilityTreeItem.cpp
     332accessibility/AccessibleSetValueEvent.cpp
    332333
    333334animation/AnimationEffectReadOnly.cpp
     
    23282329JSAbortSignal.cpp
    23292330JSAbstractWorker.cpp
     2331JSAccessibleSetValueEvent.cpp
    23302332JSAesCbcCfbParams.cpp
    23312333JSAesCtrParams.cpp
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r229079 r229112  
    32333233                A9D248070D757E7D00FDF959 /* JSDOMMimeType.h in Headers */ = {isa = PBXBuildFile; fileRef = A9D248030D757E7D00FDF959 /* JSDOMMimeType.h */; };
    32343234                A9D248090D757E7D00FDF959 /* JSDOMMimeTypeArray.h in Headers */ = {isa = PBXBuildFile; fileRef = A9D248050D757E7D00FDF959 /* JSDOMMimeTypeArray.h */; };
     3235                A9F2E0EB20475CDE00512855 /* AccessibleSetValueEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F2E0E820475CDC00512855 /* AccessibleSetValueEvent.h */; };
    32353236                AA12DF491743DF83004DAFDF /* PlatformSpeechSynthesizerIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = AAE3755D17429BCC006200C2 /* PlatformSpeechSynthesizerIOS.mm */; };
    32363237                AA21ECCD0ABF0FC6002B834C /* CSSCursorImageValue.h in Headers */ = {isa = PBXBuildFile; fileRef = AA0978EE0ABAA6E100874480 /* CSSCursorImageValue.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    1157011571                A9D248040D757E7D00FDF959 /* JSDOMMimeTypeArray.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSDOMMimeTypeArray.cpp; sourceTree = "<group>"; };
    1157111572                A9D248050D757E7D00FDF959 /* JSDOMMimeTypeArray.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSDOMMimeTypeArray.h; sourceTree = "<group>"; };
     11573                A9F2E0E720475CDC00512855 /* AccessibleSetValueEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AccessibleSetValueEvent.cpp; sourceTree = "<group>"; };
     11574                A9F2E0E820475CDC00512855 /* AccessibleSetValueEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccessibleSetValueEvent.h; sourceTree = "<group>"; };
     11575                A9F2E0E920475CDE00512855 /* AccessibleSetValueEvent.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = AccessibleSetValueEvent.idl; sourceTree = "<group>"; };
    1157211576                AA0978ED0ABAA6E100874480 /* CSSCursorImageValue.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CSSCursorImageValue.cpp; sourceTree = "<group>"; };
    1157311577                AA0978EE0ABAA6E100874480 /* CSSCursorImageValue.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CSSCursorImageValue.h; sourceTree = "<group>"; };
     
    1624916253                                A91C9FC01B659A6700AFFD54 /* AccessibilityTreeItem.cpp */,
    1625016254                                A91C9FC11B659A6700AFFD54 /* AccessibilityTreeItem.h */,
     16255                                A9F2E0E720475CDC00512855 /* AccessibleSetValueEvent.cpp */,
     16256                                A9F2E0E820475CDC00512855 /* AccessibleSetValueEvent.h */,
     16257                                A9F2E0E920475CDE00512855 /* AccessibleSetValueEvent.idl */,
    1625116258                                2981CAAF131822EC00D12F2A /* AXObjectCache.cpp */,
    1625216259                                29A8121A0FBB9C1D00510293 /* AXObjectCache.h */,
     
    2702227029                                9746AF2114F4DDE6003E7A71 /* Coordinates.h in Headers */,
    2702327030                                3F8020351E9E47BF00DEC61D /* CoreAudioCaptureDevice.h in Headers */,
     27031                                A9F2E0EB20475CDE00512855 /* AccessibleSetValueEvent.h in Headers */,
    2702427032                                3F8020371E9E47C500DEC61D /* CoreAudioCaptureDeviceManager.h in Headers */,
    2702527033                                07AFF4221EFB144900B545B3 /* CoreAudioCaptureSourceIOS.h in Headers */,
  • trunk/Source/WebCore/accessibility/AccessibilityAllInOne.cpp

    r228427 r229112  
    5959#include "AccessibilityTree.cpp"
    6060#include "AccessibilityTreeItem.cpp"
     61#include "AccessibleSetValueEvent.cpp"
  • trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp

    r228427 r229112  
    20842084        return false;
    20852085
    2086     if (isProgressIndicator() || isSlider())
     2086    if (isProgressIndicator() || isSlider() || isScrollbar())
    20872087        return true;
    20882088
  • trunk/Source/WebCore/accessibility/AccessibilityObject.cpp

    r228827 r229112  
    3434#include "AccessibilityScrollView.h"
    3535#include "AccessibilityTable.h"
     36#include "AccessibleSetValueEvent.h"
    3637#include "DOMTokenList.h"
    3738#include "Editing.h"
     
    998999        if (auto* pressObject = cache->getOrCreate(pressElement)) {
    9991000            auto event = Event::create(eventNames().accessibleclickEvent, true, true);
    1000             pressObject->dispatchAccessibilityEvent(event);
    1001             if (event->defaultPrevented())
     1001            if (pressObject->dispatchAccessibilityEvent(event))
    10021002                return true;
    10031003        }
     
    21542154}
    21552155
    2156 void AccessibilityObject::dispatchAccessibilityEvent(Event& event)
     2156bool AccessibilityObject::dispatchAccessibilityEvent(Event& event)
    21572157{
    21582158    Vector<Element*> eventPath;
     
    21632163   
    21642164    EventDispatcher::dispatchEvent(eventPath, event);
     2165   
     2166    // return true if preventDefault() was called, so that we don't execute the fallback behavior.
     2167    return event.defaultPrevented();
     2168}
     2169
     2170bool AccessibilityObject::dispatchAccessibleSetValueEvent(const String& value)
     2171{
     2172    if (!canSetValueAttribute())
     2173        return false;
     2174    auto event = AccessibleSetValueEvent::create(eventNames().accessiblesetvalueEvent, value);
     2175    return dispatchAccessibilityEvent(event);
    21652176}
    21662177
  • trunk/Source/WebCore/accessibility/AccessibilityObject.h

    r228827 r229112  
    896896    bool hasTagName(const QualifiedName&) const;
    897897   
    898     void dispatchAccessibilityEvent(Event&);
     898    bool dispatchAccessibilityEvent(Event&);
     899    bool dispatchAccessibleSetValueEvent(const String&);
    899900
    900901    virtual VisiblePositionRange visiblePositionRange() const { return VisiblePositionRange(); }
  • trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp

    r228427 r229112  
    17581758    if (!m_renderer || !is<Element>(m_renderer->node()))
    17591759        return;
     1760    if (dispatchAccessibleSetValueEvent(string))
     1761        return;
     1762   
    17601763    Element& element = downcast<Element>(*m_renderer->node());
    17611764    RenderObject& renderer = *m_renderer;
  • trunk/Source/WebCore/accessibility/AccessibilityScrollbar.cpp

    r224074 r229112  
    9999   
    100100    float newValue = value * m_scrollbar->maximum();
     101    if (dispatchAccessibleSetValueEvent(String::number(newValue)))
     102        return;
    101103    m_scrollbar->scrollableArea().scrollToOffsetWithoutAnimation(m_scrollbar->orientation(), newValue);
    102104}
  • trunk/Source/WebCore/accessibility/AccessibilitySlider.cpp

    r224074 r229112  
    129129void AccessibilitySlider::setValue(const String& value)
    130130{
     131    if (dispatchAccessibleSetValueEvent(value))
     132        return;
     133
    131134    HTMLInputElement* input = inputElement();
    132135   
  • trunk/Source/WebCore/dom/Element.idl

    r228827 r229112  
    144144    // Accessibility events.
    145145    [EnabledAtRuntime=AccessibilityObjectModel] attribute EventHandler onaccessibleclick;
     146    [EnabledAtRuntime=AccessibilityObjectModel] attribute EventHandler onaccessiblesetvalue;
    146147};
    147148
  • trunk/Source/WebCore/dom/EventNames.h

    r228827 r229112  
    4747    macro(abort) \
    4848    macro(accessibleclick) \
     49    macro(accessiblesetvalue) \
    4950    macro(activate) \
    5051    macro(active) \
  • trunk/Source/WebCore/dom/EventNames.in

    r226766 r229112  
    7777MediaKeyMessageEvent conditional=ENCRYPTED_MEDIA
    7878VRDisplayEvent
     79AccessibleSetValueEvent
Note: See TracChangeset for help on using the changeset viewer.