Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 4db39d5577ab95c6ef0252b5763022bb179306dd
https://github.com/WebKit/WebKit/commit/4db39d5577ab95c6ef0252b5763022bb179306dd
Author: Joshua Hoffman <[email protected]>
Date: 2026-01-27 (Tue, 27 Jan 2026)
Changed paths:
M LayoutTests/accessibility/iframe-content-inert-expected.txt
M LayoutTests/accessibility/iframe-content-inert.html
M Source/WebCore/accessibility/AXCoreObject.h
M Source/WebCore/accessibility/AXLocalFrame.cpp
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/AXRemoteFrame.cpp
M Source/WebCore/accessibility/AccessibilityObject.cpp
M Source/WebCore/accessibility/AccessibilityScrollView.cpp
M Source/WebCore/accessibility/AccessibilityScrollView.h
Log Message:
-----------
AX: Local frames should propagate their inert state
https://bugs.webkit.org/show_bug.cgi?id=306315
rdar://168972760
Reviewed by Tyler Wilcock.
This PR, like the previous 306210@main, provides the infrastructure for passing
the inert-ness
from a hosting frame in one cache to the hosted frame in another. This data is
used in an
existing method, isWithinHiddenWebArea, which is used in the ignored
calculation.
Extending the tests here helped expose a critical flaw in the original design.
We used to
call updateHostedFrameInheritedState() only when an AccessibilityScrollView
changed its
ignored state. However, this never actually got called, since FrameHosts are
*always* ignored.
Instead, this needs to be called whenever the LocalFrame or RemoteFrame changes
its ignored
status. We pass the previous aria-hidden and inert tests now, and the test
modification provides
coverage of this behavior.
* LayoutTests/accessibility/iframe-content-inert-expected.txt:
* LayoutTests/accessibility/iframe-content-inert.html:
* Source/WebCore/accessibility/AXCoreObject.h:
(WebCore::AXCoreObject::isFrame const):
* Source/WebCore/accessibility/AXLocalFrame.cpp:
(WebCore::AXLocalFrame::computeIsIgnored const):
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::objectBecameIgnored):
(WebCore::AXObjectCache::objectBecameUnignored):
* Source/WebCore/accessibility/AXRemoteFrame.cpp:
(WebCore::AXRemoteFrame::computeIsIgnored const):
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isWithinHiddenWebArea const):
* Source/WebCore/accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::addLocalFrameChild):
(WebCore::AccessibilityScrollView::isHostingFrameInert const):
(WebCore::AccessibilityScrollView::updateHostedFrameInheritedState):
* Source/WebCore/accessibility/AccessibilityScrollView.h:
(WebCore::InheritedFrameState::InheritedFrameState):
Canonical link: https://commits.webkit.org/306298@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications