- a/Source/WebCore/ChangeLog +30 lines
Lines 1-3 a/Source/WebCore/ChangeLog_sec1
1
2021-11-04  Carlos Garcia Campos  <cgarcia@igalia.com>
2
3
        AX: rename actionVerb() as localizedActionVerb()
4
        https://bugs.webkit.org/show_bug.cgi?id=232711
5
        <rdar://problem/85015496>
6
7
        Reviewed by NOBODY (OOPS!).
8
9
        Since it's returning the localized name. In ATSPI there are two methods in the action interface GetName and
10
        GetLocalizedName, so this patch also adds actionVerb() returning the unlocalized action name.
11
12
        * accessibility/AccessibilityObject.cpp:
13
        (WebCore::AccessibilityObject::localizedActionVerb const):
14
        (WebCore::AccessibilityObject::actionVerb const):
15
        * accessibility/AccessibilityObject.h:
16
        (WebCore::AccessibilityObject::localizedActionVerb const):
17
        * accessibility/AccessibilityObjectInterface.h:
18
        * accessibility/AccessibilityRenderObject.cpp:
19
        (WebCore::AccessibilityRenderObject::tabChildren):
20
        (WebCore::AccessibilityRenderObject::actionVerb const): Deleted.
21
        * accessibility/AccessibilityRenderObject.h:
22
        * accessibility/atk/WebKitAccessibleHyperlink.cpp:
23
        (webkitAccessibleHyperlinkActionGetName):
24
        * accessibility/atk/WebKitAccessibleInterfaceAction.cpp:
25
        (webkitAccessibleActionGetName):
26
        * accessibility/isolatedtree/AXIsolatedObject.cpp:
27
        (WebCore::AXIsolatedObject::initializeAttributeData):
28
        * accessibility/isolatedtree/AXIsolatedObject.h:
29
        * accessibility/isolatedtree/AXIsolatedTree.h:
30
1
2021-11-04  Carlos Garcia Campos  <cgarcia@igalia.com>
31
2021-11-04  Carlos Garcia Campos  <cgarcia@igalia.com>
2
32
3
        [GTK][a11y] Add implementation of hypertext interface when building with ATSPI
33
        [GTK][a11y] Add implementation of hypertext interface when building with ATSPI
- a/Source/WebCore/accessibility/AccessibilityObject.cpp -1 / +31 lines
Lines 1800-1806 const String AccessibilityObject::defaultLiveRegionStatusForRole(AccessibilityRo a/Source/WebCore/accessibility/AccessibilityObject.cpp_sec1
1800
}
1800
}
1801
    
1801
    
1802
#if ENABLE(ACCESSIBILITY)
1802
#if ENABLE(ACCESSIBILITY)
1803
String AccessibilityObject::actionVerb() const
1803
String AccessibilityObject::localizedActionVerb() const
1804
{
1804
{
1805
#if !PLATFORM(IOS_FAMILY)
1805
#if !PLATFORM(IOS_FAMILY)
1806
    // FIXME: Need to add verbs for select elements.
1806
    // FIXME: Need to add verbs for select elements.
Lines 1842-1847 String AccessibilityObject::actionVerb() const a/Source/WebCore/accessibility/AccessibilityObject.cpp_sec2
1842
    return nullAtom();
1842
    return nullAtom();
1843
#endif
1843
#endif
1844
}
1844
}
1845
1846
String AccessibilityObject::actionVerb() const
1847
{
1848
#if !PLATFORM(IOS_FAMILY)
1849
    // FIXME: Need to add verbs for select elements.
1850
    switch (roleValue()) {
1851
    case AccessibilityRole::Button:
1852
    case AccessibilityRole::ToggleButton:
1853
        return "press"_s;
1854
    case AccessibilityRole::TextField:
1855
    case AccessibilityRole::TextArea:
1856
        return "activate"_s;
1857
    case AccessibilityRole::RadioButton:
1858
        return "select"_s;
1859
    case AccessibilityRole::CheckBox:
1860
    case AccessibilityRole::Switch:
1861
        return isChecked() ? "uncheck"_s : "check"_s;
1862
    case AccessibilityRole::Link:
1863
    case AccessibilityRole::WebCoreLink:
1864
        return "jump"_s;
1865
    case AccessibilityRole::PopUpButton:
1866
    case AccessibilityRole::MenuListPopup:
1867
    case AccessibilityRole::ListItem:
1868
        return "select"_s;
1869
    default:
1870
        break;
1871
    }
1872
#endif
1873
    return { };
1874
}
1845
#endif
1875
#endif
1846
1876
1847
bool AccessibilityObject::ariaIsMultiline() const
1877
bool AccessibilityObject::ariaIsMultiline() const
- a/Source/WebCore/accessibility/AccessibilityObject.h +2 lines
Lines 441-446 public: a/Source/WebCore/accessibility/AccessibilityObject.h_sec1
441
    VisibleSelection selection() const override { return VisibleSelection(); }
