Title: [241989] trunk
Revision
241989
Author
cfleiz...@apple.com
Date
2019-02-23 08:11:41 -0800 (Sat, 23 Feb 2019)

Log 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:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (241988 => 241989)


--- trunk/LayoutTests/ChangeLog	2019-02-23 05:30:19 UTC (rev 241988)
+++ trunk/LayoutTests/ChangeLog	2019-02-23 16:11:41 UTC (rev 241989)
@@ -1,3 +1,15 @@
+2019-02-23  chris fleizach  <cfleiz...@apple.com>
+
+        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.
+
+        * platform/mac-wk2/accessibility/roles-exposed-expected.txt:
+        * platform/mac/accessibility/meter-element-expected.txt:
+        * platform/mac/accessibility/roles-exposed-expected.txt:
+
 2019-02-22  Simon Fraser  <simon.fra...@apple.com>
 
         Fix a legacy animation test. The <!-- webkit-test-runner --> was inside the <style>.

Modified: trunk/LayoutTests/platform/mac/accessibility/meter-element-expected.txt (241988 => 241989)


--- trunk/LayoutTests/platform/mac/accessibility/meter-element-expected.txt	2019-02-23 05:30:19 UTC (rev 241988)
+++ trunk/LayoutTests/platform/mac/accessibility/meter-element-expected.txt	2019-02-23 16:11:41 UTC (rev 241989)
@@ -4,7 +4,7 @@
 
 
 Meter1
-AXRole: AXProgressIndicator
+AXRole: AXLevelIndicator
 AXTitle: 
 AXDescription: 
 AXValueDescription: 6 blocks used (out of 8 total)
@@ -12,7 +12,7 @@
 
 
 Meter2
-AXRole: AXProgressIndicator
+AXRole: AXLevelIndicator
 AXTitle: 
 AXDescription: 
 AXValueDescription: 75%
@@ -20,7 +20,7 @@
 
 
 Meter3
-AXRole: AXProgressIndicator
+AXRole: AXLevelIndicator
 AXTitle: 
 AXDescription: 
 AXValueDescription: 
@@ -28,7 +28,7 @@
 
 
 Meter4
-AXRole: AXProgressIndicator
+AXRole: AXLevelIndicator
 AXTitle: 
 AXDescription: 
 AXValueDescription: 12cm
@@ -36,7 +36,7 @@
 
 
 Meter5
-AXRole: AXProgressIndicator
+AXRole: AXLevelIndicator
 AXTitle: 
 AXDescription: 
 AXValueDescription: 2cm
@@ -44,7 +44,7 @@
 
 
 Meter6
-AXRole: AXProgressIndicator
+AXRole: AXLevelIndicator
 AXTitle: 
 AXDescription: 
 AXValueDescription: 12cm
@@ -52,7 +52,7 @@
 
 
 Meter7
-AXRole: AXProgressIndicator
+AXRole: AXLevelIndicator
 AXTitle: 
 AXDescription: 
 AXValueDescription: 2cm
@@ -60,7 +60,7 @@
 
 
 Meter8
-AXRole: AXProgressIndicator
+AXRole: AXLevelIndicator
 AXTitle: 
 AXDescription: 
 AXValueDescription: 75 out of 100
@@ -68,7 +68,7 @@
 
 
 Meter9
-AXRole: AXProgressIndicator
+AXRole: AXLevelIndicator
 AXTitle: 
 AXDescription: 
 AXValueDescription: 75 percent
@@ -76,7 +76,7 @@
 
 
 Meter10
-AXRole: AXProgressIndicator
+AXRole: AXLevelIndicator
 AXTitle: 
 AXDescription: 
 AXValueDescription: 75 percent
@@ -84,7 +84,7 @@
 
 
 Meter11
-AXRole: AXProgressIndicator
+AXRole: AXLevelIndicator
 AXTitle: 
 AXDescription: 
 AXValueDescription: 75 (100 total)
@@ -92,7 +92,7 @@
 
 
 Meter12
-AXRole: AXProgressIndicator
+AXRole: AXLevelIndicator
 AXTitle: 
 AXDescription: 
 AXValueDescription: 75 (out of 100 total)
@@ -100,7 +100,7 @@
 
 
 Meter13
-AXRole: AXProgressIndicator
+AXRole: AXLevelIndicator
 AXTitle: 
 AXDescription: 
 AXValueDescription: 75 (out of 100 total)
@@ -108,7 +108,7 @@
 
 
 Meter14
