Changeset 185558 in webkit


Ignore:
Timestamp:
Jun 15, 2015 11:39:20 AM (9 years ago)
Author:
Chris Fleizach
Message:

AX: no accessibility support for details element
https://bugs.webkit.org/show_bug.cgi?id=131111

Reviewed by Darin Adler.

Source/WebCore:

Add accessibility support for Mac for details element by:

1) Returning new subroles for <details> and <summary>
2) Exposing isExpanded property for <details> element.

Test: platform/mac/accessibility/details-summary.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::supportsARIAPressed):
(WebCore::AccessibilityObject::supportsExpanded):
(WebCore::AccessibilityObject::isExpanded):
(WebCore::AccessibilityObject::supportsARIAExpanded): Deleted.

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::canvasHasFallbackContent):

  • accessibility/AccessibilityRenderObject.cpp:

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

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

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

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

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

  • html/HTMLDetailsElement.h:
  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):

LayoutTests:

  • platform/mac/accessibility/details-summary-expected.txt: Added.
  • platform/mac/accessibility/details-summary.html: Added.
Location:
trunk
Files:
2 added
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r185543 r185558  
     12015-06-15  Chris Fleizach  <cfleizach@apple.com>
     2
     3        AX: no accessibility support for details element
     4        https://bugs.webkit.org/show_bug.cgi?id=131111
     5
     6        Reviewed by Darin Adler.
     7
     8        * platform/mac/accessibility/details-summary-expected.txt: Added.
     9        * platform/mac/accessibility/details-summary.html: Added.
     10
    1112015-06-13  Chris Fleizach  <cfleizach@apple.com>
    212
  • trunk/Source/WebCore/ChangeLog

    r185555 r185558  
     12015-06-15  Chris Fleizach  <cfleizach@apple.com>
     2
     3        AX: no accessibility support for details element
     4        https://bugs.webkit.org/show_bug.cgi?id=131111
     5
     6        Reviewed by Darin Adler.
     7
     8        Add accessibility support for Mac for details element by:
     9           1) Returning new subroles for <details> and <summary>
     10           2) Exposing isExpanded property for <details> element.
     11
     12        Test: platform/mac/accessibility/details-summary.html
     13
     14        * accessibility/AccessibilityObject.cpp:
     15        (WebCore::AccessibilityObject::supportsARIAPressed):
     16        (WebCore::AccessibilityObject::supportsExpanded):
     17        (WebCore::AccessibilityObject::isExpanded):
     18        (WebCore::AccessibilityObject::supportsARIAExpanded): Deleted.
     19        * accessibility/AccessibilityObject.h:
     20        (WebCore::AccessibilityObject::canvasHasFallbackContent):
     21        * accessibility/AccessibilityRenderObject.cpp:
     22        (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
     23        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
     24        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
     25        (-[WebAccessibilityObjectWrapper accessibilitySupportsARIAExpanded]):
     26        (-[WebAccessibilityObjectWrapper accessibilityIsExpanded]):
     27        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
     28        (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
     29        (createAccessibilityRoleMap):
     30        (-[WebAccessibilityObjectWrapper subrole]):
     31        * html/HTMLDetailsElement.h:
     32        * inspector/InspectorDOMAgent.cpp:
     33        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
     34
    1352015-06-15  Alex Christensen  <achristensen@webkit.org>
    236
  • trunk/Source/WebCore/accessibility/AccessibilityObject.cpp

    r185533 r185558  
    4242#include "FrameLoader.h"
    4343#include "FrameSelection.h"
     44#include "HTMLDetailsElement.h"
    4445#include "HTMLInputElement.h"
    4546#include "HTMLNames.h"
     
    22202221}
    22212222   
    2222 bool AccessibilityObject::supportsARIAExpanded() const
     2223bool AccessibilityObject::supportsExpanded() const
    22232224{
    22242225    // Undefined values should not result in this attribute being exposed to ATs according to ARIA.
     
    22292230    case ComboBoxRole:
    22302231    case DisclosureTriangleRole:
     2232    case DetailsRole:
    22312233        return true;
    22322234    default:
     
    22392241    if (equalIgnoringCase(getAttribute(aria_expandedAttr), "true"))
    22402242        return true;
     2243   
     2244    if (is<HTMLDetailsElement>(node()))
     2245        return downcast<HTMLDetailsElement>(node())->isOpen();
    22412246   
    22422247    return false; 
  • trunk/Source/WebCore/accessibility/AccessibilityObject.h

    r185536 r185558  
    119119    DescriptionListTermRole,
    120120    DescriptionListDetailRole,
     121    DetailsRole,
    121122    DirectoryRole,
    122123    DisclosureTriangleRole,
     
    196197    SplitterRole,
    197198    StaticTextRole,
     199    SummaryRole,
    198200    SwitchRole,
    199201    SystemWideRole,
     
    613615    String invalidStatus() const;
    614616    bool supportsARIAPressed() const;
    615     bool supportsARIAExpanded() const;
     617    bool supportsExpanded() const;
    616618    bool supportsChecked() const;
    617619    AccessibilitySortDirection sortDirection() const;
  • trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp

    r185536 r185558  
    12571257    case DescriptionListTermRole:
    12581258    case DescriptionListDetailRole:
     1259    case DetailsRole:
    12591260    case DocumentArticleRole:
    12601261    case DocumentRegionRole:
     
    26522653        return PreRole;
    26532654
     2655    if (is<HTMLDetailsElement>(node))
     2656        return DetailsRole;
     2657    if (is<HTMLSummaryElement>(node))
     2658        return SummaryRole;
     2659
    26542660#if ENABLE(VIDEO)
    26552661    if (is<HTMLVideoElement>(node))
  • trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm

    r185534 r185558  
    23272327        return NO;
    23282328   
    2329     return m_object->supportsARIAExpanded();
     2329    return m_object->supportsExpanded();
    23302330}
    23312331
  • trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm

    r185536 r185558  
    12151215        [additional addObject:NSAccessibilityValueAttribute];
    12161216   
    1217     if (m_object->supportsARIAExpanded())
     1217    if (m_object->supportsExpanded())
    12181218        [additional addObject:NSAccessibilityExpandedAttribute];
    12191219   
     
    19861986        { RubyRunRole, NSAccessibilityGroupRole },
    19871987        { RubyTextRole, NSAccessibilityGroupRole },
     1988        { DetailsRole, NSAccessibilityGroupRole },
     1989        { SummaryRole, NSAccessibilityGroupRole },
    19881990    };
    19891991    AccessibilityRoleMap& roleMap = *new AccessibilityRoleMap;
     
    21622164    if (role == AudioRole)
    21632165        return @"AXAudio";
     2166    if (role == DetailsRole)
     2167        return @"AXDetails";
     2168    if (role == SummaryRole)
     2169        return @"AXSummary";
    21642170   
    21652171    if (m_object->isMediaTimeline())
  • trunk/Source/WebCore/html/HTMLDetailsElement.h

    r183160 r185558  
    3232
    3333    const Element* findMainSummary() const;
    34 
     34    bool isOpen() const { return m_isOpen; }
     35   
    3536private:
    3637    HTMLDetailsElement(const QualifiedName&, Document&);
  • trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp

    r185507 r185558  
    15111511            exists = true;
    15121512           
    1513             supportsExpanded = axObject->supportsARIAExpanded();
     1513            supportsExpanded = axObject->supportsExpanded();
    15141514            if (supportsExpanded)
    15151515                expanded = axObject->isExpanded();
Note: See TracChangeset for help on using the changeset viewer.