Changeset 166175 in webkit


Ignore:
Timestamp:
Mar 24, 2014 10:08:00 AM (10 years ago)
Author:
Chris Fleizach
Message:

<hr> should expose AXRole/AXSubrole, etc
https://bugs.webkit.org/show_bug.cgi?id=109015

Reviewed by Mario Sanchez Prada.

Source/WebCore:

Expose the <hr> element to Mac and iOS through the accessibility interface.

Test: platform/mac/accessibility/hr-element.html

  • English.lproj/Localizable.strings:
  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::isEnabled):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::computedRoleString):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):

  • accessibility/atk/AccessibilityObjectAtk.cpp:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

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

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

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

  • platform/LocalizedStrings.cpp:

(WebCore::AXHorizontalRuleDescriptionText):

  • platform/LocalizedStrings.h:

LayoutTests:

  • accessibility/lists.html:
    • An errant <hr> element was in this test which changed results
  • accessibility/roles-computedRoleString-expected.txt:
  • accessibility/roles-exposed.html:
  • platform/gtk/accessibility/roles-exposed-expected.txt: Added.
  • platform/mac/accessibility/hr-element-expected.txt: Added.
  • platform/mac/accessibility/hr-element.html: Added.
  • platform/mac/accessibility/lists-expected.txt:
  • platform/mac/accessibility/roles-exposed-expected.txt:
