Changeset 180621 in webkit


Ignore:
Timestamp:
Feb 25, 2015 2:04:16 AM (9 years ago)
Author:
jdiggs@igalia.com
Message:

AX: Implement support for ARIA 1.1 'searchbox' role
https://bugs.webkit.org/show_bug.cgi?id=142004

Reviewed by Chris Fleizach.

Source/WebCore:

Add a new accessible SearchFieldRole to handle both the ARIA role
and the "search" input type.

No new tests. Instead, added a new test case to roles-exposed.html
for the mapping, and updated roles-computedRoleString.html because
there is now a one-to-one mapping between the "search" input type
and an ARIA role.

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::determineAccessibilityRole):
(WebCore::AccessibilityNodeObject::isSearchField):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::isARIATextControl):
(WebCore::AccessibilityObject::isARIAInput):
(WebCore::initializeRoleMap):

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

(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(atkRole):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityCanFuzzyHitTest]):
(-[WebAccessibilityObjectWrapper accessibilityTraits]):
(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(createAccessibilityRoleMap):

LayoutTests:

  • accessibility/roles-computedRoleString-expected.txt: Updated for new role.
  • accessibility/roles-computedRoleString.html: Updated for new role.
  • accessibility/roles-exposed.html: New test case added.
  • platform/efl/accessibility/roles-exposed-expected.txt: Updated for new test case.
  • platform/gtk/accessibility/roles-exposed-expected.txt: Updated for new test case.
  • platform/mac-mavericks/accessibility/roles-exposed-expected.txt: Updated for new test case.
  • platform/mac/accessibility/roles-exposed-expected.txt: Updated for new test case.
Location:
trunk
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r180616 r180621  
     12015-02-25  Joanmarie Diggs  <jdiggs@igalia.com>
     2
     3        AX: Implement support for ARIA 1.1 'searchbox' role
     4        https://bugs.webkit.org/show_bug.cgi?id=142004
     5
     6        Reviewed by Chris Fleizach.
     7
     8        * accessibility/roles-computedRoleString-expected.txt: Updated for new role.
     9        * accessibility/roles-computedRoleString.html: Updated for new role.
     10        * accessibility/roles-exposed.html: New test case added.
     11        * platform/efl/accessibility/roles-exposed-expected.txt: Updated for new test case.
     12        * platform/gtk/accessibility/roles-exposed-expected.txt: Updated for new test case.
     13        * platform/mac-mavericks/accessibility/roles-exposed-expected.txt: Updated for new test case.
     14        * platform/mac/accessibility/roles-exposed-expected.txt: Updated for new test case.
     15
    1162015-02-24  Alexey Proskuryakov  <ap@apple.com>
    217
  • trunk/LayoutTests/accessibility/roles-computedRoleString-expected.txt

    r174082 r180621  
    3636PASS: input[type='range'] -> slider.
    3737PASS: input[type='reset'] -> button.
    38 PASS: input[type='search'] -> .
     38PASS: input[type='search'] -> searchbox.
    3939PASS: input[type='submit'] -> button.
    4040PASS: input[type='tel'] -> .
  • trunk/LayoutTests/accessibility/roles-computedRoleString.html

    r174082 r180621  
    4646<input type="range" data-role="slider" class="ex" data-note="[type='range']">
    4747<input type="reset" data-role="button" class="ex" data-note="[type='reset']">
    48 <input type="search" value="X" data-role="" class="ex" data-note="[type='search']">
     48<input type="search" value="X" data-role="searchbox" class="ex" data-note="[type='search']">
    4949<input type="submit" data-role="button" class="ex" data-note="[type='submit']">
    5050<input type="tel" value="X" data-role="" class="ex" data-note="[type='tel']">
  • trunk/LayoutTests/accessibility/roles-exposed.html

    r180600 r180621  
    301301<div role="scrollbar"                data-platform="atk,mac" class="ex">X</div>
    302302<div role="search"                   data-platform="atk,mac" class="ex">X</div>
     303<div role="searchbox"                data-platform="atk,mac" class="ex">X</div>
    303304<div role="separator"                data-platform="atk,mac" class="ex">X</div>
    304305<div role="slider"                   data-platform="atk,mac" class="ex">X</div>
  • trunk/LayoutTests/platform/efl/accessibility/roles-exposed-expected.txt

    r180600 r180621  
    632632      AXRole: AXLandmarkSearch
    633633     
     634div[role=searchbox]
     635      AXRole: AXTextField
     636     
    634637div[role=separator]
    635638      AXRole: AXSeparator
  • trunk/LayoutTests/platform/gtk/accessibility/roles-exposed-expected.txt

    r180600 r180621  
    632632      AXRole: AXLandmarkSearch
    633633     
     634div[role=searchbox]
     635      AXRole: AXTextField
     636     
    634637div[role=separator]
    635638      AXRole: AXSeparator
  • trunk/LayoutTests/platform/mac-mavericks/accessibility/roles-exposed-expected.txt

    r180600 r180621  
    10501050      AXRoleDescription: search
    10511051     
     1052div[role=searchbox]
     1053      AXRole: AXTextField
     1054      AXSubrole: AXSearchField
     1055      AXRoleDescription: search text field
     1056     
    10521057div[role=separator]
    10531058      AXRole: AXSplitter
  • trunk/LayoutTests/platform/mac/accessibility/roles-exposed-expected.txt

    r180600 r180621  
    10501050      AXRoleDescription: search
    10511051     
     1052div[role=searchbox]
     1053      AXRole: AXTextField
     1054      AXSubrole: AXSearchField
     1055      AXRoleDescription: search text field
     1056     
    10521057div[role=separator]
    10531058      AXRole: AXSplitter
  • trunk/Source/WebCore/ChangeLog

    r180615 r180621  
     12015-02-25  Joanmarie Diggs  <jdiggs@igalia.com>
     2
     3        AX: Implement support for ARIA 1.1 'searchbox' role
     4        https://bugs.webkit.org/show_bug.cgi?id=142004
     5
     6        Reviewed by Chris Fleizach.
     7
     8        Add a new accessible SearchFieldRole to handle both the ARIA role
     9        and the "search" input type.
     10
     11        No new tests. Instead, added a new test case to roles-exposed.html
     12        for the mapping, and updated roles-computedRoleString.html because
     13        there is now a one-to-one mapping between the "search" input type
     14        and an ARIA role.
     15
     16        * accessibility/AccessibilityNodeObject.cpp:
     17        (WebCore::AccessibilityNodeObject::determineAccessibilityRole):
     18        (WebCore::AccessibilityNodeObject::isSearchField):
     19        * accessibility/AccessibilityObject.cpp:
     20        (WebCore::AccessibilityObject::isARIATextControl):
     21        (WebCore::AccessibilityObject::isARIAInput):
     22        (WebCore::initializeRoleMap):
     23        * accessibility/AccessibilityObject.h:
     24        * accessibility/AccessibilityRenderObject.cpp:
     25        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
     26        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
     27        (atkRole):
     28        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
     29        (-[WebAccessibilityObjectWrapper accessibilityCanFuzzyHitTest]):
     30        (-[WebAccessibilityObjectWrapper accessibilityTraits]):
     31        (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
     32        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
     33        (createAccessibilityRoleMap):
     34
    1352015-02-24  Simon Fraser  <simon.fraser@apple.com>
    236
  • trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp

    r180600 r180621  
    303303        if (input.isInputTypeHidden())
    304304            return IgnoredRole;
     305        if (input.isSearchField())
     306            return SearchFieldRole;
    305307       
    306308#if ENABLE(INPUT_TYPE_COLOR)
     
    486488        return false;
    487489
     490    if (roleValue() == SearchFieldRole)
     491        return true;
     492
    488493    HTMLInputElement* inputElement = node->toInputElement();
    489494    if (!inputElement)
    490495        return false;
    491 
    492     if (inputElement->isSearchField())
    493         return true;
    494496
    495497    // Some websites don't label their search fields as such. However, they will
  • trunk/Source/WebCore/accessibility/AccessibilityObject.cpp

    r180600 r180621  
    387387bool AccessibilityObject::isARIATextControl() const
    388388{
    389     return ariaRoleAttribute() == TextAreaRole || ariaRoleAttribute() == TextFieldRole;
     389    return ariaRoleAttribute() == TextAreaRole || ariaRoleAttribute() == TextFieldRole || ariaRoleAttribute() == SearchFieldRole;
    390390}
    391391
     
    780780bool AccessibilityObject::isARIAInput(AccessibilityRole ariaRole)
    781781{
    782     return ariaRole == RadioButtonRole || ariaRole == CheckBoxRole || ariaRole == TextFieldRole || ariaRole == SwitchRole;
     782    return ariaRole == RadioButtonRole || ariaRole == CheckBoxRole || ariaRole == TextFieldRole || ariaRole == SwitchRole || ariaRole == SearchFieldRole;
    783783}   
    784784   
     
    19131913        { "scrollbar", ScrollBarRole },
    19141914        { "search", LandmarkSearchRole },
     1915        { "searchbox", SearchFieldRole },
    19151916        { "separator", SplitterRole },
    19161917        { "slider", SliderRole },
  • trunk/Source/WebCore/accessibility/AccessibilityObject.h

    r180600 r180621  
    181181    ScrollAreaRole,
    182182    ScrollBarRole,
     183    SearchFieldRole,
    183184    SheetRole,
    184185    SliderRole,
  • trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp

    r179770 r180621  
    24852485        return WebAreaRole;
    24862486   
    2487     if (cssBox && cssBox->isTextField())
    2488         return TextFieldRole;
     2487    if (cssBox && cssBox->isTextField()) {
     2488        if (is<HTMLInputElement>(node))
     2489            return downcast<HTMLInputElement>(*node).isSearchField() ? SearchFieldRole : TextFieldRole;
     2490    }
    24892491   
    24902492    if (cssBox && cssBox->isTextArea())
  • trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp

    r180600 r180621  
    525525    case TextFieldRole:
    526526    case TextAreaRole:
     527    case SearchFieldRole:
    527528        return ATK_ROLE_ENTRY;
    528529    case StaticTextRole:
  • trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm

    r180600 r180621  
    298298    case RadioButtonRole:
    299299    case ScrollBarRole:
     300    case SearchFieldRole:
    300301    case SliderRole:
    301302    case StaticTextRole:
     
    544545                traits |= [self _axSecureTextFieldTrait];
    545546            FALLTHROUGH;
     547        case SearchFieldRole:
    546548        case TextAreaRole:
    547549            traits |= [self _axTextEntryTrait];
     
    649651        case HorizontalRuleRole:
    650652        case SwitchRole:
     653        case SearchFieldRole:
    651654            return true;
    652655        case StaticTextRole:
  • trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm

    r180600 r180621  
    19451945        { BlockquoteRole, NSAccessibilityGroupRole },
    19461946        { SwitchRole, NSAccessibilityCheckBoxRole },
     1947        { SearchFieldRole, NSAccessibilityTextFieldRole },
    19471948    };
    19481949    AccessibilityRoleMap& roleMap = *new AccessibilityRoleMap;
Note: See TracChangeset for help on using the changeset viewer.