-AXRole: AXProgressIndicator
+AXRole: AXLevelIndicator
 AXTitle: 
 AXDescription: 
 AXValueDescription: 7 of 10

Modified: trunk/LayoutTests/platform/mac/accessibility/roles-exposed-expected.txt (241988 => 241989)


--- trunk/LayoutTests/platform/mac/accessibility/roles-exposed-expected.txt	2019-02-23 05:30:19 UTC (rev 241988)
+++ trunk/LayoutTests/platform/mac/accessibility/roles-exposed-expected.txt	2019-02-23 16:11:41 UTC (rev 241989)
@@ -530,9 +530,9 @@
       AXRoleDescription: group
       
 meter
-      AXRole: AXProgressIndicator
+      AXRole: AXLevelIndicator
       AXSubrole: AXMeter
-      AXRoleDescription: progress indicator
+      AXRoleDescription: level indicator
       
 nav
       AXRole: AXGroup

Modified: trunk/LayoutTests/platform/mac-wk2/accessibility/roles-exposed-expected.txt (241988 => 241989)


--- trunk/LayoutTests/platform/mac-wk2/accessibility/roles-exposed-expected.txt	2019-02-23 05:30:19 UTC (rev 241988)
+++ trunk/LayoutTests/platform/mac-wk2/accessibility/roles-exposed-expected.txt	2019-02-23 16:11:41 UTC (rev 241989)
@@ -530,9 +530,9 @@
       AXRoleDescription: group
       
 meter
-      AXRole: AXProgressIndicator
+      AXRole: AXLevelIndicator
       AXSubrole: AXMeter
-      AXRoleDescription: progress indicator
+      AXRoleDescription: level indicator
       
 nav
       AXRole: AXGroup

Modified: trunk/Source/WebCore/ChangeLog (241988 => 241989)


--- trunk/Source/WebCore/ChangeLog	2019-02-23 05:30:19 UTC (rev 241988)
+++ trunk/Source/WebCore/ChangeLog	2019-02-23 16:11:41 UTC (rev 241989)
@@ -1,3 +1,31 @@
+2019-02-23  chris fleizach  <cfleiz...@apple.com>
+
+        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.
+
+        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):
+
 2019-02-22  Ryosuke Niwa  <rn...@webkit.org>
 
         Crash in SWServerJobQueue::runNextJobSynchronously

Modified: trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp (241988 => 241989)


--- trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp	2019-02-23 05:30:19 UTC (rev 241988)
+++ trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp	2019-02-23 16:11:41 UTC (rev 241989)
@@ -380,6 +380,7 @@
     case AccessibilityRole::MenuItemCheckbox:
     case AccessibilityRole::MenuItemRadio:
     case AccessibilityRole::Splitter:
+    case AccessibilityRole::Meter:
         return false;
     case AccessibilityRole::DocumentMath:
 #if ENABLE(MATHML)
@@ -560,7 +561,7 @@
 
 bool AccessibilityNodeObject::isProgressIndicator() const
 {
-    return roleValue() == AccessibilityRole::ProgressIndicator;
+    return roleValue() == AccessibilityRole::ProgressIndicator || roleValue() == AccessibilityRole::Meter;
 }
 
 bool AccessibilityNodeObject::isSlider() const

Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.cpp (241988 => 241989)


--- trunk/Source/WebCore/accessibility/AccessibilityObject.cpp	2019-02-23 05:30:19 UTC (rev 241988)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.cpp	2019-02-23 16:11:41 UTC (rev 241989)
@@ -334,6 +334,7 @@
     case AccessibilityRole::Menu:
     case AccessibilityRole::MenuBar:
     case AccessibilityRole::ProgressIndicator:
+    case AccessibilityRole::Meter:
     case AccessibilityRole::RadioGroup:
     case AccessibilityRole::ScrollBar:
     case AccessibilityRole::Slider:
