Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: c67d110e0c94abf105c1c472fc3a5579eb68ff69
https://github.com/WebKit/WebKit/commit/c67d110e0c94abf105c1c472fc3a5579eb68ff69
Author: Tyler Wilcock <[email protected]>
Date: 2022-10-21 (Fri, 21 Oct 2022)
Changed paths:
A
LayoutTests/accessibility/appearance-none-meter-and-progress-elements-expected.txt
A LayoutTests/accessibility/appearance-none-meter-and-progress-elements.html
M LayoutTests/platform/win/TestExpectations
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/AccessibilityProgressIndicator.cpp
M Source/WebCore/accessibility/AccessibilityProgressIndicator.h
Log Message:
-----------
AX: meter and progress elements are ignored when -webkit-appearance: none is
set
https://bugs.webkit.org/show_bug.cgi?id=232569
rdar://problem/84885223
Reviewed by Chris Fleizach.
`-webkit-appearance:none` and the unprefixed `appearance:none` on the
`meter` and `progress` elements cause them to generate plain `RenderBlock`s
instead
of `RenderMeter` and `RenderProgress` renderers. This broke accessibility for
these
elements because we specifically required one of these renderer types to create
an
`AccessibilityProgressIndicator`.
With this patch, that requirement has been relaxed. Now an
`AccessibilityProgressIndicator` can be created with any `RenderObject`
that is associated with an `HTMLProgressElement` or `HTMLMeterElement`,
fixing this issue. `AccessibilityProgressIndicator` doesn't use any
method specific to either `RenderMeter` or `RenderProgress`, so this
strictness was unnecessary.
New test added:
accessibility/appearance-none-meter-and-progress-elements.html
*
LayoutTests/accessibility/appearance-none-meter-and-progress-elements-expected.txt:
Added.
* LayoutTests/accessibility/appearance-none-meter-and-progress-elements.html:
Added.
* LayoutTests/platform/win/TestExpectations: Skip new test.
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::createFromRenderer):
Refactor to remove unnecessary downcasting.
* Source/WebCore/accessibility/AccessibilityProgressIndicator.cpp:
(WebCore::AccessibilityProgressIndicator::AccessibilityProgressIndicator):
(WebCore::AccessibilityProgressIndicator::create):
(WebCore::AccessibilityProgressIndicator::valueDescription const):
(WebCore::AccessibilityProgressIndicator::valueForRange const):
(WebCore::AccessibilityProgressIndicator::maxValueForRange const):
(WebCore::AccessibilityProgressIndicator::minValueForRange const):
(WebCore::AccessibilityProgressIndicator::progressElement const):
(WebCore::AccessibilityProgressIndicator::meterElement const):
(WebCore::AccessibilityProgressIndicator::gaugeRegionValueDescription const):
(WebCore::AccessibilityProgressIndicator::element const): Deleted --
this override was not necessary.
* Source/WebCore/accessibility/AccessibilityProgressIndicator.h:
Canonical link: https://commits.webkit.org/255836@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes