[webkit-changes] [WebKit/WebKit] 7c6244: AX: The value of date time fields is not read by V...

AndresGonzalezApple noreply at github.com
Sat Feb 3 16:42:33 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7c62441425c1b526d401600066914c8eb8b006ac
      https://github.com/WebKit/WebKit/commit/7c62441425c1b526d401600066914c8eb8b006ac
  Author: Andres Gonzalez <andresg_22 at apple.com>
  Date:   2024-02-03 (Sat, 03 Feb 2024)

  Changed paths:
    M LayoutTests/accessibility/date-input-aria-label-and-value-expected.txt
    M LayoutTests/accessibility/date-input-aria-label-and-value.html
    A LayoutTests/accessibility/input-time-label-value-expected.txt
    A LayoutTests/accessibility/input-time-label-value.html
    R LayoutTests/accessibility/ios-simulator/input-type-time-expected.txt
    R LayoutTests/accessibility/ios-simulator/input-type-time.html
    A LayoutTests/platform/gtk/accessibility/input-time-label-value-expected.txt
    M LayoutTests/platform/ios-simulator/accessibility/changing-aria-hidden-with-display-none-parent-expected.txt
    M LayoutTests/platform/ios/TestExpectations
    A LayoutTests/platform/ios/accessibility/input-time-label-value-expected.txt
    A LayoutTests/platform/mac-monterey/accessibility/input-time-label-value-expected.txt
    M LayoutTests/platform/mac-wk1/TestExpectations
    A LayoutTests/platform/wpe/accessibility/input-time-label-value-expected.txt
    M Source/WebCore/accessibility/AXCoreObject.h
    M Source/WebCore/accessibility/AXObjectCache.cpp
    M Source/WebCore/accessibility/AccessibilityNodeObject.cpp
    M Source/WebCore/accessibility/AccessibilityObject.cpp
    M Source/WebCore/accessibility/AccessibilityObject.h
    M Source/WebCore/accessibility/AccessibilityRenderObject.cpp
    M Source/WebCore/accessibility/AccessibilitySpinButton.h
    M Source/WebCore/accessibility/atspi/AccessibilityObjectAtspi.cpp
    M Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm
    M Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm
    M Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm
    M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm
    M Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm

  Log Message:
  -----------
  AX: The value of date time fields is not read by VoiceOver when the VO cursor lands on them.
https://bugs.webkit.org/show_bug.cgi?id=268523
<rdar://problem/122059024>

Reviewed by Tyler Wilcock.

This patch fixes the problem by providing a proper implementation for the stringValue() method in the case of a date time field. Some iOS-specific code to handle date time fields was re-worked and promoted to core code to make this fix possible in all platforms. The patch includes the following changes:
- Added a DateTime role to describe this family of elements.
- Map this role to its appropriate platform properties.
- Fix in AccessibilityRenderObject::stringValue().
- Code cleanup.

* LayoutTests/accessibility/date-input-aria-label-and-value-expected.txt:
* LayoutTests/accessibility/date-input-aria-label-and-value.html:
Re-wrote this test according to our current standards, and simplified and made clear the code.

* LayoutTests/accessibility/input-time-label-value-expected.txt: Added.
* LayoutTests/accessibility/input-time-label-value.html: Added.
Promoted this test from ios-simulator to all platforms. Also modernized and cleaned up the code.

* LayoutTests/accessibility/ios-simulator/input-type-time-expected.txt: Removed.
* LayoutTests/accessibility/ios-simulator/input-type-time.html: Removed.
Became input-time-label-value.html above.

* LayoutTests/platform/gtk/accessibility/input-time-label-value-expected.txt: Added.
* LayoutTests/platform/ios-simulator/accessibility/changing-aria-hidden-with-display-none-parent-expected.txt:
Rebased because now AccessibilityUIElement::title returns something on iOS, before returned null.

* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/platform/ios/accessibility/input-time-label-value-expected.txt: Added.
* LayoutTests/platform/mac-wk1/TestExpectations:
* LayoutTests/platform/wpe/accessibility/input-time-label-value-expected.txt: Added.

* Source/WebCore/accessibility/AXCoreObject.h:
(WebCore::accessibilityRoleToString):
(WebCore::AXCoreObject::isDateTime const):
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::create):
* Source/WebCore/accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::determineAccessibilityRoleFromNode const):
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::initializeRoleMap):
* Source/WebCore/accessibility/AccessibilityObject.h:
* Source/WebCore/accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::stringValue const):
(WebCore::AccessibilityRenderObject::addTextFieldChildren):
* Source/WebCore/accessibility/AccessibilitySpinButton.h:
* Source/WebCore/accessibility/atspi/AccessibilityObjectAtspi.cpp:
(WebCore::atspiRole):
* Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm:
(WebCore::AccessibilityObject::isInputTypePopupButton const): Deleted.
* Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
(-[WebAccessibilityObjectWrapper stringValueShouldBeUsedInLabel]):
(-[WebAccessibilityObjectWrapper accessibilityLabel]):
* Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm:
(WebCore::Accessibility::createPlatformRoleMap):
* Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
* Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::title):

Canonical link: https://commits.webkit.org/274057@main




More information about the webkit-changes mailing list