Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6913057b93bbc24e15172526c3f5989ced285fa6
      
https://github.com/WebKit/WebKit/commit/6913057b93bbc24e15172526c3f5989ced285fa6
  Author: Tyler Wilcock <[email protected]>
  Date:   2025-01-09 (Thu, 09 Jan 2025)

  Changed paths:
    M LayoutTests/accessibility/mac/dynamic-modal-expected.txt
    M LayoutTests/accessibility/mac/dynamic-modal.html
    M Source/WebCore/accessibility/AXObjectCache.cpp

  Log Message:
  -----------
  AX: deferModalChange unnecessarily causes a children-changed, and changing 
aria-hidden unnecessarily resets m_modalNodesInitialized
https://bugs.webkit.org/show_bug.cgi?id=285688
rdar://problem/142617733

Reviewed by Chris Fleizach.

AXObjectCache::deferModalChange started issuing a children-changed event in 
this commit:

https://github.com/WebKit/WebKit/commit/9b24060ac33142c1ba4a717e9661e04b5fa59bf4

Which fixed 7 tests in ITM. However, I don't think this behavior is correct. 
There is nothing about becoming a potential
modal node that affects any objects children. If the computed modal is changed, 
we will submit the appropriate children-changed
events, but in this spot we are just incurring unnecessary work.

This commit also removes unnecessary work done in 
AXObjectCache::handleAttributeChange where we would reset 
m_modalNodesInitialized
to false when aria-hidden changes when a modal is active. Resetting 
m_modalNodesInitialized to false causes findModalNodes()
to run, but this function doesn't consider aria-hidden in any way, so this 
behavior causes unnecessary work.

* LayoutTests/accessibility/mac/dynamic-modal-expected.txt:
* LayoutTests/accessibility/mac/dynamic-modal.html:
Simplify test.
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::deferModalChange):
(WebCore::AXObjectCache::handleAttributeChange):
(WebCore::AXObjectCache::performDeferredCacheUpdate):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to