441
    VisibleSelection selection() const override { return VisibleSelection(); }
442
    String selectedText() const override { return String(); }
442
    String selectedText() const override { return String(); }
443
    String accessKey() const override { return nullAtom(); }
443
    String accessKey() const override { return nullAtom(); }
444
    String localizedActionVerb() const override;
444
    String actionVerb() const override;
445
    String actionVerb() const override;
445
446
446
    bool isWidget() const override { return false; }
447
    bool isWidget() const override { return false; }
Lines 827-832 private: a/Source/WebCore/accessibility/AccessibilityObject.h_sec2
827
828
828
#if !ENABLE(ACCESSIBILITY)
829
#if !ENABLE(ACCESSIBILITY)
829
inline const AccessibilityObject::AccessibilityChildrenVector& AccessibilityObject::children(bool) { return m_children; }
830
inline const AccessibilityObject::AccessibilityChildrenVector& AccessibilityObject::children(bool) { return m_children; }
831
inline String AccessibilityObject::localizedActionVerb() const { return emptyString(); }
830
inline String AccessibilityObject::actionVerb() const { return emptyString(); }
832
inline String AccessibilityObject::actionVerb() const { return emptyString(); }
831
inline int AccessibilityObject::lineForPosition(const VisiblePosition&) const { return -1; }
833
inline int AccessibilityObject::lineForPosition(const VisiblePosition&) const { return -1; }
832
inline void AccessibilityObject::updateBackingStore() { }
834
inline void AccessibilityObject::updateBackingStore() { }
- a/Source/WebCore/accessibility/AccessibilityObjectInterface.h +1 lines
Lines 1189-1194 public: a/Source/WebCore/accessibility/AccessibilityObjectInterface.h_sec1
1189
    virtual VisibleSelection selection() const = 0;
1189
    virtual VisibleSelection selection() const = 0;
1190
    virtual String selectedText() const = 0;
1190
    virtual String selectedText() const = 0;
1191
    virtual String accessKey() const = 0;
1191
    virtual String accessKey() const = 0;
1192
    virtual String localizedActionVerb() const = 0;
1192
    virtual String actionVerb() const = 0;
1193
    virtual String actionVerb() const = 0;
1193
1194
1194
    // Widget support.
1195
    // Widget support.
- a/Source/WebCore/accessibility/AccessibilityRenderObject.cpp -33 lines
Lines 3728-3767 void AccessibilityRenderObject::tabChildren(AccessibilityChildrenVector& result) a/Source/WebCore/accessibility/AccessibilityRenderObject.cpp_sec1
3728
            result.append(child);
3728
            result.append(child);
3729
    }
3729
    }
3730
}
3730
}
3731
    
3732
String AccessibilityRenderObject::actionVerb() const
3733
{
3734
#if !PLATFORM(IOS_FAMILY)
3735
    // FIXME: Need to add verbs for select elements.
3736
    static NeverDestroyed<const String> buttonAction(AXButtonActionVerb());
3737
    static NeverDestroyed<const String> textFieldAction(AXTextFieldActionVerb());
3738
    static NeverDestroyed<const String> radioButtonAction(AXRadioButtonActionVerb());
3739
    static NeverDestroyed<const String> checkedCheckBoxAction(AXUncheckedCheckBoxActionVerb());
3740
    static NeverDestroyed<const String> uncheckedCheckBoxAction(AXUncheckedCheckBoxActionVerb());
3741
    static NeverDestroyed<const String> linkAction(AXLinkActionVerb());
3742
3731
3743
    switch (roleValue()) {
3744
    case AccessibilityRole::Button:
3745
    case AccessibilityRole::ToggleButton:
3746
        return buttonAction;
3747
    case AccessibilityRole::TextField:
3748
    case AccessibilityRole::TextArea:
3749
        return textFieldAction;
3750
    case AccessibilityRole::RadioButton:
3751
        return radioButtonAction;
3752
    case AccessibilityRole::CheckBox:
3753
        return isChecked() ? checkedCheckBoxAction : uncheckedCheckBoxAction;
3754
    case AccessibilityRole::Link:
3755
    case AccessibilityRole::WebCoreLink:
3756
        return linkAction;
3757
    default:
3758
        return nullAtom();
3759
    }
3760
#else
3761
    return nullAtom();
3762
#endif
3763
}
3764
    
