Changeset 216038 in webkit


Ignore:
Timestamp:
May 1, 2017 3:52:36 PM (7 years ago)
Author:
Chris Fleizach
Message:

AX: Support time@datetime for verbosity clarification of dates, times, and durations
https://bugs.webkit.org/show_bug.cgi?id=171498
<rdar://problem/12985540>

Reviewed by Joanmarie Diggs.

Source/WebCore:

Expose the datetime attribute value.

Test: accessibility/datetime-attribute.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::datetimeAttributeValue):

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

(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
(-[WebAccessibilityObjectWrapper accessibilityDatetimeValue]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
(createAccessibilityRoleMap):
(-[WebAccessibilityObjectWrapper subrole]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

LayoutTests:

  • accessibility/datetime-attribute.html: Added.
  • accessibility/roles-computedRoleString-expected.txt:
  • platform/gtk/accessibility/datetime-attribute-expected.txt: Added.
  • platform/gtk/accessibility/roles-exposed-expected.txt:
  • platform/mac/accessibility/datetime-attribute-expected.txt: Added.
  • platform/mac/accessibility/roles-computedRoleString-expected.txt:
  • platform/mac/accessibility/roles-exposed-expected.txt:
Location:
trunk
Files:
3 added
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r216036 r216038  
     12017-05-01  Chris Fleizach  <cfleizach@apple.com>
     2
     3        AX: Support time@datetime for verbosity clarification of dates, times, and durations
     4        https://bugs.webkit.org/show_bug.cgi?id=171498
     5        <rdar://problem/12985540>
     6
     7        Reviewed by Joanmarie Diggs.
     8
     9        * accessibility/datetime-attribute.html: Added.
     10        * accessibility/roles-computedRoleString-expected.txt:
     11        * platform/gtk/accessibility/datetime-attribute-expected.txt: Added.
     12        * platform/gtk/accessibility/roles-exposed-expected.txt:
     13        * platform/mac/accessibility/datetime-attribute-expected.txt: Added.
     14        * platform/mac/accessibility/roles-computedRoleString-expected.txt:
     15        * platform/mac/accessibility/roles-exposed-expected.txt:
     16
    1172017-05-01  Matt Lewis  <jlewis3@apple.com>
    218
  • trunk/LayoutTests/platform/gtk/accessibility/roles-exposed-expected.txt

    r216007 r216038  
    432432     
    433433time:not([datetime])
    434       AXRole:
     434      AXRole: AXStatic
    435435     
    436436time[datetime]
  • trunk/LayoutTests/platform/mac/accessibility/roles-computedRoleString-expected.txt

    r216007 r216038  
    7979PASS: td[role="gridcell"] -> gridcell.
    8080PASS: textarea -> textbox.
     81PASS: time -> .
    8182PASS: ul -> list.
    8283PASS: li -> listitem.
  • trunk/LayoutTests/platform/mac/accessibility/roles-exposed-expected.txt

    r216007 r216038  
    721721     
    722722time:not([datetime])
    723       AXRole:
    724       AXSubrole:
    725       AXRoleDescription:
     723      AXRole: AXGroup
     724      AXSubrole: AXTimeGroup
     725      AXRoleDescription: group
    726726     
    727727time[datetime]
    728       AXRole:
    729       AXSubrole:
    730       AXRoleDescription:
     728      AXRole: AXGroup
     729      AXSubrole: AXTimeGroup
     730      AXRoleDescription: group
    731731     
    732732ul
  • trunk/Source/WebCore/ChangeLog

    r216035 r216038  
     12017-05-01  Chris Fleizach  <cfleizach@apple.com>
     2
     3        AX: Support time@datetime for verbosity clarification of dates, times, and durations
     4        https://bugs.webkit.org/show_bug.cgi?id=171498
     5        <rdar://problem/12985540>
     6
     7        Reviewed by Joanmarie Diggs.
     8
     9        Expose the datetime attribute value.
     10
     11        Test: accessibility/datetime-attribute.html
     12
     13        * accessibility/AccessibilityObject.cpp:
     14        (WebCore::AccessibilityObject::datetimeAttributeValue):
     15        * accessibility/AccessibilityObject.h:
     16        * accessibility/AccessibilityRenderObject.cpp:
     17        (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
     18        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
     19        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
     20        (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
     21        (-[WebAccessibilityObjectWrapper accessibilityDatetimeValue]):
     22        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
     23        (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
     24        (createAccessibilityRoleMap):
     25        (-[WebAccessibilityObjectWrapper subrole]):
     26        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
     27
    1282017-05-01  Joseph Pecoraro  <pecoraro@apple.com>
    229
  • trunk/Source/WebCore/accessibility/AccessibilityObject.cpp

    r216007 r216038  
    23812381}
    23822382
     2383const AtomicString& AccessibilityObject::datetimeAttributeValue() const
     2384{
     2385    return getAttribute(datetimeAttr);
     2386}
     2387   
    23832388Element* AccessibilityObject::element() const
    23842389{
  • trunk/Source/WebCore/accessibility/AccessibilityObject.h

    r216007 r216038  
    218218    TextGroupRole,
    219219    TermRole,
     220    TimeRole,
    220221    TreeRole,
    221222    TreeGridRole,
     
    624625
    625626    bool supportsDatetimeAttribute() const;
    626 
     627    const AtomicString& datetimeAttributeValue() const;
     628   
    627629    virtual bool canSetFocusAttribute() const { return false; }
    628630    virtual bool canSetTextRangeAttributes() const { return false; }
  • trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp

    r216007 r216038  
    12611261    case LandmarkRegionRole:
    12621262    case ListItemRole:
     1263    case TimeRole:
    12631264    case VideoRole:
    12641265        return false;
     
    27962797    if (node && node->hasTagName(menuTag) && equalLettersIgnoringASCIICase(getAttribute(typeAttr), "toolbar"))
    27972798        return ToolbarRole;
     2799   
     2800    if (node && node->hasTagName(timeTag))
     2801        return TimeRole;
    27982802   
    27992803    // If the element does not have role, but it has ARIA attributes, or accepts tab focus, accessibility should fallback to exposing it as a group.
  • trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp

    r216028 r216038  
    731731    case SVGTextPathRole:
    732732    case SVGTSpanRole:
     733    case TimeRole:
    733734        return ATK_ROLE_STATIC;
    734735#endif
  • trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm

    r216007 r216038  
    936936        case TermRole:
    937937        case TextGroupRole:
     938        case TimeRole:
    938939        case TreeRole:
    939940        case TreeItemRole:
     
    12751276        return 0;
    12761277    return m_object->blockquoteLevel();
     1278}
     1279
     1280- (NSString *)accessibilityDatetimeValue
     1281{
     1282    if (![self _prepareAccessibilityCall])
     1283        return nil;
     1284   
     1285    if (auto parent = AccessibilityObject::matchedParent(*m_object, true, [] (const AccessibilityObject& object) { return object.supportsDatetimeAttribute(); }))
     1286        return parent->datetimeAttributeValue();
     1287
     1288    return nil;
    12771289}
    12781290
  • trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm

    r216007 r216038  
    189189#endif
    190190
     191#ifndef NSAccessibilityDatetimeValueAttribute
     192#define NSAccessibilityDatetimeValueAttribute @"AXDateTimeValue"
     193#endif
     194
    191195#ifndef NSAccessibilityDropEffectsAttribute
    192196#define NSAccessibilityDropEffectsAttribute @"AXDropEffects"
     
    11711175    }
    11721176
     1177    if (m_object->supportsDatetimeAttribute())
     1178        [additional addObject:NSAccessibilityDatetimeValueAttribute];
     1179   
    11731180    if (m_object->supportsRequiredAttribute()) {
    11741181        [additional addObject:NSAccessibilityRequiredAttribute];
     
    19351942        { InlineRole, NSAccessibilityGroupRole },
    19361943        { MarkRole, NSAccessibilityGroupRole },
     1944        { TimeRole, NSAccessibilityGroupRole },
    19371945        { FeedRole, NSAccessibilityGroupRole },
    19381946        { FigureRole, NSAccessibilityGroupRole },
     
    21332141    if (role == SummaryRole)
    21342142        return @"AXSummary";
    2135    
     2143    if (role == TimeRole)
     2144        return @"AXTimeGroup";
     2145
    21362146    if (m_object->isMediaTimeline())
    21372147        return NSAccessibilityTimelineSubrole;
     
    30433053    if ([attributeName isEqualToString:NSAccessibilityHasPopupAttribute])
    30443054        return [NSNumber numberWithBool:m_object->ariaHasPopup()];
    3045    
     3055
     3056    if ([attributeName isEqualToString:NSAccessibilityDatetimeValueAttribute])
     3057        return m_object->datetimeAttributeValue();
     3058
    30463059    // ARIA Live region attributes.
    30473060    if ([attributeName isEqualToString:NSAccessibilityARIALiveAttribute])
Note: See TracChangeset for help on using the changeset viewer.