[webkit-changes] [WebKit/WebKit] c67d11: AX: meter and progress elements are ignored when -...

Tyler Wilcock noreply at github.com
Fri Oct 21 11:02:55 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c67d110e0c94abf105c1c472fc3a5579eb68ff69
      https://github.com/WebKit/WebKit/commit/c67d110e0c94abf105c1c472fc3a5579eb68ff69
  Author: Tyler Wilcock <tyler_w at apple.com>
  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




More information about the webkit-changes mailing list