Location:
trunk
Files:
2 added
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r166174 r166175  
     12014-03-24  Chris Fleizach  <cfleizach@apple.com>
     2
     3        <hr> should expose AXRole/AXSubrole, etc
     4        https://bugs.webkit.org/show_bug.cgi?id=109015
     5
     6        Reviewed by Mario Sanchez Prada.
     7
     8        * accessibility/lists.html:
     9            - An errant <hr> element was in this test which changed results
     10        * accessibility/roles-computedRoleString-expected.txt:
     11        * accessibility/roles-exposed.html:
     12        * platform/gtk/accessibility/roles-exposed-expected.txt: Added.
     13        * platform/mac/accessibility/hr-element-expected.txt: Added.
     14        * platform/mac/accessibility/hr-element.html: Added.
     15        * platform/mac/accessibility/lists-expected.txt:
     16        * platform/mac/accessibility/roles-exposed-expected.txt:
     17
    1182014-03-24  Antti Koivisto  <antti@apple.com>
    219
  • trunk/LayoutTests/accessibility/lists.html

    r140974 r166175  
    2626    </dl>
    2727
    28     <BR><BR><BR><hr><BR>
     28    <BR><BR><BR><BR>
    2929    <div id="result"></div>   
    3030
  • trunk/LayoutTests/accessibility/roles-computedRoleString-expected.txt

    r163891 r166175  
    2020PASS: h5 -> heading.
    2121PASS: h5 -> heading.
     22PASS: hr -> separator.
    2223PASS: img[alt='X'] -> img.
    2324PASS: input[type='button'] -> button.
  • trunk/LayoutTests/accessibility/roles-exposed.html

    r162067 r166175  
    5151<h5 data-platform="atk,mac" data-role="AXHeading" data-subrole="" data-roledescription="heading" class="ex">X</h5>
    5252<h6 data-platform="atk,mac" data-role="AXHeading" data-subrole="" data-roledescription="heading" class="ex">X</h6>
    53 <!-- http://webkit.org/b/109015 --><hr data-platform="atk,mac" data-role="" data-role-atk="AXSeparator" data-subrole="" data-roledescription="" class="ex">
     53<hr data-platform="atk,mac" data-role-mac="AXSplitter" data-role-atk="AXSeparator" data-subrole="AXContentSeparator" data-roledescription="separator" class="ex">
    5454<!-- skipped <html> -->
    5555<!-- [ATK] Skipped: not focusable --><i data-platform="mac" data-role="" data-subrole="" data-roledescription="" class="ex">X</i>
  • trunk/LayoutTests/platform/mac/accessibility/lists-expected.txt

    r158025 r166175  
    111111AXHelp:
    112112AXParent: <AXGroup>
    113 AXSize: NSSize: {784, 54}
    114 AXTitle:
    115 AXDescription:
    116 AXValue:
    117 AXFocused: 0
    118 AXEnabled: 1
    119 AXWindow: <AXGroup>
    120 AXSelectedTextMarkerRange: (null)
    121 AXStartTextMarker: <AXGroup>
    122 AXEndTextMarker: <AXGroup>
    123 AXVisited: 0
    124 AXLinkedUIElements: (null)
    125 AXSelected: 0
    126 AXBlockQuoteLevel: 0
    127 AXTopLevelUIElement: <AXGroup>
    128 AXLanguage:
    129 AXDOMIdentifier:
    130 AXDOMClassList: <array of size 0>
    131 AXTitleUIElement: (null)
    132 AXElementBusy: 0
    133 
    134 ------------
    135 AXRole: AXGroup
    136 AXSubrole: (null)
    137 AXRoleDescription: group
    138 AXChildren: <array of size 0>
    139 AXHelp:
    140 AXParent: <AXGroup>
    141 AXSize: NSSize: {784, 18}
     113AXSize: NSSize: {784, 72}
    142114AXTitle:
    143115AXDescription:
  • trunk/LayoutTests/platform/mac/accessibility/roles-exposed-expected.txt

    r162082 r166175  
    171171     
    172172PASS: hr
    173       AXRole:
    174       AXSubrole:
    175       AXRoleDescription:
     173      AXRole: AXSplitter
     174      AXSubrole: AXContentSeparator
     175      AXRoleDescription: separator
    176176     
    177177PASS: i
  • trunk/Source/WebCore/ChangeLog

    r166173 r166175  
     12014-03-24  Chris Fleizach  <cfleizach@apple.com>
     2
     3        <hr> should expose AXRole/AXSubrole, etc
     4        https://bugs.webkit.org/show_bug.cgi?id=109015
     5
     6        Reviewed by Mario Sanchez Prada.
     7
     8        Expose the <hr> element to Mac and iOS through the accessibility interface.
     9
     10        Test: platform/mac/accessibility/hr-element.html
     11
     12        * English.lproj/Localizable.strings:
     13        * accessibility/AccessibilityNodeObject.cpp:
     14        (WebCore::AccessibilityNodeObject::isEnabled):
     15        * accessibility/AccessibilityObject.cpp:
     16        (WebCore::AccessibilityObject::computedRoleString):
     17        * accessibility/AccessibilityRenderObject.cpp:
     18        (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
     19        * accessibility/atk/AccessibilityObjectAtk.cpp:
     20        (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
     21        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
     22        (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
     23        (-[WebAccessibilityObjectWrapper accessibilityLabel]):
     24        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
     25        (createAccessibilityRoleMap):
     26        (-[WebAccessibilityObjectWrapper subrole]):
     27        (-[WebAccessibilityObjectWrapper roleDescription]):
     28        * platform/LocalizedStrings.cpp:
     29        (WebCore::AXHorizontalRuleDescriptionText):
     30        * platform/LocalizedStrings.h:
     31
    1322014-03-24  Antti Koivisto  <antti@apple.com>
    233
     
    30633094        * platform/ios/WebSafeGCActivityCallbackIOS.h:
    30643095
    3065 =======
    306630962014-03-19  Antti Koivisto  <antti@apple.com>
    30673097
  • trunk/Source/WebCore/English.lproj/Localizable.strings

    r164955 r166175  
    932932"select" = "select";
    933933
     934/* accessibility role description for a horizontal rule [<hr>] */
     935"separator" = "separator";
     936
    934937/* HTTP result code string */
    935938"server error" = "server error";
  • trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp

    r165676 r166175  
    641641            break;
    642642    }
    643 
     643   
     644    if (roleValue() == HorizontalRuleRole)
     645        return false;
     646   
    644647    Node* node = this->node();
    645648    if (!node || !node->isElementNode())
  • trunk/Source/WebCore/accessibility/AccessibilityObject.cpp

    r166069 r166175  
    17501750{
    17511751    // FIXME: Need a few special cases that aren't in the RoleMap: option, etc. http://webkit.org/b/128296
    1752     return reverseAriaRoleMap().get(roleValue());
     1752    AccessibilityRole role = roleValue();
     1753    if (role == HorizontalRuleRole)
     1754        role = SplitterRole;
     1755   
     1756    return reverseAriaRoleMap().get(role);
    17531757}
    17541758
  • trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp

    r166069 r166175  
    12531253    if (ariaRoleAttribute() != UnknownRole)
    12541254        return false;
    1255 
     1255   
     1256    if (roleValue() == HorizontalRuleRole)
     1257        return false;
     1258   
    12561259    // don't ignore labels, because they serve as TitleUIElements
    12571260    Node* node = m_renderer->node();
  • trunk/Source/WebCore/accessibility/atk/AccessibilityObjectAtk.cpp

    r165699 r166175  
    4343
    4444    AccessibilityRole role = roleValue();
    45     if (role == HorizontalRuleRole)
    46         return IncludeObject;
    47 
    4845    // We expose the slider as a whole but not its value indicator.
    4946    if (role == SliderThumbRole)
  • trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm

    r165848 r166175  
    4545#import "IntRect.h"
    4646#import "IntSize.h"
     47#import "LocalizedStrings.h"
    4748#import "Page.h"
    4849#import "Range.h"
     
    621622        case TabRole:
    622623        case DocumentMathRole:
     624        case HorizontalRuleRole:
    623625            return true;
    624626        case StaticTextRole:
     
    751753    NSString *axDescription = [self accessibilityDescription];
    752754    NSString *landmarkDescription = [self ariaLandmarkRoleDescription];
    753 
     755   
    754756    NSMutableString *result = [NSMutableString string];
    755 
     757    if (m_object->roleValue() == HorizontalRuleRole)
     758        appendStringToResult(result, AXHorizontalRuleDescriptionText());
     759       
    756760    appendStringToResult(result, axTitle);
    757761    appendStringToResult(result, axDescription);
  • trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm

    r165676 r166175  
    115115#ifndef NSAccessibilityDescriptionListSubrole
    116116#define NSAccessibilityDescriptionListSubrole @"AXDescriptionList"
     117#endif
     118
     119#ifndef NSAccessibilityContentSeparatorSubrole
     120#define NSAccessibilityContentSeparatorSubrole @"AXContentSeparator"
    117121#endif
    118122
     
    19171921        { MathElementRole, NSAccessibilityGroupRole },
    19181922        { AudioRole, NSAccessibilityGroupRole },
    1919         { VideoRole, NSAccessibilityGroupRole }
     1923        { VideoRole, NSAccessibilityGroupRole },
     1924        { HorizontalRuleRole, NSAccessibilitySplitterRole }
    19201925    };
    19211926    AccessibilityRoleMap& roleMap = *new AccessibilityRoleMap;
     
    19621967        }
    19631968    }
     1969   
     1970    if (m_object->roleValue() == HorizontalRuleRole)
     1971        return NSAccessibilityContentSeparatorSubrole;
    19641972   
    19651973    if (m_object->isSpinButtonPart()) {
     
    21562164    }
    21572165   
     2166    if (m_object->roleValue() == HorizontalRuleRole)
     2167        return AXHorizontalRuleDescriptionText();
     2168   
    21582169    // AppKit also returns AXTab for the role description for a tab item.
    21592170    if (m_object->isTabItem())
  • trunk/Source/WebCore/platform/LocalizedStrings.cpp

    r165676 r166175  
    701701    return String();
    702702}
     703
     704String AXHorizontalRuleDescriptionText()
     705{
     706    return WEB_UI_STRING("separator", "accessibility role description for a horizontal rule [<hr>]");
     707}
     708   
    703709#endif // PLATFORM(COCOA)
    704710
  • trunk/Source/WebCore/platform/LocalizedStrings.h

    r165676 r166175  
    182182#if PLATFORM(COCOA)
    183183    String AXARIAContentGroupText(const String& ariaType);
     184    String AXHorizontalRuleDescriptionText();
    184185#endif
    185186
Note: See TracChangeset for help on using the changeset viewer.