[webkit-changes] [WebKit/WebKit] c98a2d: AX ITM: Fix for LayoutTests/accessibility/svg-remo...

AndresGonzalezApple noreply at github.com
Wed Nov 2 17:17:21 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c98a2ded1d0097353fd604d07bf242a1e1d087e2
      https://github.com/WebKit/WebKit/commit/c98a2ded1d0097353fd604d07bf242a1e1d087e2
  Author: Andres Gonzalez <andresg_22 at apple.com>
  Date:   2022-11-02 (Wed, 02 Nov 2022)

  Changed paths:
    M LayoutTests/accessibility-isolated-tree/TestExpectations
    M LayoutTests/accessibility/svg-remote-element.html
    M LayoutTests/platform/glib/accessibility/svg-remote-element-expected.txt
    M LayoutTests/platform/mac/accessibility/svg-remote-element-expected.txt
    M Source/WebCore/accessibility/AXObjectCache.cpp
    M Source/WebCore/accessibility/AXObjectCache.h
    M Source/WebCore/accessibility/AccessibilityRenderObject.cpp
    M Source/WebCore/accessibility/AccessibilitySVGElement.cpp
    M Source/WebCore/accessibility/AccessibilitySVGElement.h
    M Source/WebCore/accessibility/AccessibilitySVGRoot.cpp
    M Source/WebCore/accessibility/AccessibilitySVGRoot.h
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp

  Log Message:
  -----------
  AX ITM: Fix for LayoutTests/accessibility/svg-remote-element.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=247316
<rdar://problem/101804648>
<rdar://problem/101804648>

Reviewed by Chris Fleizach.

Embedded SVG documents are not connected to the container's top document. Therefore, all AX SVG objects are created and cached by a separate instance of AXObjectCache different from the container's AXObjectCache. This causes that the AX SVG objects do not appear in the isolated tree built for the top document.

This patch fixes this problem by passing the appropriate AXObjectCache instance to the constructor of AXSVGRoot and AXSVGElement, and overriding the axObjectCahce() method in these subclasses.

Some minor code cleanup and debug logging.

* LayoutTests/accessibility-isolated-tree/TestExpectations:
* LayoutTests/accessibility/svg-remote-element.html:
* LayoutTests/platform/glib/accessibility/svg-remote-element-expected.txt:
* LayoutTests/platform/mac/accessibility/svg-remote-element-expected.txt:
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::createObjectFromRenderer):
(WebCore::AXObjectCache::getOrCreate):
(WebCore::createFromRenderer): Renamed createObjectFromRenderer.
(WebCore::AXObjectCache::getOrCreateIsolatedTree const):
(WebCore::AXObjectCache::handleAttributeChange):
(WebCore::AXObjectCache::updateRelationsIfNeeded):
* Source/WebCore/accessibility/AXObjectCache.h:
* Source/WebCore/accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
(WebCore::AccessibilityRenderObject::remoteSVGRootElement const):
(WebCore::AccessibilityRenderObject::updateRoleAfterChildrenCreation):
* Source/WebCore/accessibility/AccessibilitySVGElement.cpp:
(WebCore::AccessibilitySVGElement::AccessibilitySVGElement):
(WebCore::AccessibilitySVGElement::create):
* Source/WebCore/accessibility/AccessibilitySVGElement.h:
* Source/WebCore/accessibility/AccessibilitySVGRoot.cpp:
(WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot):
(WebCore::AccessibilitySVGRoot::create):
* Source/WebCore/accessibility/AccessibilitySVGRoot.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::children):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::collectNodeChangesForSubtree):

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




More information about the webkit-changes mailing list