@@ -947,6 +948,7 @@
 bool AccessibilityObject::isRangeControl() const
 {
     switch (roleValue()) {
+    case AccessibilityRole::Meter:
     case AccessibilityRole::ProgressIndicator:
     case AccessibilityRole::Slider:
     case AccessibilityRole::ScrollBar:
@@ -2505,6 +2507,9 @@
     if (role == AccessibilityRole::HorizontalRule)
         return reverseAriaRoleMap().get(static_cast<int>(AccessibilityRole::Splitter));
 
+    if (role == AccessibilityRole::Meter)
+        return reverseAriaRoleMap().get(static_cast<int>(AccessibilityRole::ProgressIndicator));
+
     if (role == AccessibilityRole::PopUpButton || role == AccessibilityRole::ToggleButton)
         return reverseAriaRoleMap().get(static_cast<int>(AccessibilityRole::Button));
 

Modified: trunk/Source/WebCore/accessibility/AccessibilityObjectInterface.h (241988 => 241989)


--- trunk/Source/WebCore/accessibility/AccessibilityObjectInterface.h	2019-02-23 05:30:19 UTC (rev 241988)
+++ trunk/Source/WebCore/accessibility/AccessibilityObjectInterface.h	2019-02-23 16:11:41 UTC (rev 241989)
@@ -138,6 +138,7 @@
     MenuItemRadio,
     MenuListPopup,
     MenuListOption,
+    Meter,
     Outline,
     Paragraph,
     PopUpButton,

Modified: trunk/Source/WebCore/accessibility/AccessibilityProgressIndicator.cpp (241988 => 241989)


--- trunk/Source/WebCore/accessibility/AccessibilityProgressIndicator.cpp	2019-02-23 05:30:19 UTC (rev 241988)
+++ trunk/Source/WebCore/accessibility/AccessibilityProgressIndicator.cpp	2019-02-23 16:11:41 UTC (rev 241989)
@@ -151,6 +151,13 @@
     
     return 0.0;
 }
+    
+AccessibilityRole AccessibilityProgressIndicator::roleValue() const
+{
+    if (meterElement())
+        return AccessibilityRole::Meter;
+    return AccessibilityRole::ProgressIndicator;
+}
 
 HTMLProgressElement* AccessibilityProgressIndicator::progressElement() const
 {

Modified: trunk/Source/WebCore/accessibility/AccessibilityProgressIndicator.h (241988 => 241989)


--- trunk/Source/WebCore/accessibility/AccessibilityProgressIndicator.h	2019-02-23 05:30:19 UTC (rev 241988)
+++ trunk/Source/WebCore/accessibility/AccessibilityProgressIndicator.h	2019-02-23 16:11:41 UTC (rev 241989)
@@ -42,7 +42,7 @@
     Element* element() const override;
 
 private:
-    AccessibilityRole roleValue() const override { return AccessibilityRole::ProgressIndicator; }
+    AccessibilityRole roleValue() const override;
 
     bool isProgressIndicator() const override { return true; }
 

Modified: trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp (241988 => 241989)


--- trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp	2019-02-23 05:30:19 UTC (rev 241988)
+++ trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp	2019-02-23 16:11:41 UTC (rev 241989)
@@ -2432,6 +2432,7 @@
     case AccessibilityRole::RadioGroup:
     case AccessibilityRole::Row:
     case AccessibilityRole::PopUpButton:
+    case AccessibilityRole::Meter:
     case AccessibilityRole::ProgressIndicator:
     case AccessibilityRole::Toolbar:
     case AccessibilityRole::Outline:

Modified: trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm (241988 => 241989)


--- trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm	2019-02-23 05:30:19 UTC (rev 241988)
+++ trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm	2019-02-23 16:11:41 UTC (rev 241989)
@@ -865,6 +865,7 @@
     case AccessibilityRole::Image:
     case AccessibilityRole::ImageMapLink:
     case AccessibilityRole::ProgressIndicator:
+    case AccessibilityRole::Meter:
     case AccessibilityRole::MenuItem:
     case AccessibilityRole::MenuItemCheckbox:
     case AccessibilityRole::MenuItemRadio:

Modified: trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm (241988 => 241989)


--- trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm	2019-02-23 05:30:19 UTC (rev 241988)
+++ trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm	2019-02-23 16:11:41 UTC (rev 241989)
@@ -1891,6 +1891,7 @@
         { AccessibilityRole::Toolbar, NSAccessibilityToolbarRole },
         { AccessibilityRole::BusyIndicator, NSAccessibilityBusyIndicatorRole },
         { AccessibilityRole::ProgressIndicator, NSAccessibilityProgressIndicatorRole },
+        { AccessibilityRole::Meter, NSAccessibilityLevelIndicatorRole },
         { AccessibilityRole::Window, NSAccessibilityWindowRole },
         { AccessibilityRole::Drawer, NSAccessibilityDrawerRole },
         { AccessibilityRole::SystemWide, NSAccessibilitySystemWideRole },
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to