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 },