Changeset 223126 in webkit


Ignore:
Timestamp:
Oct 10, 2017 1:55:18 AM (6 years ago)
Author:
jdiggs@igalia.com
Message:

AX: [ATK] STATE_CHECKABLE should be removed from radio buttons in radiogroups with aria-readonly="true"
https://bugs.webkit.org/show_bug.cgi?id=177931

Reviewed by Chris Fleizach.

Source/WebCore:

Add a check in canSetValueAttribute() for readonly radiogroup ancestors of
radio buttons.

Test: accessibility/gtk/aria-readonly-radiogroup.html

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::canSetValueAttribute const):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::radioGroupAncestor const):

  • accessibility/AccessibilityObject.h:

LayoutTests:

  • accessibility/gtk/aria-readonly-radiogroup-expected.txt: Added.
  • accessibility/gtk/aria-readonly-radiogroup.html: Added.
Location:
trunk
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r223118 r223126  
     12017-10-10  Joanmarie Diggs  <jdiggs@igalia.com>
     2
     3        AX: [ATK] STATE_CHECKABLE should be removed from radio buttons in radiogroups with aria-readonly="true"
     4        https://bugs.webkit.org/show_bug.cgi?id=177931
     5
     6        Reviewed by Chris Fleizach.
     7
     8        * accessibility/gtk/aria-readonly-radiogroup-expected.txt: Added.
     9        * accessibility/gtk/aria-readonly-radiogroup.html: Added.
     10
    1112017-10-09  Chris Dumez  <cdumez@apple.com>
    212
  • trunk/Source/WebCore/ChangeLog

    r223118 r223126  
     12017-10-10  Joanmarie Diggs  <jdiggs@igalia.com>
     2
     3        AX: [ATK] STATE_CHECKABLE should be removed from radio buttons in radiogroups with aria-readonly="true"
     4        https://bugs.webkit.org/show_bug.cgi?id=177931
     5
     6        Reviewed by Chris Fleizach.
     7
     8        Add a check in canSetValueAttribute() for readonly radiogroup ancestors of
     9        radio buttons.
     10
     11        Test: accessibility/gtk/aria-readonly-radiogroup.html
     12
     13        * accessibility/AccessibilityNodeObject.cpp:
     14        (WebCore::AccessibilityNodeObject::canSetValueAttribute const):
     15        * accessibility/AccessibilityObject.cpp:
     16        (WebCore::AccessibilityObject::radioGroupAncestor const):
     17        * accessibility/AccessibilityObject.h:
     18
    1192017-10-09  Chris Dumez  <cdumez@apple.com>
    220
  • trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp

    r222544 r223126  
    21002100    // In ATK, input types which support aria-readonly are treated as having a
    21012101    // settable value if the user can modify the widget's value or its state.
    2102     if (supportsARIAReadOnly() || isRadioButton())
    2103         return true;
     2102    if (supportsARIAReadOnly())
     2103        return true;
     2104
     2105    if (isRadioButton()) {
     2106        auto radioGroup = radioGroupAncestor();
     2107        return radioGroup ? radioGroup->ariaReadOnlyValue() != "true" : true;
     2108    }
    21042109#endif
    21052110
  • trunk/Source/WebCore/accessibility/AccessibilityObject.cpp

    r223048 r223126  
    33153315}
    33163316
     3317AccessibilityObject* AccessibilityObject::radioGroupAncestor() const
     3318{
     3319    return const_cast<AccessibilityObject*>(AccessibilityObject::matchedParent(*this, false, [] (const AccessibilityObject& object) {
     3320        return object.isRadioGroup();
     3321    }));
     3322}
     3323
    33173324bool AccessibilityObject::isStyleFormatGroup() const
    33183325{
  • trunk/Source/WebCore/accessibility/AccessibilityObject.h

    r223048 r223126  
    11631163    void ariaElementsReferencedByAttribute(AccessibilityChildrenVector&, const QualifiedName&) const;
    11641164
     1165    AccessibilityObject* radioGroupAncestor() const;
     1166
    11651167#if PLATFORM(GTK) && HAVE(ACCESSIBILITY)
    11661168    bool allowsTextRanges() const;
Note: See TracChangeset for help on using the changeset viewer.