Changeset 241989 in webkit


Ignore:
Timestamp:
Feb 23, 2019 8:11:41 AM (5 years ago)
Author:
Chris Fleizach
Message:

AX: WebKit is incorrectly mapping the <meter> element to progressbar
https://bugs.webkit.org/show_bug.cgi?id=164051
<rdar://problem/29055615>

Reviewed by Joanmarie Diggs.

Source/WebCore:

Add a specific role for meter and map that to the appropriate mac role.

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::canHaveChildren const):
(WebCore::AccessibilityNodeObject::isProgressIndicator const):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::accessibleNameDerivesFromContent const):
(WebCore::AccessibilityObject::isRangeControl const):
(WebCore::AccessibilityObject::computedRoleString const):

  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/AccessibilityProgressIndicator.cpp:

(WebCore::AccessibilityProgressIndicator::roleValue const):

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

(WebCore::AccessibilityRenderObject::shouldFocusActiveDescendant const):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(createAccessibilityRoleMap):

LayoutTests:

  • platform/mac-wk2/accessibility/roles-exposed-expected.txt:
  • platform/mac/accessibility/meter-element-expected.txt:
  • platform/mac/accessibility/roles-exposed-expected.txt:
Location:
trunk
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r241987 r241989  
     12019-02-23  chris fleizach  <cfleizach@apple.com>
     2
     3        AX: WebKit is incorrectly mapping the <meter> element to progressbar
     4        https://bugs.webkit.org/show_bug.cgi?id=164051
     5        <rdar://problem/29055615>
     6
     7        Reviewed by Joanmarie Diggs.
     8
     9        * platform/mac-wk2/accessibility/roles-exposed-expected.txt:
     10        * platform/mac/accessibility/meter-element-expected.txt:
     11        * platform/mac/accessibility/roles-exposed-expected.txt:
     12
    1132019-02-22  Simon Fraser  <simon.fraser@apple.com>
    214
  • trunk/LayoutTests/platform/mac-wk2/accessibility/roles-exposed-expected.txt

    r239613 r241989  
    531531     
    532532meter
    533       AXRole: AXProgressIndicator
     533      AXRole: AXLevelIndicator
    534534      AXSubrole: AXMeter
    535       AXRoleDescription: progress indicator
     535      AXRoleDescription: level indicator
    536536     
    537537nav
  • trunk/LayoutTests/platform/mac/accessibility/meter-element-expected.txt

    r201087 r241989  
    55
    66Meter1
    7 AXRole: AXProgressIndicator
     7AXRole: AXLevelIndicator
    88AXTitle:
    99AXDescription:
     
    1313
    1414Meter2
    15 AXRole: AXProgressIndicator
     15AXRole: AXLevelIndicator
    1616AXTitle:
    1717AXDescription:
     
    2121
    2222Meter3
    23 AXRole: AXProgressIndicator
     23AXRole: AXLevelIndicator
    2424AXTitle:
    2525AXDescription:
     
    2929
    3030Meter4
    31 AXRole: AXProgressIndicator
     31AXRole: AXLevelIndicator
    3232AXTitle:
    3333AXDescription:
     
    3737
    3838Meter5
    39 AXRole: AXProgressIndicator
     39AXRole: AXLevelIndicator
    4040AXTitle:
    4141AXDescription:
     
    4545
    4646Meter6
    47 AXRole: AXProgressIndicator
     47AXRole: AXLevelIndicator
    4848AXTitle:
    4949AXDescription:
     
    5353
    5454Meter7
    55 AXRole: AXProgressIndicator
     55AXRole: AXLevelIndicator
    5656AXTitle:
    5757AXDescription:
     
    6161
    6262Meter8
    63 AXRole: AXProgressIndicator
     63AXRole: AXLevelIndicator
    6464AXTitle:
    6565AXDescription:
     
    6969
    7070Meter9
    71 AXRole: AXProgressIndicator
     71AXRole: AXLevelIndicator
    7272AXTitle:
    7373AXDescription:
     
    7777
    7878Meter10
    79 AXRole: AXProgressIndicator
     79AXRole: AXLevelIndicator
    8080AXTitle:
    8181AXDescription:
     
    8585
    8686Meter11
    87 AXRole: AXProgressIndicator
     87AXRole: AXLevelIndicator
    8888AXTitle:
    8989AXDescription:
     
    9393
    9494Meter12
    95 AXRole: AXProgressIndicator
     95AXRole: AXLevelIndicator
    9696AXTitle:
    9797AXDescription:
     
    101101
    102102Meter13
    103 AXRole: AXProgressIndicator
     103AXRole: AXLevelIndicator
    104104AXTitle:
    105105AXDescription:
     
    109109
    110110Meter14
    111 AXRole: AXProgressIndicator
     111AXRole: AXLevelIndicator
    112112AXTitle:
    113113AXDescription:
  • trunk/LayoutTests/platform/mac/accessibility/roles-exposed-expected.txt

    r239613 r241989  
    531531     
    532532meter
    533       AXRole: AXProgressIndicator
     533      AXRole: AXLevelIndicator
    534534      AXSubrole: AXMeter
    535       AXRoleDescription: progress indicator
     535      AXRoleDescription: level indicator
    536536     
    537537nav
  • trunk/Source/WebCore/ChangeLog

    r241986 r241989  
     12019-02-23  chris fleizach  <cfleizach@apple.com>
     2
     3        AX: WebKit is incorrectly mapping the <meter> element to progressbar
     4        https://bugs.webkit.org/show_bug.cgi?id=164051
     5        <rdar://problem/29055615>
     6
     7        Reviewed by Joanmarie Diggs.
     8
     9        Add a specific role for meter and map that to the appropriate mac role.
     10
     11        * accessibility/AccessibilityNodeObject.cpp:
     12        (WebCore::AccessibilityNodeObject::canHaveChildren const):
     13        (WebCore::AccessibilityNodeObject::isProgressIndicator const):
     14        * accessibility/AccessibilityObject.cpp:
     15        (WebCore::AccessibilityObject::accessibleNameDerivesFromContent const):
     16        (WebCore::AccessibilityObject::isRangeControl const):
     17        (WebCore::AccessibilityObject::computedRoleString const):
     18        * accessibility/AccessibilityObjectInterface.h:
     19        * accessibility/AccessibilityProgressIndicator.cpp:
     20        (WebCore::AccessibilityProgressIndicator::roleValue const):
     21        * accessibility/AccessibilityProgressIndicator.h:
     22        * accessibility/AccessibilityRenderObject.cpp:
     23        (WebCore::AccessibilityRenderObject::shouldFocusActiveDescendant const):
     24        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
     25        (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
     26        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
     27        (createAccessibilityRoleMap):
     28
    1292019-02-22  Ryosuke Niwa  <rniwa@webkit.org>
    230
  • trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp

    r241321 r241989  
    381381    case AccessibilityRole::MenuItemRadio:
    382382    case AccessibilityRole::Splitter:
     383    case AccessibilityRole::Meter:
    383384        return false;
    384385    case AccessibilityRole::DocumentMath:
     
    561562bool AccessibilityNodeObject::isProgressIndicator() const
    562563{
    563     return roleValue() == AccessibilityRole::ProgressIndicator;
     564    return roleValue() == AccessibilityRole::ProgressIndicator || roleValue() == AccessibilityRole::Meter;
    564565}
    565566
  • trunk/Source/WebCore/accessibility/AccessibilityObject.cpp

    r241932 r241989  
    335335    case AccessibilityRole::MenuBar:
    336336    case AccessibilityRole::ProgressIndicator:
     337    case AccessibilityRole::Meter:
    337338    case AccessibilityRole::RadioGroup:
    338339    case AccessibilityRole::ScrollBar:
     
    948949{
    949950    switch (roleValue()) {
     951    case AccessibilityRole::Meter:
    950952    case AccessibilityRole::ProgressIndicator:
    951953    case AccessibilityRole::Slider:
     
    25062508        return reverseAriaRoleMap().get(static_cast<int>(AccessibilityRole::Splitter));
    25072509
     2510    if (role == AccessibilityRole::Meter)
     2511        return reverseAriaRoleMap().get(static_cast<int>(AccessibilityRole::ProgressIndicator));
     2512
    25082513    if (role == AccessibilityRole::PopUpButton || role == AccessibilityRole::ToggleButton)
    25092514        return reverseAriaRoleMap().get(static_cast<int>(AccessibilityRole::Button));
  • trunk/Source/WebCore/accessibility/AccessibilityObjectInterface.h

    r241321 r241989  
    139139    MenuListPopup,
    140140    MenuListOption,
     141    Meter,
    141142    Outline,
    142143    Paragraph,
  • trunk/Source/WebCore/accessibility/AccessibilityProgressIndicator.cpp

    r207540 r241989  
    151151   
    152152    return 0.0;
     153}
     154   
     155AccessibilityRole AccessibilityProgressIndicator::roleValue() const
     156{
     157    if (meterElement())
     158        return AccessibilityRole::Meter;
     159    return AccessibilityRole::ProgressIndicator;
    153160}
    154161
  • trunk/Source/WebCore/accessibility/AccessibilityProgressIndicator.h

    r224074 r241989  
    4343
    4444private:
    45     AccessibilityRole roleValue() const override { return AccessibilityRole::ProgressIndicator; }
     45    AccessibilityRole roleValue() const override;
    4646
    4747    bool isProgressIndicator() const override { return true; }
  • trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp

    r241932 r241989  
    24332433    case AccessibilityRole::Row:
    24342434    case AccessibilityRole::PopUpButton:
     2435    case AccessibilityRole::Meter:
    24352436    case AccessibilityRole::ProgressIndicator:
    24362437    case AccessibilityRole::Toolbar:
  • trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm

    r241321 r241989  
    866866    case AccessibilityRole::ImageMapLink:
    867867    case AccessibilityRole::ProgressIndicator:
     868    case AccessibilityRole::Meter:
    868869    case AccessibilityRole::MenuItem:
    869870    case AccessibilityRole::MenuItemCheckbox:
  • trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm

    r241983 r241989  
    18921892        { AccessibilityRole::BusyIndicator, NSAccessibilityBusyIndicatorRole },
    18931893        { AccessibilityRole::ProgressIndicator, NSAccessibilityProgressIndicatorRole },
     1894        { AccessibilityRole::Meter, NSAccessibilityLevelIndicatorRole },
    18941895        { AccessibilityRole::Window, NSAccessibilityWindowRole },
    18951896        { AccessibilityRole::Drawer, NSAccessibilityDrawerRole },
Note: See TracChangeset for help on using the changeset viewer.