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

Reply via email to