Changeset 209118 in webkit


Ignore:
Timestamp:
Nov 29, 2016 8:38:28 PM (7 years ago)
Author:
n_wang@apple.com
Message:

AX: ARIA tree & treeitem roles & aria-expanded state not spoken to VoiceOver iOS 10
https://bugs.webkit.org/show_bug.cgi?id=164936
<rdar://problem/29334274>

Reviewed by Chris Fleizach.

Source/WebCore:

Added a new container type on iOS for trees. Also, since the treeitem role is ignored
on iOS, we should expose the expanded status of a treeitem to its accessible children.

Test: accessibility/ios-simulator/treeitem-expanded.html

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper _accessibilityTreeAncestor]):
(-[WebAccessibilityObjectWrapper treeItemParentForObject:]):
(-[WebAccessibilityObjectWrapper accessibilitySupportsARIAExpanded]):
(-[WebAccessibilityObjectWrapper accessibilityIsExpanded]):

LayoutTests:

  • accessibility/ios-simulator/treeitem-expanded-expected.txt: Added.
  • accessibility/ios-simulator/treeitem-expanded.html: Added.
Location:
trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r209117 r209118  
     12016-11-29  Nan Wang  <n_wang@apple.com>
     2
     3        AX: ARIA tree & treeitem roles & aria-expanded state not spoken to VoiceOver iOS 10
     4        https://bugs.webkit.org/show_bug.cgi?id=164936
     5        <rdar://problem/29334274>
     6
     7        Reviewed by Chris Fleizach.
     8
     9        * accessibility/ios-simulator/treeitem-expanded-expected.txt: Added.
     10        * accessibility/ios-simulator/treeitem-expanded.html: Added.
     11
    1122016-11-29  Chris Dumez  <cdumez@apple.com>
    213
  • trunk/Source/WebCore/ChangeLog

    r209117 r209118  
     12016-11-29  Nan Wang  <n_wang@apple.com>
     2
     3        AX: ARIA tree & treeitem roles & aria-expanded state not spoken to VoiceOver iOS 10
     4        https://bugs.webkit.org/show_bug.cgi?id=164936
     5        <rdar://problem/29334274>
     6
     7        Reviewed by Chris Fleizach.
     8
     9        Added a new container type on iOS for trees. Also, since the treeitem role is ignored
     10        on iOS, we should expose the expanded status of a treeitem to its accessible children.
     11
     12        Test: accessibility/ios-simulator/treeitem-expanded.html
     13
     14        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
     15        (-[WebAccessibilityObjectWrapper _accessibilityTreeAncestor]):
     16        (-[WebAccessibilityObjectWrapper treeItemParentForObject:]):
     17        (-[WebAccessibilityObjectWrapper accessibilitySupportsARIAExpanded]):
     18        (-[WebAccessibilityObjectWrapper accessibilityIsExpanded]):
     19
    1202016-11-29  Chris Dumez  <cdumez@apple.com>
    221
  • trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm

    r208924 r209118  
    530530        return NO;
    531531    }   
     532}
     533
     534- (AccessibilityObjectWrapper*)_accessibilityTreeAncestor
     535{
     536    auto matchFunc = [] (const AccessibilityObject& object) {
     537        AccessibilityRole role = object.roleValue();
     538        return role == TreeRole;
     539    };
     540   
     541    if (const AccessibilityObject* parent = AccessibilityObject::matchedParent(*m_object, false, matchFunc))
     542        return parent->wrapper();
     543    return nil;
    532544}
    533545
     
    18491861}
    18501862
     1863- (AccessibilityObject*)treeItemParentForObject:(AccessibilityObject*)object
     1864{
     1865    // Use this to check if an object is inside a treeitem object.
     1866    if (const AccessibilityObject* parent = AccessibilityObject::matchedParent(*object, true, [] (const AccessibilityObject& object) {
     1867        return object.roleValue() == TreeItemRole;
     1868    }))
     1869        return const_cast<AccessibilityObject*>(parent);
     1870    return nil;
     1871}
     1872
    18511873- (void)accessibilityElementDidBecomeFocused
    18521874{
     
    27092731        return detailParent->supportsExpanded();
    27102732   
     2733    if (AccessibilityObject* treeItemParent = [self treeItemParentForObject:m_object])
     2734        return treeItemParent->supportsExpanded();
     2735   
    27112736    return m_object->supportsExpanded();
    27122737}
     
    27212746    if (AccessibilityObject* detailParent = [self detailParentForSummaryObject:m_object])
    27222747        return detailParent->isExpanded();
     2748   
     2749    if (AccessibilityObject* treeItemParent = [self treeItemParentForObject:m_object])
     2750        return treeItemParent->isExpanded();
    27232751   
    27242752    return m_object->isExpanded();
Note: See TracChangeset for help on using the changeset viewer.