Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 1623de98773e0e3c0173a0004f16ecf836cd7997
https://github.com/WebKit/WebKit/commit/1623de98773e0e3c0173a0004f16ecf836cd7997
Author: Tyler Wilcock <[email protected]>
Date: 2026-09-27 (Sun, 27 Sep 2026)
Changed paths:
A LayoutTests/accessibility/detected-form-error-appearance-expected.txt
A LayoutTests/accessibility/detected-form-error-appearance.html
A
LayoutTests/accessibility/detected-form-error-deep-in-rerendered-section-expected.txt
A
LayoutTests/accessibility/detected-form-error-deep-in-rerendered-section.html
A
LayoutTests/accessibility/detected-form-error-distant-text-is-not-a-message-expected.txt
A
LayoutTests/accessibility/detected-form-error-distant-text-is-not-a-message.html
A
LayoutTests/accessibility/detected-form-error-empty-field-waits-for-interaction-expected.txt
A
LayoutTests/accessibility/detected-form-error-empty-field-waits-for-interaction.html
A LayoutTests/accessibility/detected-form-error-geometry-expected.txt
A LayoutTests/accessibility/detected-form-error-geometry.html
A LayoutTests/accessibility/detected-form-error-in-live-region-expected.txt
A LayoutTests/accessibility/detected-form-error-in-live-region.html
A
LayoutTests/accessibility/detected-form-error-label-is-not-a-message-expected.txt
A LayoutTests/accessibility/detected-form-error-label-is-not-a-message.html
A
LayoutTests/accessibility/detected-form-error-long-text-is-not-a-message-expected.txt
A
LayoutTests/accessibility/detected-form-error-long-text-is-not-a-message.html
A LayoutTests/accessibility/detected-form-error-message-emptied-expected.txt
A LayoutTests/accessibility/detected-form-error-message-emptied.html
A
LayoutTests/accessibility/detected-form-error-message-replaced-expected.txt
A LayoutTests/accessibility/detected-form-error-message-replaced.html
A
LayoutTests/accessibility/detected-form-error-message-rewritten-expected.txt
A LayoutTests/accessibility/detected-form-error-message-rewritten.html
A
LayoutTests/accessibility/detected-form-error-message-wrapper-without-a-box-expected.txt
A
LayoutTests/accessibility/detected-form-error-message-wrapper-without-a-box.html
A
LayoutTests/accessibility/detected-form-error-outranks-author-saying-valid-expected.txt
A
LayoutTests/accessibility/detected-form-error-outranks-author-saying-valid.html
A LayoutTests/accessibility/detected-form-error-pairing-expected.txt
A LayoutTests/accessibility/detected-form-error-pairing.html
A LayoutTests/accessibility/detected-form-error-plain-markup-expected.txt
A LayoutTests/accessibility/detected-form-error-plain-markup.html
A
LayoutTests/accessibility/detected-form-error-repeat-submission-expected.txt
A LayoutTests/accessibility/detected-form-error-repeat-submission.html
A
LayoutTests/accessibility/detected-form-error-reset-updates-invalid-status-expected.txt
A
LayoutTests/accessibility/detected-form-error-reset-updates-invalid-status.html
A
LayoutTests/accessibility/detected-form-error-revealed-without-mutation-expected.txt
A
LayoutTests/accessibility/detected-form-error-revealed-without-mutation.html
A
LayoutTests/accessibility/detected-form-error-survives-field-recreation-expected.txt
A
LayoutTests/accessibility/detected-form-error-survives-field-recreation.html
A
LayoutTests/accessibility/detected-form-error-survives-other-form-submission-expected.txt
A
LayoutTests/accessibility/detected-form-error-survives-other-form-submission.html
A
LayoutTests/accessibility/detected-form-error-survives-relation-rebuild-expected.txt
A
LayoutTests/accessibility/detected-form-error-survives-relation-rebuild.html
A
LayoutTests/accessibility/detected-form-error-written-during-native-validation-expected.txt
A
LayoutTests/accessibility/detected-form-error-written-during-native-validation.html
A
LayoutTests/accessibility/detected-form-error-written-during-submit-event-expected.txt
A
LayoutTests/accessibility/detected-form-error-written-during-submit-event.html
A LayoutTests/accessibility/form-field-with-error-search-key-expected.txt
A LayoutTests/accessibility/form-field-with-error-search-key.html
A
LayoutTests/accessibility/ios-simulator/detected-form-error-outranks-author-saying-valid-expected.txt
A
LayoutTests/accessibility/ios-simulator/detected-form-error-outranks-author-saying-valid.html
A LayoutTests/accessibility/ios-simulator/form-owner-element-expected.txt
A LayoutTests/accessibility/ios-simulator/form-owner-element.html
A
LayoutTests/accessibility/ios-simulator/form-owner-hidden-form-expected.txt
A LayoutTests/accessibility/ios-simulator/form-owner-hidden-form.html
A
LayoutTests/accessibility/ios-simulator/possible-form-validation-error-notification-expected.txt
A
LayoutTests/accessibility/ios-simulator/possible-form-validation-error-notification.html
A
LayoutTests/accessibility/isolated-tree/detected-form-error-appearance-expected.txt
A
LayoutTests/accessibility/isolated-tree/detected-form-error-appearance.html
A
LayoutTests/accessibility/isolated-tree/detected-form-error-deep-in-rerendered-section-expected.txt
A
LayoutTests/accessibility/isolated-tree/detected-form-error-deep-in-rerendered-section.html
A
LayoutTests/accessibility/isolated-tree/detected-form-error-distant-text-is-not-a-message-expected.txt
A
LayoutTests/accessibility/isolated-tree/detected-form-error-distant-text-is-not-a-message.html
A
LayoutTests/accessibility/isolated-tree/detected-form-error-empty-field-waits-for-interaction-expected.txt
A
LayoutTests/accessibility/isolated-tree/detected-form-error-empty-field-waits-for-interaction.html
A
LayoutTests/accessibility/isolated-tree/detected-form-error-geometry-expected.txt
A LayoutTests/accessibility/isolated-tree/detected-form-error-geometry.html
A
LayoutTests/accessibility/isolated-tree/detected-form-error-in-live-region-expected.txt
A
LayoutTests/accessibility/isolated-tree/detected-form-error-in-live-region.html
A
LayoutTests/accessibility/isolated-tree/detected-form-error-label-is-not-a-message-expected.txt
A
LayoutTests/accessibility/isolated-tree/detected-form-error-label-is-not-a-message.html
A
LayoutTests/accessibility/isolated-tree/detected-form-error-long-text-is-not-a-message-expected.txt
A
LayoutTests/accessibility/isolated-tree/detected-form-error-long-text-is-not-a-message.html
A
LayoutTests/accessibility/isolated-tree/detected-form-error-message-emptied-expected.txt
A
LayoutTests/accessibility/isolated-tree/detected-form-error-message-emptied.html
A
LayoutTests/accessibility/isolated-tree/detected-form-error-message-replaced-expected.txt
A
LayoutTests/accessibility/isolated-tree/detected-form-error-message-replaced.html
A
LayoutTests/accessibility/isolated-tree/detected-form-error-message-rewritten-expected.txt
A
LayoutTests/accessibility/isolated-tree/detected-form-error-message-rewritten.html
A
LayoutTests/accessibility/isolated-tree/detected-form-error-message-wrapper-without-a-box-expected.txt
A
LayoutTests/accessibility/isolated-tree/detected-form-error-message-wrapper-without-a-box.html
A
LayoutTests/accessibility/isolated-tree/detected-form-error-outranks-author-saying-valid-expected.txt
A
LayoutTests/accessibility/isolated-tree/detected-form-error-outranks-author-saying-valid.html
A
LayoutTests/accessibility/isolated-tree/detected-form-error-pairing-expected.txt
A LayoutTests/accessibility/isolated-tree/detected-form-error-pairing.html
A
LayoutTests/accessibility/isolated-tree/detected-form-error-plain-markup-expected.txt
A
LayoutTests/accessibility/isolated-tree/detected-form-error-plain-markup.html
A
LayoutTests/accessibility/isolated-tree/detected-form-error-repeat-submission-expected.txt
A
LayoutTests/accessibility/isolated-tree/detected-form-error-repeat-submission.html
A
LayoutTests/accessibility/isolated-tree/detected-form-error-reset-updates-invalid-status-expected.txt
A
LayoutTests/accessibility/isolated-tree/detected-form-error-reset-updates-invalid-status.html
A
LayoutTests/accessibility/isolated-tree/detected-form-error-revealed-without-mutation-expected.txt
A
LayoutTests/accessibility/isolated-tree/detected-form-error-revealed-without-mutation.html
A
LayoutTests/accessibility/isolated-tree/detected-form-error-survives-field-recreation-expected.txt
A
LayoutTests/accessibility/isolated-tree/detected-form-error-survives-field-recreation.html
A
LayoutTests/accessibility/isolated-tree/detected-form-error-survives-other-form-submission-expected.txt
A
LayoutTests/accessibility/isolated-tree/detected-form-error-survives-other-form-submission.html
A
LayoutTests/accessibility/isolated-tree/detected-form-error-survives-relation-rebuild-expected.txt
A
LayoutTests/accessibility/isolated-tree/detected-form-error-survives-relation-rebuild.html
A
LayoutTests/accessibility/isolated-tree/detected-form-error-written-during-native-validation-expected.txt
A
LayoutTests/accessibility/isolated-tree/detected-form-error-written-during-native-validation.html
A
LayoutTests/accessibility/isolated-tree/detected-form-error-written-during-submit-event-expected.txt
A
LayoutTests/accessibility/isolated-tree/detected-form-error-written-during-submit-event.html
A
LayoutTests/accessibility/isolated-tree/form-field-with-error-search-key-expected.txt
A
LayoutTests/accessibility/isolated-tree/form-field-with-error-search-key.html
M
LayoutTests/accessibility/isolated-tree/mac/required-control-invalid-status.html
A
LayoutTests/accessibility/isolated-tree/possible-form-validation-error-not-posted-for-live-region-expected.txt
A
LayoutTests/accessibility/isolated-tree/possible-form-validation-error-not-posted-for-live-region.html
M LayoutTests/accessibility/mac/required-control-invalid-status.html
A
LayoutTests/accessibility/possible-form-validation-error-not-posted-for-live-region-expected.txt
A
LayoutTests/accessibility/possible-form-validation-error-not-posted-for-live-region.html
M LayoutTests/platform/glib/TestExpectations
M LayoutTests/platform/ios/TestExpectations
M LayoutTests/resources/accessibility-helper.js
M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
M Source/WebCore/Sources.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/accessibility/AXCoreObject.cpp
M Source/WebCore/accessibility/AXCoreObject.h
A Source/WebCore/accessibility/AXFormActivityMonitor.cpp
A Source/WebCore/accessibility/AXFormActivityMonitor.h
M Source/WebCore/accessibility/AXLogger.cpp
M Source/WebCore/accessibility/AXNotifications.h
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/AXObjectCache.h
M Source/WebCore/accessibility/AXSearchManager.cpp
M Source/WebCore/accessibility/AXSearchManager.h
M Source/WebCore/accessibility/AccessibilityObject.cpp
M Source/WebCore/accessibility/AccessibilityObject.h
M Source/WebCore/accessibility/atspi/AXObjectCacheAtspi.cpp
M Source/WebCore/accessibility/atspi/AccessibilityObjectAtspi.cpp
M Source/WebCore/accessibility/atspi/AccessibilityObjectTextAtspi.cpp
M Source/WebCore/accessibility/cocoa/CocoaAccessibilityConstants.h
M Source/WebCore/accessibility/cocoa/WebAccessibilityObjectWrapperBase.mm
M Source/WebCore/accessibility/ios/AXObjectCacheIOS.mm
M Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm
M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h
M Source/WebCore/accessibility/mac/AXObjectCacheMac.mm
M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm
M Source/WebCore/html/HTMLFormElement.cpp
M Source/WebCore/html/HTMLFormElement.h
M Source/WebCore/html/ValidatedFormListedElement.cpp
M Source/WebCore/inspector/InspectorAuditAccessibilityObject.cpp
M Source/WebCore/inspector/agents/InspectorDOMAgent.cpp
M Source/WebCore/inspector/agents/frame/FrameDOMAgent.cpp
M Source/WebCore/platform/Logging.h
M Source/WebCore/testing/Internals.cpp
M Source/WebCore/testing/Internals.h
M Source/WebCore/testing/Internals.idl
M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
M Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp
M Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h
M Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl
M Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.h
M Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm
Log Message:
-----------
AX: Detect and report form validation errors a page never announced or
associated with a field
https://bugs.webkit.org/show_bug.cgi?id=324769
rdar://188038649
Reviewed by Dominic Mazzoni.
A large portion of real forms report a failed submission by writing text into a
plain
<div>. There is no aria-invalid on the field, no aria-errormessage pointing at
the
text, and no live region / role=alert to announce it. Sighted users see the
message appear next
to the field. An assistive technology is told nothing at all, so the user is
left
with a form that refused to submit and no easy way to find out why.
Add AXFormActivityMonitor, which repairs this. HTMLFormElement tells the cache
when
a submission was attempted and no navigation happened (e.g. because validation
failed).
The monitor then watches for a settling period, collects text that appeared and
that no live region,
ariaNotify or element description already conveyed, and pairs each message with
the
field it most likely describes.
Geometry decides the pairing, because what makes a sighted user read a message
as being
about a field is that it appears next to it. Each paired field is then given the
aria-errormessage relation the author never wrote, so the message is reachable
through
AXErrorMessageElements afterwards.
Report the result as AXNotification::PossibleFormValidationError. The name says
"possible" deliberately. This is a heuristic, and whether the user is presented
anything
is the assistive technology's decision.
Add AccessibilitySearchKey::FormFieldWithError so an assistive technology can
move
between the fields that are wrong.
On iOS, expose accessibilityFormFieldElements and accessibilityFormOwnerElement
so a
control reaches its form and a form enumerates its fields, including controls
associated by form="id" that are not descendants of the form element and so
cannot
be found by searching its subtree.
All of this is behind a new AccessibilityFormErrorDetectionEnabled feature flag.
* LayoutTests/accessibility/detected-form-error-appearance-expected.txt: Added.
* LayoutTests/accessibility/detected-form-error-appearance.html: Added.
*
LayoutTests/accessibility/detected-form-error-deep-in-rerendered-section-expected.txt:
Added.
*
LayoutTests/accessibility/detected-form-error-deep-in-rerendered-section.html:
Added.
* LayoutTests/accessibility/detected-form-error-geometry-expected.txt: Added.
* LayoutTests/accessibility/detected-form-error-geometry.html: Added.
* LayoutTests/accessibility/detected-form-error-in-live-region-expected.txt:
Added.
* LayoutTests/accessibility/detected-form-error-in-live-region.html: Added.
*
LayoutTests/accessibility/detected-form-error-label-is-not-a-message-expected.txt:
Added.
* LayoutTests/accessibility/detected-form-error-label-is-not-a-message.html:
Added.
* LayoutTests/accessibility/detected-form-error-message-emptied-expected.txt:
Added.
* LayoutTests/accessibility/detected-form-error-message-emptied.html: Added.
* LayoutTests/accessibility/detected-form-error-message-replaced-expected.txt:
Added.
* LayoutTests/accessibility/detected-form-error-message-replaced.html: Added.
* LayoutTests/accessibility/detected-form-error-message-rewritten-expected.txt:
Added.
* LayoutTests/accessibility/detected-form-error-message-rewritten.html: Added.
*
LayoutTests/accessibility/detected-form-error-message-wrapper-without-a-box-expected.txt:
Added.
*
LayoutTests/accessibility/detected-form-error-message-wrapper-without-a-box.html:
Added.
*
LayoutTests/accessibility/detected-form-error-outranks-author-saying-valid-expected.txt:
Added.
*
LayoutTests/accessibility/detected-form-error-outranks-author-saying-valid.html:
Added.
* LayoutTests/accessibility/detected-form-error-pairing-expected.txt: Added.
* LayoutTests/accessibility/detected-form-error-pairing.html: Added.
* LayoutTests/accessibility/detected-form-error-plain-markup-expected.txt:
Added.
* LayoutTests/accessibility/detected-form-error-plain-markup.html: Added.
* LayoutTests/accessibility/detected-form-error-repeat-submission-expected.txt:
Added.
* LayoutTests/accessibility/detected-form-error-repeat-submission.html: Added.
*
LayoutTests/accessibility/detected-form-error-revealed-without-mutation-expected.txt:
Added.
* LayoutTests/accessibility/detected-form-error-revealed-without-mutation.html:
Added.
*
LayoutTests/accessibility/detected-form-error-survives-field-recreation-expected.txt:
Added.
* LayoutTests/accessibility/detected-form-error-survives-field-recreation.html:
Added.
*
LayoutTests/accessibility/detected-form-error-survives-other-form-submission-expected.txt:
Added.
*
LayoutTests/accessibility/detected-form-error-survives-other-form-submission.html:
Added.
*
LayoutTests/accessibility/detected-form-error-survives-relation-rebuild-expected.txt:
Added.
* LayoutTests/accessibility/detected-form-error-survives-relation-rebuild.html:
Added.
*
LayoutTests/accessibility/detected-form-error-written-during-native-validation-expected.txt:
Added.
*
LayoutTests/accessibility/detected-form-error-written-during-native-validation.html:
Added.
*
LayoutTests/accessibility/detected-form-error-written-during-submit-event-expected.txt:
Added.
*
LayoutTests/accessibility/detected-form-error-written-during-submit-event.html:
Added.
* LayoutTests/accessibility/form-field-with-error-search-key-expected.txt:
Added.
* LayoutTests/accessibility/form-field-with-error-search-key.html: Added.
*
LayoutTests/accessibility/ios-simulator/detected-form-error-outranks-author-saying-valid-expected.txt:
Added.
*
LayoutTests/accessibility/ios-simulator/detected-form-error-outranks-author-saying-valid.html:
Added.
* LayoutTests/accessibility/ios-simulator/form-field-elements-expected.txt:
Added.
*
LayoutTests/accessibility/ios-simulator/form-field-elements-script-created-expected.txt:
Added.
*
LayoutTests/accessibility/ios-simulator/form-field-elements-script-created.html:
Added.
* LayoutTests/accessibility/ios-simulator/form-field-elements.html: Added.
*
LayoutTests/accessibility/ios-simulator/possible-form-validation-error-notification-expected.txt:
Added.
*
LayoutTests/accessibility/ios-simulator/possible-form-validation-error-notification.html:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-appearance-expected.txt:
Added.
* LayoutTests/accessibility/isolated-tree/detected-form-error-appearance.html:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-deep-in-rerendered-section-expected.txt:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-deep-in-rerendered-section.html:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-geometry-expected.txt:
Added.
* LayoutTests/accessibility/isolated-tree/detected-form-error-geometry.html:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-in-live-region-expected.txt:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-in-live-region.html:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-label-is-not-a-message-expected.txt:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-label-is-not-a-message.html:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-message-emptied-expected.txt:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-message-emptied.html:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-message-replaced-expected.txt:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-message-replaced.html:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-message-rewritten-expected.txt:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-message-rewritten.html:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-message-wrapper-without-a-box-expected.txt:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-message-wrapper-without-a-box.html:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-outranks-author-saying-valid-expected.txt:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-outranks-author-saying-valid.html:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-pairing-expected.txt:
Added.
* LayoutTests/accessibility/isolated-tree/detected-form-error-pairing.html:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-plain-markup-expected.txt:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-plain-markup.html:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-repeat-submission-expected.txt:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-repeat-submission.html:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-revealed-without-mutation-expected.txt:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-revealed-without-mutation.html:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-survives-field-recreation-expected.txt:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-survives-field-recreation.html:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-survives-other-form-submission-expected.txt:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-survives-other-form-submission.html:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-survives-relation-rebuild-expected.txt:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-survives-relation-rebuild.html:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-written-during-native-validation-expected.txt:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-written-during-native-validation.html:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-written-during-submit-event-expected.txt:
Added.
*
LayoutTests/accessibility/isolated-tree/detected-form-error-written-during-submit-event.html:
Added.
*
LayoutTests/accessibility/isolated-tree/form-field-with-error-search-key-expected.txt:
Added.
*
LayoutTests/accessibility/isolated-tree/form-field-with-error-search-key.html:
Added.
*
LayoutTests/accessibility/isolated-tree/mac/required-control-invalid-status-expected.txt:
*
LayoutTests/accessibility/isolated-tree/mac/required-control-invalid-status.html:
*
LayoutTests/accessibility/isolated-tree/possible-form-validation-error-not-posted-for-live-region-expected.txt:
Added.
*
LayoutTests/accessibility/isolated-tree/possible-form-validation-error-not-posted-for-live-region.html:
Added.
*
LayoutTests/accessibility/isolated-tree/possible-form-validation-error-requires-submission-expected.txt:
Added.
*
LayoutTests/accessibility/isolated-tree/possible-form-validation-error-requires-submission.html:
Added.
* LayoutTests/accessibility/mac/required-control-invalid-status-expected.txt:
* LayoutTests/accessibility/mac/required-control-invalid-status.html:
*
LayoutTests/accessibility/possible-form-validation-error-not-posted-for-live-region-expected.txt:
Added.
*
LayoutTests/accessibility/possible-form-validation-error-not-posted-for-live-region.html:
Added.
*
LayoutTests/accessibility/possible-form-validation-error-requires-submission-expected.txt:
Added.
*
LayoutTests/accessibility/possible-form-validation-error-requires-submission.html:
Added.
* LayoutTests/platform/glib/TestExpectations:
* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/resources/accessibility-helper.js:
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/accessibility/AXCoreObject.cpp:
(WebCore::AXCoreObject::invalidStatus const): Deleted.
* Source/WebCore/accessibility/AXCoreObject.h:
* Source/WebCore/accessibility/AXFormActivityMonitor.cpp: Added.
(WebCore::isStructural):
(WebCore::namesAControl):
(WebCore::containsNonMessageContent):
(WebCore::isErrorMessageShaped):
(WebCore::isWorthAnnouncing):
(WebCore::appendStaticText):
(WebCore::messageText):
(WebCore::boundsForMessage):
(WebCore::messageFieldAffinity):
(WebCore::AXFormActivityMonitor::AXFormActivityMonitor):
(WebCore::AXFormActivityMonitor::setSettleDelayForTesting):
(WebCore::AXFormActivityMonitor::settleDelay const):
(WebCore::AXFormActivityMonitor::checkInterval const):
(WebCore::AXFormActivityMonitor::quietPeriod const):
(WebCore::AXFormActivityMonitor::didAttemptSubmissionWithoutNavigation):
(WebCore::AXFormActivityMonitor::didStartLoading):
(WebCore::AXFormActivityMonitor::cancel):
(WebCore::couldHoldMessage):
(WebCore::AXFormActivityMonitor::noteChangedContent):
(WebCore::AXFormActivityMonitor::collectErrorMessagesFrom):
(WebCore::AXFormActivityMonitor::noteAnnouncedText):
(WebCore::AXFormActivityMonitor::collectErrorMessagesFromChangedElements):
(WebCore::AXFormActivityMonitor::settleTimerFired):
(WebCore::AXFormActivityMonitor::requestReport):
(WebCore::AXFormActivityMonitor::report):
* Source/WebCore/accessibility/AXFormActivityMonitor.h: Added.
* Source/WebCore/accessibility/AXLogger.cpp:
(WebCore::operator<<):
* Source/WebCore/accessibility/AXNotifications.h:
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXNotificationWithData::debugDescription const):
(WebCore::AXObjectCache::handleTextChanged):
(WebCore::AXObjectCache::handleChildrenChanged):
(WebCore::AXObjectCache::notificationPostTimerFired):
(WebCore::AXObjectCache::postARIANotifyNotification):
(WebCore::AXObjectCache::postLiveRegionNotification):
(WebCore::AXObjectCache::noteAnnouncedText):
(WebCore::AXObjectCache::postPossibleFormValidationErrorNotification):
(WebCore::messageIsEmpty):
(WebCore::AXObjectCache::fieldHasDetectedError const):
(WebCore::AXObjectCache::onFormSubmissionAttemptWithoutNavigation):
(WebCore::AXObjectCache::onFormSubmissionWillNavigate):
(WebCore::AXObjectCache::frameLoadingEventNotification):
(WebCore::AXObjectCache::handleAttributeChange):
(WebCore::AXObjectCache::performDeferredCacheUpdate):
(WebCore::AXObjectCache::updateIsolatedTree):
(WebCore::AXObjectCache::updateRelationsIfNeeded):
(WebCore::isFormControlForAccessibility):
(WebCore::isFormFieldForAccessibility):
(WebCore::AXObjectCache::formFieldObjects):
(WebCore::AXObjectCache::formOwnerObject):
(WebCore::AXObjectCache::formFieldsForErrorPairing):
(WebCore::AXObjectCache::addDetectedFormErrors):
(WebCore::AXObjectCache::addDetectedFormErrorRelations):
(WebCore::AXObjectCache::clearDetectedErrorsForField):
(WebCore::AXObjectCache::scheduleCacheUpdate):
(WebCore::AXObjectCache::updateDetectedFormErrors):
(WebCore::AXObjectCache::clearDetectedErrorsForForm):
(WebCore::AXObjectCache::announce):
* Source/WebCore/accessibility/AXObjectCache.h:
(WebCore::PossibleFormValidationErrorData::debugDescription const):
(WebCore::AXNotificationWithData::AXNotificationWithData):
* Source/WebCore/accessibility/AXSearchManager.cpp:
(WebCore::AXSearchManager::matchForSearchKeyAtIndex):
* Source/WebCore/accessibility/AXSearchManager.h:
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::formFieldObjects const):
(WebCore::AccessibilityObject::formOwnerObject const):
(WebCore::AccessibilityObject::explicitInvalidStatus const):
(WebCore::AccessibilityObject::invalidStatus const):
* Source/WebCore/accessibility/AccessibilityObject.h:
* Source/WebCore/accessibility/cocoa/CocoaAccessibilityConstants.h:
* Source/WebCore/accessibility/cocoa/WebAccessibilityObjectWrapperBase.mm:
(createAccessibilitySearchKeyMap):
* Source/WebCore/accessibility/ios/AXObjectCacheIOS.mm:
(WebCore::AXObjectCache::notificationPlatformName):
(WebCore::AXObjectCache::postPlatformPossibleFormValidationErrorNotification):
* Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityFormFieldElements]):
(-[WebAccessibilityObjectWrapper accessibilityFormOwnerElement]):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::isDefaultValue):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::updateNodeProperties):
(WebCore::createIsolatedObjectData):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:
* Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::postPlatformPossibleFormValidationErrorNotification):
* Source/WebCore/html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::submitIfPossible):
(WebCore::HTMLFormElement::notifyAccessibilityOfSubmissionWithoutNavigation):
(WebCore::HTMLFormElement::notifyAccessibilityThatSubmissionWillNavigate):
* Source/WebCore/html/HTMLFormElement.h:
* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setAccessibilityFormErrorSettleDelay):
* Source/WebCore/testing/Internals.h:
* Source/WebCore/testing/Internals.idl:
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
(WTR::AccessibilityUIElement::formFieldElements):
(WTR::AccessibilityUIElement::formOwnerElement):
* Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
* Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
* Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.h:
* Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElementIOS::formFieldElements):
(WTR::AccessibilityUIElementIOS::formOwnerElement):
Canonical link: https://commits.webkit.org/322012@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications