⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 287871 in webkit


Ignore:
Timestamp:
Jan 11, 2022, 12:52:44 AM (5 years ago)
Author:
Carlos Garcia Campos
Message:

[GTK][a11y] Set active state when element is the selected option active or aria-current isn't false with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235029

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • accessibility/atspi/AXObjectCacheAtspi.cpp:

(WebCore::AXObjectCache::postPlatformNotification):

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::state const):

Tools:

Add a unit test to check acive state and implement AccessibilityUIElement::currentStateValue().

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(testAccessibleState):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::domIdentifier const):
(WTR::AccessibilityUIElement::currentStateValue const): Deleted.

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::currentStateValue const):

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::AccessibilityUIElement::currentStateValue const):

  • WebKitTestRunner/InjectedBundle/win/AccessibilityUIElementWin.cpp:

(WTR::AccessibilityUIElement::currentStateValue const):

Location:
trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r287868 r287871  
     12022-01-11  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK][a11y] Set active state when element is the selected option active or aria-current isn't false with ATSPI
     4        https://bugs.webkit.org/show_bug.cgi?id=235029
     5
     6        Reviewed by Adrian Perez de Castro.
     7
     8        * accessibility/atspi/AXObjectCacheAtspi.cpp:
     9        (WebCore::AXObjectCache::postPlatformNotification):
     10        * accessibility/atspi/AccessibilityObjectAtspi.cpp:
     11        (WebCore::AccessibilityObjectAtspi::state const):
     12
    1132022-01-10  Yusuke Suzuki  <ysuzuki@apple.com>
    214
  • trunk/Source/WebCore/accessibility/atspi/AXObjectCacheAtspi.cpp

    r287071 r287871  
    127127        break;
    128128    case AXCurrentStateChanged:
     129        wrapper->stateChanged("active", coreObject->currentState() != AccessibilityCurrentState::False);
    129130        break;
    130131    case AXRowExpanded:
  • trunk/Source/WebCore/accessibility/atspi/AccessibilityObjectAtspi.cpp

    r287566 r287871  
    790790        }
    791791
     792        if (m_coreObject->isSelectedOptionActive() || m_coreObject->currentState() != AccessibilityCurrentState::False)
     793            addState(Atspi::State::Active);
     794
    792795        if (m_coreObject->canSetFocusAttribute())
    793796            addState(Atspi::State::Focusable);
  • trunk/Tools/ChangeLog

    r287865 r287871  
     12022-01-11  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK][a11y] Set active state when element is the selected option active or aria-current isn't false with ATSPI
     4        https://bugs.webkit.org/show_bug.cgi?id=235029
     5
     6        Reviewed by Adrian Perez de Castro.
     7
     8        Add a unit test to check acive state and implement AccessibilityUIElement::currentStateValue().
     9
     10        * TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:
     11        (testAccessibleState):
     12        * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
     13        (WTR::AccessibilityUIElement::domIdentifier const):
     14        (WTR::AccessibilityUIElement::currentStateValue const): Deleted.
     15        * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
     16        (WTR::AccessibilityUIElement::currentStateValue const):
     17        * WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:
     18        (WTR::AccessibilityUIElement::currentStateValue const):
     19        * WebKitTestRunner/InjectedBundle/win/AccessibilityUIElementWin.cpp:
     20        (WTR::AccessibilityUIElement::currentStateValue const):
     21
    1222022-01-10  Dewei Zhu  <dewei_zhu@apple.com>
    223
  • trunk/Tools/TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp

    r287456 r287871  
    493493        "    <input value='Read only' readonly>"
    494494        "    <textarea rows=5 autofocus></textarea>"
     495        "    <ul><li aria-current='step'>Current</li></ul>"
    495496        "  </body>"
    496497        "</html>",
     
    503504    auto documentWeb = test->findDocumentWeb(testApp.get());
    504505    g_assert_true(ATSPI_IS_ACCESSIBLE(documentWeb.get()));
    505     g_assert_cmpint(atspi_accessible_get_child_count(documentWeb.get(), nullptr), ==, 2);
     506    g_assert_cmpint(atspi_accessible_get_child_count(documentWeb.get(), nullptr), ==, 3);
    506507
    507508    auto h1 = adoptGRef(atspi_accessible_get_child_at_index(documentWeb.get(), 0, nullptr));
     
    687688    g_assert_true(atspi_state_set_contains(stateSet.get(), ATSPI_STATE_HORIZONTAL));
    688689#endif
     690
     691    auto ul = adoptGRef(atspi_accessible_get_child_at_index(documentWeb.get(), 2, nullptr));
     692    g_assert_true(ATSPI_IS_ACCESSIBLE(textArea.get()));
     693    auto li = adoptGRef(atspi_accessible_get_child_at_index(ul.get(), 0, nullptr));
     694    stateSet = adoptGRef(atspi_accessible_get_state_set(li.get()));
     695    g_assert_cmpuint(AccessibilityTest::stateSetSize(stateSet.get()), ==, 5);
     696    g_assert_true(atspi_state_set_contains(stateSet.get(), ATSPI_STATE_ACTIVE));
     697    g_assert_true(atspi_state_set_contains(stateSet.get(), ATSPI_STATE_ENABLED));
     698    g_assert_true(atspi_state_set_contains(stateSet.get(), ATSPI_STATE_SENSITIVE));
     699    g_assert_true(atspi_state_set_contains(stateSet.get(), ATSPI_STATE_VISIBLE));
     700    g_assert_true(atspi_state_set_contains(stateSet.get(), ATSPI_STATE_SHOWING));
    689701}
    690702
  • trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp

    r285859 r287871  
    122122
    123123JSRetainPtr<JSStringRef> AccessibilityUIElement::domIdentifier() const { return nullptr; }
    124 JSRetainPtr<JSStringRef> AccessibilityUIElement::currentStateValue() const { return nullptr; }
    125124JSRetainPtr<JSStringRef> AccessibilityUIElement::sortDirection() const { return nullptr; }
    126125JSRetainPtr<JSStringRef> AccessibilityUIElement::lineRectsAndText() const { return { }; }
  • trunk/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp

    r287833 r287871  
    11181118}
    11191119
     1120JSRetainPtr<JSStringRef> AccessibilityUIElement::currentStateValue() const
     1121{
     1122    return nullptr;
     1123}
     1124
    11201125JSValueRef AccessibilityUIElement::uiElementArrayAttributeValue(JSStringRef attribute) const
    11211126{
  • trunk/Tools/WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp

    r287833 r287871  
    409409
    410410    return 0;
     411}
     412
     413JSRetainPtr<JSStringRef> AccessibilityUIElement::currentStateValue() const
     414{
     415    auto value = m_element->attributes().get("current");
     416    return OpaqueJSString::tryCreate(!value.isNull() ? value : "false").leakRef();
    411417}
    412418
  • trunk/Tools/WebKitTestRunner/InjectedBundle/win/AccessibilityUIElementWin.cpp

    r281274 r287871  
    191191}
    192192
     193JSRetainPtr<JSStringRef> AccessibilityUIElement::currentStateValue() const
     194{
     195    notImplemented();
     196    return nullptr;
     197}
     198
    193199JSRetainPtr<JSStringRef> AccessibilityUIElement::stringDescriptionOfAttributeValue(JSStringRef)
    194200{
Note: See TracChangeset for help on using the changeset viewer.