3765
void AccessibilityRenderObject::setAccessibleName(const AtomString& name)
3732
void AccessibilityRenderObject::setAccessibleName(const AtomString& name)
3766
{
3733
{
3767
    // Setting the accessible name can store the value in the DOM
3734
    // Setting the accessible name can store the value in the DOM
- a/Source/WebCore/accessibility/AccessibilityRenderObject.h -1 lines
Lines 134-140 public: a/Source/WebCore/accessibility/AccessibilityRenderObject.h_sec1
134
    int textLength() const override;
134
    int textLength() const override;
135
    String selectedText() const override;
135
    String selectedText() const override;
136
    String accessKey() const override;
136
    String accessKey() const override;
137
    String actionVerb() const override;
138
137
139
    bool isWidget() const override;
138
    bool isWidget() const override;
140
    Widget* widget() const override;
139
    Widget* widget() const override;
- a/Source/WebCore/accessibility/atk/WebKitAccessibleHyperlink.cpp -1 / +1 lines
Lines 111-117 static const gchar* webkitAccessibleHyperlinkActionGetName(AtkAction* action, gi a/Source/WebCore/accessibility/atk/WebKitAccessibleHyperlink.cpp_sec1
111
        return nullptr;
111
        return nullptr;
112
112
113
    auto& coreObject = webkitAccessibleGetAccessibilityObject(accessibleHyperlink->priv->hyperlinkImpl);
113
    auto& coreObject = webkitAccessibleGetAccessibilityObject(accessibleHyperlink->priv->hyperlinkImpl);
114
    accessibleHyperlink->priv->actionName = coreObject.actionVerb().utf8();
114
    accessibleHyperlink->priv->actionName = coreObject.localizedActionVerb().utf8();
115
    return accessibleHyperlink->priv->actionName.data();
115
    return accessibleHyperlink->priv->actionName.data();
116
}
116
}
117
117
- a/Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceAction.cpp -1 / +1 lines
Lines 91-97 static const gchar* webkitAccessibleActionGetName(AtkAction* action, gint) a/Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceAction.cpp_sec1
91
    auto* accessible = WEBKIT_ACCESSIBLE(action);
91
    auto* accessible = WEBKIT_ACCESSIBLE(action);
92
    returnValIfWebKitAccessibleIsInvalid(accessible, nullptr);
92
    returnValIfWebKitAccessibleIsInvalid(accessible, nullptr);
93
93
94
    return webkitAccessibleCacheAndReturnAtkProperty(accessible, AtkCachedActionName, core(action)->actionVerb().utf8());
94
    return webkitAccessibleCacheAndReturnAtkProperty(accessible, AtkCachedActionName, core(action)->localizedActionVerb().utf8());
95
}
95
}
96
96
97
void webkitAccessibleActionInterfaceInit(AtkActionIface* iface)
97
void webkitAccessibleActionInterfaceInit(AtkActionIface* iface)
- a/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp +1 lines
Lines 201-206 void AXIsolatedObject::initializeAttributeData(AXCoreObject& object, bool isRoot a/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp_sec1
201
    setProperty(AXPropertyName::ValueAutofillButtonType, static_cast<int>(object.valueAutofillButtonType()));
201
    setProperty(AXPropertyName::ValueAutofillButtonType, static_cast<int>(object.valueAutofillButtonType()));
202
    setProperty(AXPropertyName::URL, object.url().isolatedCopy());
202
    setProperty(AXPropertyName::URL, object.url().isolatedCopy());
203
    setProperty(AXPropertyName::AccessKey, object.accessKey().isolatedCopy());
203
    setProperty(AXPropertyName::AccessKey, object.accessKey().isolatedCopy());
204
    setProperty(AXPropertyName::LocalizedActionVerb, object.localizedActionVerb().isolatedCopy());
204
    setProperty(AXPropertyName::ActionVerb, object.actionVerb().isolatedCopy());
205
    setProperty(AXPropertyName::ActionVerb, object.actionVerb().isolatedCopy());
205
    setProperty(AXPropertyName::ReadOnlyValue, object.readOnlyValue().isolatedCopy());
206
    setProperty(AXPropertyName::ReadOnlyValue, object.readOnlyValue().isolatedCopy());
206
    setProperty(AXPropertyName::AutoCompleteValue, object.autoCompleteValue().isolatedCopy());
207
    setProperty(AXPropertyName::AutoCompleteValue, object.autoCompleteValue().isolatedCopy());
- a/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h +1 lines
Lines 290-295 private: a/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h_sec1
290
    void ariaTreeItemContent(AccessibilityChildrenVector& children) override { fillChildrenVectorForProperty(AXPropertyName::ARIATreeItemContent, children); }
290
    void ariaTreeItemContent(AccessibilityChildrenVector& children) override { fillChildrenVectorForProperty(AXPropertyName::ARIATreeItemContent, children); }
291
    URL url() const override { return urlAttributeValue(AXPropertyName::URL); }
291
    URL url() const override { return urlAttributeValue(AXPropertyName::URL); }
292
    String accessKey() const override { return stringAttributeValue(AXPropertyName::AccessKey); }
292
    String accessKey() const override { return stringAttributeValue(AXPropertyName::AccessKey); }
293
    String localizedActionVerb() const override { return stringAttributeValue(AXPropertyName::LocalizedActionVerb); }
293
    String actionVerb() const override { return stringAttributeValue(AXPropertyName::ActionVerb); }
294
    String actionVerb() const override { return stringAttributeValue(AXPropertyName::ActionVerb); }
294
    String readOnlyValue() const override { return stringAttributeValue(AXPropertyName::ReadOnlyValue); }
295
    String readOnlyValue() const override { return stringAttributeValue(AXPropertyName::ReadOnlyValue); }
295
    String autoCompleteValue() const override { return stringAttributeValue(AXPropertyName::AutoCompleteValue); }
296
    String autoCompleteValue() const override { return stringAttributeValue(AXPropertyName::AutoCompleteValue); }
- a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h +1 lines
Lines 237-242 enum class AXPropertyName : uint16_t { a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h_sec1
237
    LiveRegionAtomic,
237
    LiveRegionAtomic,
238
    LiveRegionRelevant,
238
    LiveRegionRelevant,
239
    LiveRegionStatus,
239
    LiveRegionStatus,
240
    LocalizedActionVerb,
240
    MathFencedOpenString,
241
    MathFencedOpenString,
241
    MathFencedCloseString,
242
    MathFencedCloseString,
242
    MathLineThickness,
243
    MathLineThickness,
- a/Source/WebKitLegacy/win/AccessibleBase.cpp -1 / +1 lines
Lines 717-723 HRESULT AccessibleBase::get_accDefaultAction(VARIANT vChild, __deref_opt_out BST a/Source/WebKitLegacy/win/AccessibleBase.cpp_sec1
717
    if (FAILED(hr))
717
    if (FAILED(hr))
718
        return hr;
718
        return hr;
719
719
720
    if (*action = BString(childObj->actionVerb()).release())
720
    if (*action = BString(childObj->localizedActionVerb()).release())
721
        return S_OK;
721
        return S_OK;
722
    return S_FALSE;
722
    return S_FALSE;
723
}
723
}
- a/Source/WebKitLegacy/win/ChangeLog +11 lines
Lines 1-3 a/Source/WebKitLegacy/win/ChangeLog_sec1
1
2021-11-04  Carlos Garcia Campos  <cgarcia@igalia.com>
2
3
        AX: rename actionVerb() as localizedActionVerb()
4
        https://bugs.webkit.org/show_bug.cgi?id=232711
5
        <rdar://problem/85015496>
6
7
        Reviewed by NOBODY (OOPS!).
8
9
        * AccessibleBase.cpp:
10
        (AccessibleBase::get_accDefaultAction): Use localizedActionVerb().
11
1
2021-10-11  Chris Dumez  <cdumez@apple.com>
12
2021-10-11  Chris Dumez  <cdumez@apple.com>
2
13
3
        DOMTimeStamp is now EpochTimeStamp
14
        DOMTimeStamp is now EpochTimeStamp

Return to Bug 232711