[webkit-changes] [WebKit/WebKit] c63004: AX: Tree updates become broken when children chang...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c630047b889cdac6aaabf58285f7454af91bb7e8 https://github.com/WebKit/WebKit/commit/c630047b889cdac6aaabf58285f7454af91bb7e8 Author: Tyler Wilcock Date: 2024-10-12 (Sat, 12 Oct 2024) Changed paths: A LayoutTests/accessibility/tree-update-with-dynamically-ignored-inline-child-div-expected.txt A LayoutTests/accessibility/tree-update-with-dynamically-ignored-inline-child-div.html A LayoutTests/accessibility/tree-update-with-dynamically-ignored-tabindex-div-expected.txt A LayoutTests/accessibility/tree-update-with-dynamically-ignored-tabindex-div.html M LayoutTests/platform/glib/TestExpectations M LayoutTests/platform/ios/TestExpectations A LayoutTests/platform/ios/accessibility/tree-update-with-dynamically-ignored-inline-child-div-expected.txt A LayoutTests/platform/ios/accessibility/tree-update-with-dynamically-ignored-tabindex-div-expected.txt M Source/WebCore/accessibility/AXLogger.cpp M Source/WebCore/accessibility/AXObjectCache.h M Source/WebCore/accessibility/AccessibilityObject.cpp M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h Log Message: --- AX: Tree updates become broken when children change for a dynamically ignored element and its unignored ancestor in the same tree update cycle https://bugs.webkit.org/show_bug.cgi?id=281324 rdar://137765781 Reviewed by Chris Fleizach. Consider this HTML: ``` ++Foo https://commits.webkit.org/285073@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 20ddf9: AX: Remove unnecessary AccessibilityRole::{RubyBas...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 20ddf93b7b09de3a0852d49dd036ad2da1d19eb7 https://github.com/WebKit/WebKit/commit/20ddf93b7b09de3a0852d49dd036ad2da1d19eb7 Author: Tyler Wilcock Date: 2024-10-12 (Sat, 12 Oct 2024) Changed paths: M LayoutTests/accessibility/mac/ruby-hierarchy-roles-expected.txt M LayoutTests/accessibility/mac/ruby-hierarchy-roles.html M Source/WebCore/accessibility/AXCoreObject.h M Source/WebCore/accessibility/AccessibilityRenderObject.cpp M Source/WebCore/accessibility/atspi/AccessibilityObjectAtspi.cpp M Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm M Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm Log Message: --- AX: Remove unnecessary AccessibilityRole::{RubyBase, RubyBlock, RubyRun} and simplify accessibility/mac/ruby-hierarchy-roles.html https://bugs.webkit.org/show_bug.cgi?id=281356 rdar://137784243 Reviewed by Chris Fleizach. This patch removes AccessibilityRole::{RubyBase, RubyBlock, RubyRun}, as the subrole they map to is not used by any Apple assistive technology, and are not mapped in https://w3c.github.io/html-aam/. AccessibilityRole::RubyInline (mapping to AXSubrole: AXRubyInline) and AccessibilityRole::RubyText (mapping to AXSubrole: AXRubyText) are present and mapped in https://w3c.github.io/html-aam, so this patch does not remove them, even though they are also not actually used by any Apple assistive technology at the time of this writing. This patch also modernizes accessibility/mac/ruby-hierarchy-roles.html and removes the conditions that tested for the removed subroles. * LayoutTests/accessibility/mac/ruby-hierarchy-roles-expected.txt: * LayoutTests/accessibility/mac/ruby-hierarchy-roles.html: * Source/WebCore/accessibility/AXCoreObject.h: (WebCore::accessibilityRoleToString): * Source/WebCore/accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::determineAccessibilityRole): * Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]): * Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm: (WebCore::AccessibilityObject::subrolePlatformString const): (WebCore::Accessibility::createPlatformRoleMap): Canonical link: https://commits.webkit.org/285072@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] ebcc55: AX: AXIsolatedTree::applyPendingChanges unnecessar...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: ebcc55418af17129e18687794e310bd046680a9b https://github.com/WebKit/WebKit/commit/ebcc55418af17129e18687794e310bd046680a9b Author: Tyler Wilcock Date: 2024-10-12 (Sat, 12 Oct 2024) Changed paths: M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp Log Message: --- AX: AXIsolatedTree::applyPendingChanges unnecessarily holds a strong-ref to itself https://bugs.webkit.org/show_bug.cgi?id=281361 rdar://137790158 Reviewed by Chris Fleizach. While it used to be recommended / OK practice to create a `protectedThis` inside function calls, this is no longer the case. Instead, it's expected that there must be a strong-ref smart pointer somewhere on the stack (this is better because it reduces ref count churn), which is the case for all callsites of applyPendingChanges. That makes the `protectedThis` inside `applyPendingChanges` redundant. * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp: (WebCore::AXIsolatedTree::applyPendingChanges): Canonical link: https://commits.webkit.org/285070@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 4b39d6: AX: accessibility/mac/label-element-all-text-strin...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 4b39d6a0bfb3df48dd9c4eb11de328d7a9610456 https://github.com/WebKit/WebKit/commit/4b39d6a0bfb3df48dd9c4eb11de328d7a9610456 Author: Tyler Wilcock Date: 2024-10-07 (Mon, 07 Oct 2024) Changed paths: M Source/WebCore/accessibility/AccessibilityLabel.cpp M Source/WebCore/accessibility/AccessibilityLabel.h M Source/WebCore/accessibility/AccessibilityObject.h Log Message: --- AX: accessibility/mac/label-element-all-text-string-value.html and two other label-related tests fail in ENABLE(INCLUDE_IGNORED_IN_CORE_AX_TREE) https://bugs.webkit.org/show_bug.cgi?id=280568 rdar://problem/136894363 Reviewed by Chris Fleizach. These tests fail in ENABLE(INCLUDE_IGNORED_IN_CORE_AX_TREE) because in https://commits.webkit.org/284418@main, we replaced direct usage of `m_children` with a call to `unignoredChildren(/* updateChildrenIfNecessary */ false)` in AccessibilityLabel::updateChildrenIfNecessary() with the assumption that this would result in the same behavior. However, that assumption is not true, as without updating the children of some descendants (because of the transitively passed `/* updateChildrenIfNecessary */ false` value), AXCoreObject::nextInPreOrder does not return the right objects to compute AccessibilityLabel::containsOnlyStaticText correctly. Avoid this problem by dirtying `AccessibilityLabel::m_containsOnlyStaticTextDirty` once in a new `AccessibilityLabel::addChildren` override, and removing the `updateChildrenIfNecessary` and `insertChild` overrides. This re-ordering allows us to safely call update-children form of `unignoredChildren()` when requests in `containsOnlyStaticText`. This is also more performant in a couple ways: 1. We only resolve `containsOnlyStaticText` when it's actually requested rather than eagerly 2. `AccessibilityLabel` was the only overrider of `AccessibilityObject::insertChild`, so removing it allows us to make `insertChild` non-virtual. This is actually pretty significant as it's one of the most called functions that we have. We may need to audit other usages of `unignoredChildren(/* updateChildrenIfNecessary */ false)` added in https://commits.webkit.org/284418@main as a follow-up to this patch. * Source/WebCore/accessibility/AccessibilityLabel.cpp: (WebCore::childrenContainOnlyStaticText): (WebCore::AccessibilityLabel::containsOnlyStaticText const): (WebCore::AccessibilityLabel::addChildren): (WebCore::AccessibilityLabel::computeIsIgnored const): Deleted. (WebCore::AccessibilityLabel::updateChildrenIfNecessary): Deleted. (WebCore::AccessibilityLabel::insertChild): Deleted. * Source/WebCore/accessibility/AccessibilityLabel.h: * Source/WebCore/accessibility/AccessibilityObject.h: Canonical link: https://commits.webkit.org/284796@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] f5c7df: AX: Include ignored objects in the core, platform-...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: f5c7df811ff73918a79c4e438c91e5b6546e9fa3 https://github.com/WebKit/WebKit/commit/f5c7df811ff73918a79c4e438c91e5b6546e9fa3 Author: Tyler Wilcock Date: 2024-09-28 (Sat, 28 Sep 2024) Changed paths: M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml M Source/WTF/wtf/PlatformEnableCocoa.h M Source/WebCore/accessibility/AXCoreObject.cpp M Source/WebCore/accessibility/AXCoreObject.h M Source/WebCore/accessibility/AXImage.cpp M Source/WebCore/accessibility/AXLogger.cpp M Source/WebCore/accessibility/AXObjectCache.cpp M Source/WebCore/accessibility/AXSearchManager.cpp M Source/WebCore/accessibility/AXTextMarker.cpp M Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp M Source/WebCore/accessibility/AccessibilityLabel.cpp M Source/WebCore/accessibility/AccessibilityList.cpp M Source/WebCore/accessibility/AccessibilityListBox.cpp M Source/WebCore/accessibility/AccessibilityMathMLElement.cpp M Source/WebCore/accessibility/AccessibilityMenuList.cpp M Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp M Source/WebCore/accessibility/AccessibilityNodeObject.cpp M Source/WebCore/accessibility/AccessibilityObject.cpp M Source/WebCore/accessibility/AccessibilityObject.h M Source/WebCore/accessibility/AccessibilityRenderObject.cpp M Source/WebCore/accessibility/AccessibilityTable.cpp M Source/WebCore/accessibility/AccessibilityTableColumn.cpp M Source/WebCore/accessibility/AccessibilityTableRow.cpp 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/isolatedtree/mac/AXIsolatedObjectMac.mm M Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm Log Message: --- AX: Include ignored objects in the core, platform-agnostic accessibility tree behind a new feature flag https://bugs.webkit.org/show_bug.cgi?id=280012 rdar://136316595 Reviewed by Chris Fleizach. This patch adds a compile-time feature flag, ENABLE_INCLUDE_IGNORED_IN_CORE_AX_TREE, and a runtime feature flag, IncludeIgnoredInCoreAXTree, to start including ignored objects in the "core", platform-agnostic accessibility tree. This is necessary to support off-main-thread text marker computation, e.g. for emitting a newline when exiting the accessibility object of an ignored `tr` element, as one of many examples. Prior to this commit, any use of `AXCoreObject::children` implicitly assumed that the returned objects were unignored. With this commit, that function is renamed to `unignoredChildren`, and any context which expected to only process unignored objects now uses it. A new function, `childrenIncludingIgnored` is added, and that is used in a few places. There were several direct usages of `m_children` that were problematic, as `m_children` now includes ignored objects when ENABLE_INCLUDE_IGNORED_IN_CORE_AX_TREE is true. These usages are replaced with unignoredChildren(/* updateChildrenIfNeeded */ false), achieving the same behavior in both configurations with more explicit intent. There are many test failures left to fix in ENABLE_INCLUDE_IGNORED_IN_CORE_AX_TREE with this change (6 ITM off, 60 ITM on). Those will be addressed in follow-up patches. We will also need to find ways to optimize `unignoredChildren`, either by caching the result or something else, as this naive initial implementation does show up heavily in samples since the accessibility tree now has signifcantly more objects to traverse through. * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml: * Source/WTF/wtf/PlatformEnableCocoa.h: * Source/WebCore/accessibility/AXCoreObject.cpp: (WebCore::AXCoreObject::tabChildren): (WebCore::AXCoreObject::unignoredChildren): (WebCore::AXCoreObject::nextInPreOrder): (WebCore::AXCoreObject::nextSiblingIncludingIgnored const): (WebCore::AXCoreObject::nextUnignoredSibling const): (WebCore::AXCoreObject::nextUnignoredSiblingOrParent const): (WebCore::AXCoreObject::contents): (WebCore::AXCoreObject::ariaTreeItemContent): (WebCore::AXCoreObject::selectedRadioButton): (WebCore::AXCoreObject::selectedTabItem): (WebCore::AXCoreObject::appendRadioButtonDescendants const): (WebCore::AXCoreObject::parentObjectUnignored const): * Source/WebCore/accessibility/AXCoreObject.h: (WebCore::AXCoreObject::childrenIncludingIgnored): (WebCore::AXCoreObject::unignoredChildren): (WebCore::AXCoreObject::childrenIDs): (WebCore::Accessibility::findUnignoredChild): (WebCore::Accessibility::enumerateUnignoredDescendants): (WebCore::Acc
[webkit-changes] [WebKit/WebKit] c432de: REGRESSION(282266@main): Accessibility tree update...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c432de0695706f7cb574bcce51c04d8291966b93 https://github.com/WebKit/WebKit/commit/c432de0695706f7cb574bcce51c04d8291966b93 Author: Tyler Wilcock Date: 2024-09-20 (Fri, 20 Sep 2024) Changed paths: M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h Log Message: --- REGRESSION(282266@main): Accessibility tree updates on large webpages are slow due to repeated m_pendingProtectedFromDeletionIDs.formUnion() calls https://bugs.webkit.org/show_bug.cgi?id=280031 rdar://136329962 Reviewed by Andres Gonzalez and Chris Fleizach. In https://commits.webkit.org/282266@main, we changed this code in `queueRemovalsLocked` from: m_pendingProtectedFromDeletionIDs.formUnion(std::exchange(m_protectedFromDeletionIDs, { })); to: if (m_protectedFromDeletionIDsIsDirty) m_pendingProtectedFromDeletionIDs.formUnion(m_protectedFromDeletionIDs); The thought was that m_protectedFromDeletionIDsIsDirty would rarely become dirty and then get flushed, so the O(n) behavior introduced would be fine. However, some webpages behave in ways that constantly dirty this list, and m_protectedFromDeletionIDs can get extremely large, making the constant formUnion calls expensive. The only reason formUnion(std::exchange(m_protectedFromDeletionIDs, { })) was problematic in the first place was because some AXIsolatedTree::updateChildren iterations would queueRemovals separately from queueing appends, meaning we could delete objects we shouldn't have been deleting. With this commit, we move back to std::exchange(m_protectedFromDeletionIDs, { }), and solve the problem in a more logical way — force AXIsolatedTree::updateChildren to queue its appends and removals at the same time by removing the else branch at the bottom of updateChildren: if (resolveNodeChanges == ResolveNodeChanges::Yes) queueRemovalsAndUnresolvedChanges(WTFMove(oldChildrenIDs)); else // removed queueRemovals(WTFMove(oldChildrenIDs)); We now accumulate removals in a new list, AXIsolatedTree::m_subtreesToRemove, and flush them to m_pendingSubtreeRemovals at the same time we flush our appends. This is better in every way: simpler, avoids the expensive formUnion calls, results in fewer lock acquisitions, and removes the Vector parameter to queueRemovalsAndUnresolvedChanges that only one code path actually passed in. https://commits.webkit.org/282266@main introduced two new layout tests — both still pass after this change with 100 iterations. I have also manually tested the webpages those testcases came from, and have confirmed the missing content bugs are not reintroduced with this change. * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp: (WebCore::AXIsolatedTree::generateSubtree): (WebCore::AXIsolatedTree::queueRemovalsLocked): (WebCore::AXIsolatedTree::queueRemovalsAndUnresolvedChanges): (WebCore::AXIsolatedTree::queueAppendsAndRemovals): (WebCore::AXIsolatedTree::collectNodeChangesForSubtree): (WebCore::AXIsolatedTree::updateChildren): (WebCore::AXIsolatedTree::updateChildrenForObjects): (WebCore::AXIsolatedTree::processQueuedNodeUpdates): (WebCore::AXIsolatedTree::protectFromDeletion): Deleted. * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h: Canonical link: https://commits.webkit.org/283983@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] c726e3: AX: The accessibility tree doesn't update when sel...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c726e39c4422ee5635c91936773212032cc1c2e7 https://github.com/WebKit/WebKit/commit/c726e39c4422ee5635c91936773212032cc1c2e7 Author: Tyler Wilcock Date: 2024-09-11 (Wed, 11 Sep 2024) Changed paths: A LayoutTests/accessibility/mac/dynamic-selection-expected.txt A LayoutTests/accessibility/mac/dynamic-selection.html M LayoutTests/resources/accessibility-helper.js M Source/WebCore/editing/mac/FrameSelectionMac.mm Log Message: --- AX: The accessibility tree doesn't update when selection is cleared https://bugs.webkit.org/show_bug.cgi?id=279484 rdar://135768164 Reviewed by Andres Gonzalez. Prior to this patch, we never updated the isolated tree when selection was cleared, only when it was changed from one node to another. This meant that we would serve stale data for the AXSelectedTextMarkerRangeAttribute API. * LayoutTests/accessibility/mac/dynamic-selection-expected.txt: Added. * LayoutTests/accessibility/mac/dynamic-selection.html: Added. * LayoutTests/resources/accessibility-helper.js: * Source/WebCore/editing/mac/FrameSelectionMac.mm: (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): Canonical link: https://commits.webkit.org/283506@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 9a8c81: AX: Make accessibility/mixed-content editable-* no...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 9a8c812667116aaa996804abc21f82cb040cb0f0 https://github.com/WebKit/WebKit/commit/9a8c812667116aaa996804abc21f82cb040cb0f0 Author: Tyler Wilcock Date: 2024-09-05 (Thu, 05 Sep 2024) Changed paths: M LayoutTests/accessibility/mixed-contenteditable-double-br-visible-character-range-hang.html M LayoutTests/accessibility/mixed-contenteditable-visible-character-range-hang.html M LayoutTests/platform/ios/TestExpectations Log Message: --- AX: Make accessibility/mixed-content editable-* not flakey https://bugs.webkit.org/show_bug.cgi?id=279132 rdar://problem/135284714 Reviewed by Andres Gonzalez. * LayoutTests/accessibility/mixed-contenteditable-double-br-visible-character-range-hang.html: * LayoutTests/accessibility/mixed-contenteditable-visible-character-range-hang.html: Make these tests async, avoiding issues where we query too early and get a too-small visible character range rect back. * LayoutTests/platform/ios/TestExpectations: Re-enable these tests on iOS. Canonical link: https://commits.webkit.org/283209@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 030cac: AX: Various AccessibilityObject and AXObjectCache ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 030cac1847daa66c0b4e1404d8f15c61d6ac https://github.com/WebKit/WebKit/commit/030cac1847daa66c0b4e1404d8f15c61d6ac Author: Tyler Wilcock Date: 2024-08-31 (Sat, 31 Aug 2024) Changed paths: M Source/WebCore/accessibility/AXObjectCache.cpp M Source/WebCore/accessibility/AXObjectCache.h M Source/WebCore/accessibility/AXTextMarker.cpp M Source/WebCore/accessibility/AccessibilityObject.cpp M Source/WebCore/accessibility/AccessibilityObject.h M Source/WebCore/accessibility/AccessibilityRenderObject.cpp M Source/WebCore/accessibility/atspi/AXObjectCacheAtspi.cpp M Source/WebCore/accessibility/ios/AXObjectCacheIOS.mm M Source/WebCore/accessibility/mac/AXObjectCacheMac.mm M Source/WebCore/accessibility/playstation/AXObjectCachePlayStation.cpp M Source/WebCore/accessibility/win/AXObjectCacheWin.cpp M Source/WebCore/page/LocalFrameView.cpp Log Message: --- AX: Various AccessibilityObject and AXObjectCache helper methods take Node* or RenderObject* when they could take a reference https://bugs.webkit.org/show_bug.cgi?id=278956 rdar://135063206 Reviewed by Chris Fleizach. In all callsites of these functions that take Node* or RenderObject*, we know from the context that the passed pointer cannot be null (e.g. because we already checked), meaning we're performing unnecessary null-checks: - recomputeIsIgnored(RenderObject*) - replacedNodeNeedsCharacter(Node*) - isReplacedNodeOrBR(Node* node) - handleScrolledToAnchor(const Node*) - nodeHasPresentationRole(Node*) - isModalDescendant(Node*) * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::recomputeIsIgnored): (WebCore::AXObjectCache::traverseToOffsetInRange): (WebCore::AXObjectCache::lengthForRange): (WebCore::AXObjectCache::rangeForNodeContents): (WebCore::isReplacedNodeOrBR): (WebCore::characterOffsetsInOrder): (WebCore::boundaryPoint): (WebCore::AXObjectCache::nextCharacterOffset): (WebCore::AXObjectCache::previousBoundary): (WebCore::AXObjectCache::performDeferredCacheUpdate): (WebCore::AXObjectCache::deferRecomputeIsIgnoredIfNeeded): * Source/WebCore/accessibility/AXObjectCache.h: * Source/WebCore/accessibility/AXTextMarker.cpp: (WebCore::AXTextMarker::boundaryPoint const): * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::replacedNodeNeedsCharacter): (WebCore::AccessibilityObject::stringForRange const): (WebCore::AccessibilityObject::stringForVisiblePositionRange): (WebCore::AccessibilityObject::isModalDescendant const): (WebCore::AccessibilityObject::ignoredFromModalPresence const): (WebCore::nodeHasPresentationRole): (WebCore::AccessibilityObject::supportsPressAction const): * Source/WebCore/accessibility/AccessibilityObject.h: * Source/WebCore/accessibility/AccessibilityRenderObject.cpp: (WebCore::webAreaIsPresentational): * Source/WebCore/accessibility/atspi/AXObjectCacheAtspi.cpp: (WebCore::AXObjectCache::handleScrolledToAnchor): * Source/WebCore/accessibility/ios/AXObjectCacheIOS.mm: (WebCore::AXObjectCache::handleScrolledToAnchor): * Source/WebCore/accessibility/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::handleScrolledToAnchor): * Source/WebCore/accessibility/playstation/AXObjectCachePlayStation.cpp: (WebCore::AXObjectCache::handleScrolledToAnchor): * Source/WebCore/accessibility/win/AXObjectCacheWin.cpp: (WebCore::AXObjectCache::handleScrolledToAnchor): * Source/WebCore/page/LocalFrameView.cpp: (WebCore::LocalFrameView::scrollToAnchor): Canonical link: https://commits.webkit.org/283031@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] e704d5: AX: Remove "accessibility" prefix from functions a...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: e704d5918c7ded72a92a22d3a5c9babde8d85128 https://github.com/WebKit/WebKit/commit/e704d5918c7ded72a92a22d3a5c9babde8d85128 Author: Tyler Wilcock Date: 2024-08-28 (Wed, 28 Aug 2024) Changed paths: M Source/WebCore/accessibility/AXCoreObject.h M Source/WebCore/accessibility/AXObjectCache.cpp M Source/WebCore/accessibility/AXRemoteFrame.h M Source/WebCore/accessibility/AXSearchManager.cpp M Source/WebCore/accessibility/AccessibilityARIAGridCell.cpp M Source/WebCore/accessibility/AccessibilityAttachment.cpp M Source/WebCore/accessibility/AccessibilityAttachment.h M Source/WebCore/accessibility/AccessibilityLabel.cpp M Source/WebCore/accessibility/AccessibilityLabel.h M Source/WebCore/accessibility/AccessibilityList.cpp M Source/WebCore/accessibility/AccessibilityList.h M Source/WebCore/accessibility/AccessibilityListBox.cpp M Source/WebCore/accessibility/AccessibilityListBoxOption.cpp M Source/WebCore/accessibility/AccessibilityListBoxOption.h M Source/WebCore/accessibility/AccessibilityMediaObject.cpp M Source/WebCore/accessibility/AccessibilityMediaObject.h M Source/WebCore/accessibility/AccessibilityMenuList.cpp M Source/WebCore/accessibility/AccessibilityMenuListOption.cpp M Source/WebCore/accessibility/AccessibilityMenuListOption.h M Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp M Source/WebCore/accessibility/AccessibilityMenuListPopup.h M Source/WebCore/accessibility/AccessibilityMockObject.cpp M Source/WebCore/accessibility/AccessibilityMockObject.h M Source/WebCore/accessibility/AccessibilityNodeObject.cpp M Source/WebCore/accessibility/AccessibilityNodeObject.h M Source/WebCore/accessibility/AccessibilityObject.cpp M Source/WebCore/accessibility/AccessibilityObject.h M Source/WebCore/accessibility/AccessibilityProgressIndicator.cpp M Source/WebCore/accessibility/AccessibilityProgressIndicator.h M Source/WebCore/accessibility/AccessibilityRenderObject.cpp M Source/WebCore/accessibility/AccessibilityRenderObject.h M Source/WebCore/accessibility/AccessibilitySVGElement.cpp M Source/WebCore/accessibility/AccessibilitySVGElement.h M Source/WebCore/accessibility/AccessibilityScrollView.cpp M Source/WebCore/accessibility/AccessibilityScrollView.h M Source/WebCore/accessibility/AccessibilitySlider.cpp M Source/WebCore/accessibility/AccessibilitySlider.h M Source/WebCore/accessibility/AccessibilityTable.cpp M Source/WebCore/accessibility/AccessibilityTable.h M Source/WebCore/accessibility/AccessibilityTableCell.cpp M Source/WebCore/accessibility/AccessibilityTableCell.h M Source/WebCore/accessibility/AccessibilityTableColumn.cpp M Source/WebCore/accessibility/AccessibilityTableColumn.h M Source/WebCore/accessibility/AccessibilityTableHeaderContainer.cpp M Source/WebCore/accessibility/AccessibilityTableHeaderContainer.h M Source/WebCore/accessibility/AccessibilityTableRow.cpp M Source/WebCore/accessibility/AccessibilityTableRow.h M Source/WebCore/accessibility/AccessibilityTree.cpp M Source/WebCore/accessibility/AccessibilityTree.h M Source/WebCore/accessibility/atspi/AccessibilityObjectAtspi.cpp M Source/WebCore/accessibility/atspi/AccessibilityObjectHyperlinkAtspi.cpp M Source/WebCore/accessibility/atspi/AccessibilityObjectHypertextAtspi.cpp M Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp M Source/WebCore/accessibility/mac/AXObjectCacheMac.mm M Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm M Source/WebCore/accessibility/win/AXObjectCacheWin.cpp M Source/WebCore/inspector/InspectorAuditAccessibilityObject.cpp M Source/WebCore/inspector/InspectorOverlay.cpp M Source/WebCore/inspector/agents/InspectorDOMAgent.cpp Log Message: --- AX: Remove "accessibility" prefix from functions accessibilityIsIgnored, computeAccessibilityIsIgnored, accessibilityIsIgnoredByDefault https://bugs.webkit.org/show_bug.cgi?id=278802 rdar://134871455 Reviewed by Andres Gonzalez. This prefix is unnecessary and makes these functions more unwieldy to call. Credit to Andres Gonzalez whose idea it was to make this change as part of https://github.com/WebKit/WebKit/pull/32839/files. * Source/WebCore/accessibility/AXCoreObject.h: * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::modalElementHasAccessibleContent): (WebCore::AXObjectCache::focusedObjectForNode): (WebCore::AXObjectCache::getOrCreate): (WebCore::AXO
[webkit-changes] [WebKit/WebKit] a1187f: AX: Remove unused AXIsolatedTree::retrieveObjectFo...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: a1187fe9976311078c8308866064a63f853f3ac5 https://github.com/WebKit/WebKit/commit/a1187fe9976311078c8308866064a63f853f3ac5 Author: Tyler Wilcock Date: 2024-08-28 (Wed, 28 Aug 2024) Changed paths: M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h Log Message: --- AX: Remove unused AXIsolatedTree::retrieveObjectForIDFromMainThread method https://bugs.webkit.org/show_bug.cgi?id=278798 rdar://134865624 Reviewed by Chris Fleizach. * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp: (WebCore::AXIsolatedTree::retrieveObjectForIDFromMainThread const): Deleted. Canonical link: https://commits.webkit.org/282862@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 4900d7: AX: Flakey failures in wpt.fyi Interop 2024 access...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 4900d7a90e6ea0edfd43a2bfdf37db22ad682170 https://github.com/WebKit/WebKit/commit/4900d7a90e6ea0edfd43a2bfdf37db22ad682170 Author: Tyler Wilcock Date: 2024-08-23 (Fri, 23 Aug 2024) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/resources/testdriver-vendor.js M Source/WebCore/accessibility/AccessibilityObject.cpp M Source/WebCore/testing/Internals.cpp M Source/WebCore/testing/Internals.h M Source/WebCore/testing/Internals.idl M Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.cpp Log Message: --- AX: Flakey failures in wpt.fyi Interop 2024 accessibility tests https://bugs.webkit.org/show_bug.cgi?id=278540 rdar://134527513 Reviewed by Chris Fleizach. We suspect these flakey failures happen if WebDriver queries WebCore before the render tree has been built for the first time, meaning we aren't going to create accessibility objects correctly, resulting in an empty string result for computed role and computed label. We actually worked around this problem in the implementation of test_driver_internal.{get_computed_label, get_computed_role} by using a mechanism to asynchronously wait for the render tree to be laid out via `Internals::readyToRetrieveComputedRoleOrLabel`. However, no such mechanism was put in place for the actual WebDriver implementation of getComputedRole and getComputedLabel, so it is probably suffering from the same problem. With this patch, `Internals::readyToRetrieveComputedRoleOrLabel` is removed, and instead we just force layout to ensure renderers are attached to elements before querying these properties. We also now force layout in the WebDriver methods for this functionality in WebAutomationSessionProxy.cpp, which should solve the flakiness. * LayoutTests/imported/w3c/web-platform-tests/resources/testdriver-vendor.js: * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::computedLabel): * Source/WebCore/testing/Internals.cpp: (WebCore::Internals::getComputedLabel const): (WebCore::Internals::getComputedRole const): (WebCore::Internals::readyToRetrieveComputedRoleOrLabel const): Deleted. * Source/WebCore/testing/Internals.h: * Source/WebCore/testing/Internals.idl: * Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.cpp: (WebKit::WebAutomationSessionProxy::getAccessibilityObjectForNode): (WebKit::WebAutomationSessionProxy::getComputedRole): (WebKit::WebAutomationSessionProxy::getComputedLabel): Canonical link: https://commits.webkit.org/282659@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 70128b: AX: Voiceover/Safari is not reading the contents o...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 70128b4a24b6ff0cebc5c231354e78337735981d https://github.com/WebKit/WebKit/commit/70128b4a24b6ff0cebc5c231354e78337735981d Author: Tyler Wilcock Date: 2024-08-19 (Mon, 19 Aug 2024) Changed paths: A LayoutTests/accessibility/dynamic-aria-describedby-text-expected.txt A LayoutTests/accessibility/dynamic-aria-describedby-text.html M LayoutTests/platform/glib/TestExpectations M LayoutTests/platform/ios/TestExpectations M Source/WebCore/accessibility/AXObjectCache.cpp Log Message: --- AX: Voiceover/Safari is not reading the contents of divs with role=“tooltip” https://bugs.webkit.org/show_bug.cgi?id=276690 rdar://131877635 Reviewed by Chris Fleizach. When the text underneath the target of an aria-describedby changes, we need to post AXExtendedDescriptionChanged to ensure the accessibility tree is updated. * LayoutTests/accessibility/dynamic-aria-describedby-text-expected.txt: Added. * LayoutTests/accessibility/dynamic-aria-describedby-text.html: Added. * LayoutTests/platform/ios/TestExpectations: Enable new test. * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::handleChildrenChanged): (WebCore::AXObjectCache::updateIsolatedTree): Canonical link: https://commits.webkit.org/282430@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 450597: AX: VO announces value when ElementInternals.ariaV...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 450597ff73ce36b93e89439accf0f8055ad62fa9 https://github.com/WebKit/WebKit/commit/450597ff73ce36b93e89439accf0f8055ad62fa9 Author: Tyler Wilcock Date: 2024-08-19 (Mon, 19 Aug 2024) Changed paths: A LayoutTests/accessibility/indeterminate-progressbar-custom-element-expected.txt A LayoutTests/accessibility/indeterminate-progressbar-custom-element.html M LayoutTests/platform/ios/TestExpectations M LayoutTests/platform/mac-wk1/TestExpectations M Source/WebCore/accessibility/AccessibilityObject.cpp Log Message: --- AX: VO announces value when ElementInternals.ariaValueNow is set to null https://bugs.webkit.org/show_bug.cgi?id=275107 rdar://129218234 Reviewed by Chris Fleizach. This bug happened because prior to this commit, `AccessibilityObject::hasAttribute` returned true even if an ElementInternals attribute had been set to null (which should be treated the same as removing the attribute), because that's how `CustomElementDefaultARIA::hasAttribute` behaves. This influences various functions, such as `AccessibilityNodeObject::isIndeterminate()`. Fix this by checking that `CustomElementDefaultARIA::valueForAttribute` is not null, which is a more accurate representation of whether the element "has" the attribute. * LayoutTests/accessibility/indeterminate-progressbar-custom-element-expected.txt: Added. * LayoutTests/accessibility/indeterminate-progressbar-custom-element.html: Added. * LayoutTests/platform/ios/TestExpectations: Enable new test. * LayoutTests/platform/mac-wk1/TestExpectations: Skip new test. * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::hasAttribute const): Canonical link: https://commits.webkit.org/282422@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 913896: AX: Support display:contents for tbody elements
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 9138960e6c997b65b73ab22dd7151217b04b9345 https://github.com/WebKit/WebKit/commit/9138960e6c997b65b73ab22dd7151217b04b9345 Author: Tyler Wilcock Date: 2024-08-18 (Sun, 18 Aug 2024) Changed paths: A LayoutTests/accessibility/display-contents/table-section-elements-expected.txt A LayoutTests/accessibility/display-contents/table-section-elements.html A LayoutTests/platform/glib/accessibility/display-contents/table-section-elements-expected.txt M LayoutTests/platform/ios/TestExpectations A LayoutTests/platform/ios/accessibility/display-contents/table-section-elements-expected.txt M Source/WebCore/accessibility/AccessibilityObject.cpp Log Message: --- AX: Support display:contents for tbody elements https://bugs.webkit.org/show_bug.cgi?id=275029 rdar://129131780 Reviewed by Chris Fleizach. To avoid double-inserting the children of display:contents elements, we have a check in `AccessibilityObject::insertChild` that exits early if the child we're inserting has a display:contents parent that is not `this` in the context of that function. This works great under the assumption that something eventually calls `insertChild` on the `display:contents` element. However, that never happens for table section elements when `AccessibilityTable::addChildren` runs — it only calls `insertChild` (indirectly, through `addChild`) on the actual table rows. This patch fixes the bug by adjusting the check in `AccessibilityObject::insertChild` to accomodate this scenario, and adds a new testcase to prevent it from regressing. * LayoutTests/accessibility/display-contents/table-section-elements-expected.txt: Added. * LayoutTests/accessibility/display-contents/table-section-elements.html: Added. * LayoutTests/platform/glib/accessibility/display-contents/table-section-elements-expected.txt: Added. * LayoutTests/platform/ios/TestExpectations: Enable new test. * LayoutTests/platform/ios/accessibility/display-contents/table-section-elements-expected.txt: Added. * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::insertChild): Canonical link: https://commits.webkit.org/282413@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] bf0f2d: AX: display: contents is preventing items from bei...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: bf0f2dcbbb3a4a8187a0428c38ff7362f3a0c6a7 https://github.com/WebKit/WebKit/commit/bf0f2dcbbb3a4a8187a0428c38ff7362f3a0c6a7 Author: Tyler Wilcock Date: 2024-08-15 (Thu, 15 Aug 2024) Changed paths: A LayoutTests/accessibility/display-contents/listbox-item-expected.txt A LayoutTests/accessibility/display-contents/listbox-item.html A LayoutTests/platform/glib/accessibility/display-contents/listbox-item-expected.txt M LayoutTests/platform/ios/TestExpectations A LayoutTests/platform/ios/accessibility/display-contents/listbox-item-expected.txt M Source/WebCore/accessibility/AccessibilityNodeObject.cpp Log Message: --- AX: display: contents is preventing items from being read https://bugs.webkit.org/show_bug.cgi?id=276899 rdar://132265522 Reviewed by Chris Fleizach. This happened due to a hack in AccessibilityNodeObject::textUnderElement that tried to avoid grabbing the same text twice due to the effects of `display:contents` on the way we walk between the DOM and render tree. This hack, which tries to verify that the child being checked has the "right" parent element, has caused several bugs since its introduction, and has thus accrued more and more conditions limiting it. This bug is also a result of this hack, incorrectly exiting early before retrieving the text under element. Consider this markup: Foo When getting the textUnderElement for #a, which is display:block, thus has a renderer, it's render tree child is div #b (because the the `display:contents` div is not in the render tree). And div #b knows its parent element is the `display:contents` div, not #a, so the hack exits early, resulting in the text never being retrieved. The fix is simple: remove this hack entirely. The problem it solves is correctly handled by the introduction of the AXChildIterator in https://bugs.webkit.org/show_bug.cgi?id=272606, which knows how to correctly weave between the DOM and render tree without straying outside the "correct" bounds. Testcase accessibility/display-contents/listbox-item.html added ensuring we don't regress this. * LayoutTests/accessibility/display-contents/listbox-item-expected.txt: Added. * LayoutTests/accessibility/display-contents/listbox-item.html: Added. * LayoutTests/platform/glib/accessibility/display-contents/listbox-item-expected.txt: Added. * LayoutTests/platform/ios/TestExpectations: Enable new test. * LayoutTests/platform/ios/accessibility/display-contents/listbox-item-expected.txt: Added. * Source/WebCore/accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::textUnderElement const): Canonical link: https://commits.webkit.org/282289@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 71ce3f: REGRESSION(281440@main): Web content can become in...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 71ce3f1d011ad76b976f01882cf2a81129815ff9 https://github.com/WebKit/WebKit/commit/71ce3f1d011ad76b976f01882cf2a81129815ff9 Author: Tyler Wilcock Date: 2024-08-14 (Wed, 14 Aug 2024) Changed paths: A LayoutTests/accessibility/animated-dropdown-expected.txt A LayoutTests/accessibility/animated-dropdown.html A LayoutTests/accessibility/mac/child-update-during-ax-request-expected.txt A LayoutTests/accessibility/mac/child-update-during-ax-request.html A LayoutTests/accessibility/resources/jquery-3.6.1.js M LayoutTests/platform/glib/TestExpectations M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h Log Message: --- REGRESSION(281440@main): Web content can become inaccessible after dynamic webpage changes rdar://13343 https://bugs.webkit.org/show_bug.cgi?id=277817 Reviewed by Andres Gonzalez and Chris Fleizach. In http://commits.webkit.org/281440@main, we fixed a bug where `AXIsolatedTree::m_protectedFromDeletionIDs` was cleared too early, which in turn caused objects to be incorrectly removed from `AXIsolatedTree::m_nodeMap`, eventually breaking the accessibility tree. We fixed this by moving: `m_pendingProtectedFromDeletionIDs.formUnion(std::exchange(m_protectedFromDeletionIDs, { }))` from `queueRemovalsLocked` to `queueAppendsAndRemovals` (which should happen once per tree-update cycle, making it the right time to clear this list). This caused a new bug, however, in this sequence: 1. The main-thread starts a tree update via `AXIsolatedTree::updateChildren`. 2. In doing so, we call `queueRemovalsLocked`, i.e. because an object lost a child (but that child isn't deleted, just has a different parent, so we mark it as protected on the main-thread in `m_protectedFromDeletionIDs`). 3. We call `queueRemovalsLocked` for that child and any others no longer children of the original object. After 281440@main, we no longer sync protected IDs in this function. 4. Before the full main-thread tree-update (`AXIsolatedTree::updateChildren`) is finished, resulting in a call to `queueAppendsAndRemovals`, the secondary thread processes a request from an AT, causing `AXIsolatedTree::applyPendingChanges` to run on the secondary thread (as expected to ensure we service the request with the most up-to-date information). 5. We delete the re-parented child, and any of its descendants, from the accessibility thread data structures because we failed to protect it. 6. `queueAppendsAndRemovals` eventually finishes on the main-thread, and we sync the protected objects to the secondary thread, but at that point it's too late. 7. The accessibility tree is now broken, with random objects missing entirely. This patch fixes this by changing `queueRemovalsLocked` (called by `queueAppendsAndRemovals`) to sync protected object IDs if necessary, and changes `queueAppendsAndRemovals` to clear the list of protected objects, fixing both the bug addressed by http://commits.webkit.org/281440@main, and the bug it caused. Because 281440@main caused a bug, it was reverted in https://github.com/WebKit/WebKit/pull/31917. This PR brings back the test 281440@main added (animated-dropdown.html), and adds a new test (child-update-during-ax-request.html) that would've caught the bug 281440@main introduced. * LayoutTests/accessibility/animated-dropdown-expected.txt: Added. * LayoutTests/accessibility/animated-dropdown.html: Added. * LayoutTests/accessibility/mac/child-update-during-ax-request-expected.txt: Added. * LayoutTests/accessibility/mac/child-update-during-ax-request.html: Added. * LayoutTests/accessibility/resources/jquery-3.6.1.js: Added. * LayoutTests/platform/glib/TestExpectations: Skip accessibility/animated-dropdown.html. * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp: (WebCore::AXIsolatedTree::queueRemovalsLocked): (WebCore::AXIsolatedTree::queueAppendsAndRemovals): (WebCore::AXIsolatedTree::collectNodeChangesForSubtree): (WebCore::AXIsolatedTree::updateChildren): (WebCore::AXIsolatedTree::protectFromDeletion): * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h: Canonical link: https://commits.webkit.org/282266@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] e2e8c4: Element reflection attributes should be able to re...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: e2e8c4d0c409bcc8195459ee8c2279a9174b95ea https://github.com/WebKit/WebKit/commit/e2e8c4d0c409bcc8195459ee8c2279a9174b95ea Author: Tyler Wilcock Date: 2024-08-13 (Tue, 13 Aug 2024) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/html/dom/aria-element-reflection-disconnected-expected.txt M Source/WebCore/dom/Element.cpp Log Message: --- Element reflection attributes should be able to retrieve disconnected elements https://bugs.webkit.org/show_bug.cgi?id=277956 rdar://133693674 Reviewed by Ryosuke Niwa. Because disconnected elements are not stored in TreeScope::m_elementsById, we failed to return them from element reflection getters `Element::getElementAttribute` and `Element::getElementsArrayAttribute`. But the spec does not require elements to be connected to be returned from these mechanisms: https://html.spec.whatwg.org/#attr-associated-element This patch fixes this by continuing to use TreeScope::getElementById() for connected elements, and walking the tree to find the element-by-id for disconnected elements. Inspired by https://github.com/chromium/chromium/commit/b237124847af1f6a8316af8fb5c78e35bd03df0a. * LayoutTests/imported/w3c/web-platform-tests/html/dom/aria-element-reflection-disconnected-expected.txt: Mark this test as passing. * Source/WebCore/dom/Element.cpp: (WebCore::getElementByIdIncludingDisconnected): Added. (WebCore::Element::getElementAttribute const): (WebCore::Element::getElementsArrayAttribute const): Handle disconnected nodes. (WebCore::Element::customElementDefaultARIA): Drive-by fix to spelling: deafult -> default Canonical link: https://commits.webkit.org/282204@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] d7e205: AX: Tables with show/hide rows report wrong counts...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d7e2051a1f93411408b07b03934a87e957ff0b4f https://github.com/WebKit/WebKit/commit/d7e2051a1f93411408b07b03934a87e957ff0b4f Author: Tyler Wilcock Date: 2024-08-13 (Tue, 13 Aug 2024) Changed paths: A LayoutTests/accessibility/aria-controlled-table-row-visibility-expected.txt A LayoutTests/accessibility/aria-controlled-table-row-visibility.html M LayoutTests/platform/glib/TestExpectations M LayoutTests/platform/ios/TestExpectations A LayoutTests/platform/ios/accessibility/aria-controlled-table-row-visibility-expected.txt M LayoutTests/platform/mac-wk1/TestExpectations M Source/WebCore/accessibility/AccessibilityTableRow.cpp Log Message: --- AX: Tables with show/hide rows report wrong counts and block access to some rows in VoiceOver https://bugs.webkit.org/show_bug.cgi?id=275366 rdar://129612387 Reviewed by Chris Fleizach. This happened because fundamentally, `AccessibilityTableRow::computeAccessibilityIsIgnored` did not respect hidden states at all (https://www.w3.org/TR/wai-aria/#dfn-hidden — display:none or visibility:hidden). We only got away with it for so long because `AXObjectCache::getOrCreate(Node& node, IsPartOfRelation isPartOfRelation)` limits the types of objects that can be created without a renderer, effectively blocking these hidden objects. Except it unconditionally creates objects that are part of a relantionship (like `aria-controls`): ``` // If node is the target of a relationship or a descendant of one, create an AX object unconditionally. if (isPartOfRelation == IsPartOfRelation::No && !isDescendantOfRelatedNode(node)) { ...strict criteria to create a renderer-less object... } ``` After this commit, `AccessibilityTableRow::computeAccessibilityIsIgnored` now properly respects hidden status, fixing the bug. * LayoutTests/accessibility/aria-controlled-table-row-visibility-expected.txt: Added. * LayoutTests/accessibility/aria-controlled-table-row-visibility.html: Added. * LayoutTests/platform/ios/TestExpectations: Enable new test. * LayoutTests/platform/ios/accessibility/aria-controlled-table-row-visibility-expected.txt: Added. * LayoutTests/platform/mac-wk1/TestExpectations: Skip new test. * Source/WebCore/accessibility/AccessibilityTableRow.cpp: (WebCore::AccessibilityTableRow::computeAccessibilityIsIgnored const): Canonical link: https://commits.webkit.org/282165@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 408d72: REGRESSION(281440@main): Revert 281440@main becaus...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 408d72e9aabac0c6b252a41070a9b7adb53aa572 https://github.com/WebKit/WebKit/commit/408d72e9aabac0c6b252a41070a9b7adb53aa572 Author: Tyler Wilcock Date: 2024-08-08 (Thu, 08 Aug 2024) Changed paths: R LayoutTests/accessibility/animated-dropdown-expected.txt R LayoutTests/accessibility/animated-dropdown.html R LayoutTests/accessibility/resources/jquery-3.6.1.js M LayoutTests/platform/glib/TestExpectations M LayoutTests/platform/ios/TestExpectations R LayoutTests/platform/ios/accessibility/animated-dropdown-expected.txt M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp Log Message: --- REGRESSION(281440@main): Revert 281440@main because it caused missing content for VoiceOver on various webpages https://bugs.webkit.org/show_bug.cgi?id=277829 rdar://133493683 Reviewed by Simon Fraser. We need to fix this in another way (specifically: https://github.com/WebKit/WebKit/pull/31907). * LayoutTests/accessibility/animated-dropdown-expected.txt: Removed. * LayoutTests/accessibility/animated-dropdown.html: Removed. * LayoutTests/accessibility/resources/jquery-3.6.1.js: Removed. * LayoutTests/platform/glib/TestExpectations: * LayoutTests/platform/ios/TestExpectations: * LayoutTests/platform/ios/accessibility/animated-dropdown-expected.txt: Removed. * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp: (WebCore::AXIsolatedTree::queueRemovalsLocked): (WebCore::AXIsolatedTree::queueAppendsAndRemovals): Canonical link: https://commits.webkit.org/282034@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 467a48: [WebAuthn] Ensure conditional mediation paused whe...
the sync message, to maintain ordering. Unfortunately, our IPC logic was racy and it was possible that the order wasn't maintained to such cases. This could lead to logic bugs, which sometimes translate into security bugs. In particular, this impacted the following scenario, as proven in the radar: 1. The WebProcess sends a `WebPageProxy::ExecuteUndoRedo` sync IPC to the UIProcess 2. The UIProcess receives the `WebPageProxy::ExecuteUndoRedo` IPC 3. The UIProcess sends an `WebPage::UnapplyEditCommand` / `WebPage::ReapplyEditCommand` async IPC to the WebProcess with the DispatchMessageEvenWhenWaitingForSyncReply option. 4. The UIProcess calls the completion handler for the `WebPageProxy::ExecuteUndoRedo` sync IPC, thus finally responding to the WebProcess. 5. The WebProcess processes the `WebPage::UnapplyEditCommand` / `WebPage::ReapplyEditCommand` IPC 6. The WebProcess processes the reply to its `WebPageProxy::ExecuteUndoRedo` sync IPC and returns from its `sendSync()` call. This is what normally happens. However, due to a race in our logic for handling sync IPC responses, steps 5 & 6 would sometimes be swapped, leading to crashes. The race was due to the logic in Connection::waitForSyncReply(), which runs on the main thread. We would do the following: 1. Call `m_syncState->dispatchMessages()` to dispatch sync messages and async messages sent with the DispatchMessageEvenWhenWaitingForSyncReply option 2. Check if we received a response to our sync IPC, return it if we do 3. Go back to step 1 This code is racy because messages are processed on the IPC receive queue and this code runs on the main thread. This means that in between step 1 and step 2, we could receive messages that should have been processed *before* processing the sync IPC reply. To address the issue, whenever we receive a sync IPC reply on the IPC receive queue, we save (with the reply) the identifiers of the IPC messages that were received *before* the sync reply and that should be processed before to maintain ordering. When we process the sync reply later on, on the main thread, we make sure to dispatch these messages *before* we return the sync reply. This patch also fixes a bug in SyncMessageState::dispatchMessages() that could cause ordering issues. The code wanted to merge 2 Deque containers and kept calling takeLast() on the second container instead of takeFirst(). This was essentially reversing the order of messages in the second Deque. * Source/WebKit/Platform/IPC/Connection.cpp: (IPC::Connection::SyncMessageState::dispatchMessages): (IPC::Connection::SyncMessageState::identifiersOfMessagesToDispatchWhileWaitingForSyncReply): (IPC::Connection::waitForSyncReply): (IPC::Connection::processIncomingSyncReply): Originally-landed-as: 272448.1041@safari-7618-branch (047893baba32). rdar://132957900 Canonical link: https://commits.webkit.org/281801@main Commit: 6e72e0b7776655d2f98d62318ba18d959b9f6a0d https://github.com/WebKit/WebKit/commit/6e72e0b7776655d2f98d62318ba18d959b9f6a0d Author: Tyler Wilcock Date: 2024-08-03 (Sat, 03 Aug 2024) Changed paths: M Source/WebCore/accessibility/AccessibilityObject.cpp M Source/WebCore/accessibility/AccessibilityObject.h M Source/WebCore/accessibility/cocoa/AccessibilityObjectCocoa.mm M Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp M Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.h Log Message: --- In AXIsolatedTree::resolveAppends(), m_unresolvedPendingAppends can be added to while being iterated, potentially causing memory safety issues rdar://127694319 Reviewed by Andres Gonzalez. Avoid this using std::exchange to put the HashMap on the stack before iterating over it. Anything subsequently added to m_unresolvedPendingAppends will be processed in the next go-around of resolveAppends(). This patch also fixes several nullptr crashes found by ASAN in various tests. * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::anchorElementForNode): * Source/WebCore/accessibility/AccessibilityObject.h: * Source/WebCore/accessibility/cocoa/AccessibilityObjectCocoa.mm: (WebCore::AccessibilityObject::contentForRange const): * Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm: (WebCore::attributedStringCreate): * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp: (WebCore::AXIsolatedTree::resolveAppends): * Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm: (WebCore::attributedStringSetHeadingLevel): (WebCore::attributedStringSetBlockquoteLevel): (WebCore::attributedStringSetExpandedText): (WebCore::shouldHaveAnySpellCheckAttribute): (WebCore::attributedStringCreate): * Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.h: Originally-landed-as: 272448.996@
[webkit-changes] [WebKit/WebKit] b61776: AX: When display:table is applied to tbody element...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: b61776dc58608649c3f05a51c5c75338415a2ed6 https://github.com/WebKit/WebKit/commit/b61776dc58608649c3f05a51c5c75338415a2ed6 Author: Tyler Wilcock Date: 2024-07-31 (Wed, 31 Jul 2024) Changed paths: A LayoutTests/accessibility/tbody-with-display-table-expected.txt A LayoutTests/accessibility/tbody-with-display-table.html A LayoutTests/platform/glib/accessibility/tbody-with-display-table-expected.txt M Source/WebCore/accessibility/AXObjectCache.cpp M Source/WebCore/accessibility/AccessibilityTableCell.cpp Log Message: --- AX: When display:table is applied to tbody elements, VoiceOver cannot find any content in the table https://bugs.webkit.org/show_bug.cgi?id=277354 rdar://132820485 Reviewed by Chris Fleizach. This is invalid markup and generally a really strange thing to do, but it renders fine visually, and other browsers expose a valid accessibility tree, so we should too. This patch fixes this issue by avoiding the creation of an AccessibilityTable for a RenderTable if the associated element is an HTMLTableSectionElement, instead allowing the section element (e.g. tbody) to properly be considered a rowgroup. * LayoutTests/accessibility/tbody-with-display-table-expected.txt: Added. * LayoutTests/accessibility/tbody-with-display-table.html: Added. * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::createObjectFromRenderer): * Source/WebCore/accessibility/AccessibilityTableCell.cpp: (WebCore::AccessibilityTableCell::computeAccessibilityIsIgnored const): (WebCore::AccessibilityTableCell::parentTable const): Canonical link: https://commits.webkit.org/281648@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 82f243: AX: role="menu" elements should allow child groups...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 82f243e3dea5201fc1805e6df23120f46ae9471f https://github.com/WebKit/WebKit/commit/82f243e3dea5201fc1805e6df23120f46ae9471f Author: Tyler Wilcock Date: 2024-07-28 (Sun, 28 Jul 2024) Changed paths: A LayoutTests/accessibility/menu-with-menuitem-grandchildren-expected.txt A LayoutTests/accessibility/menu-with-menuitem-grandchildren.html A LayoutTests/platform/glib/accessibility/menu-with-menuitem-grandchildren-expected.txt M LayoutTests/platform/ios/TestExpectations A LayoutTests/platform/ios/accessibility/menu-with-menuitem-grandchildren-expected.txt M Source/WebCore/accessibility/AccessibilityRenderObject.cpp Log Message: --- AX: role="menu" elements should allow child groups with menuitem children https://bugs.webkit.org/show_bug.cgi?id=276658 rdar://131838275 Reviewed by Chris Fleizach. Per the ARIA spec: https://w3c.github.io/aria/#menu Menus should allow child groups with menuitem children. This patch fixes that. * LayoutTests/accessibility/menu-with-menuitem-grandchildren-expected.txt: Added. * LayoutTests/accessibility/menu-with-menuitem-grandchildren.html: Added. * LayoutTests/platform/ios/TestExpectations: Enable new test. * LayoutTests/platform/ios/accessibility/menu-with-menuitem-grandchildren-expected.txt: Added. * Source/WebCore/accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::updateRoleAfterChildrenCreation): Canonical link: https://commits.webkit.org/281481@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 0af03d: AX: Web content can become inaccessible when revea...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 0af03dfdd5d39c45999aba3e13cd86a2f2f69051 https://github.com/WebKit/WebKit/commit/0af03dfdd5d39c45999aba3e13cd86a2f2f69051 Author: Tyler Wilcock Date: 2024-07-26 (Fri, 26 Jul 2024) Changed paths: A LayoutTests/accessibility/animated-dropdown-expected.txt A LayoutTests/accessibility/animated-dropdown.html A LayoutTests/accessibility/resources/jquery-3.6.1.js M LayoutTests/platform/glib/TestExpectations M LayoutTests/platform/ios/TestExpectations A LayoutTests/platform/ios/accessibility/animated-dropdown-expected.txt M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp Log Message: --- AX: Web content can become inaccessible when revealed by an animating dropdown component https://bugs.webkit.org/show_bug.cgi?id=277160 rdar://132590239 Reviewed by Chris Fleizach. This bug happened due to this sequence: 1. A button is pressed, animating the dropdown to become open (changing display:none to display:block and quickly increasing its height from zero to full-height in rapid "ticks"). 2. The container of the dropdown and button dynamically becomes ignored, as it no longer has only inline children (an esoteric condition in `AccessibilityRenderObjet::computeAccessibilityIsIgnored`: https://github.com/WebKit/WebKit/blob/e27ca2b56be9822117da0ea79062e38e8598cd23/Source/WebCore/accessibility/AccessibilityRenderObject.cpp#L1307) 3. This means the effective parent of the button and dropdown has changed (they have a new unignored parent). 4. In AXIsolatedTree::updateChildren, we prevent deletion of reparented objects via m_protectedFromDeletionIDs. 5. However, the bug is that we clear this list any time we `AXIsolatedTree::queueRemovalsLocked`, rather than once every tree update cycle (which is essentially by `AXIsolatedTree::queueAppendsAndRemovals`). 6. Because we fail to protect the button from deletion, it is removed from `m_nodeMap` during `AXIsolatedTree::removeSubtreeFromNodeMap` in the middle of `AXIsolatedTree::updateChildren`. 7. In `AXIsolatedTree::collectNodeChangesForSubtree`, we properly detect that the effective parent for the button has changed, and queue an entry for it in `AXIsolatedTree::m_needsParentUpdate`. 8. When we process that list in the final `AXIsolatedTree::queueAppendsAndRemovals`, we queue an entry to `m_pendingParentUpdates` that sets the new parent of the button to the invalid `AXID()`, because we try to get the new parent of the object from the nodemap, but it was deleted from the nodemap in step 6. 9. The object becomes completely detached from the accessibility tree (having a parent ID of 0), breaking VoiceOver navigation almost entirely. Fix this by only clearing `m_protectedFromDeletionIDs` once every tree update cycle (i.e. in `AXIsolatedTree::queueAppendsAndRemovals`). This scenario can be triggered by jQuery's slideToggle method (as discovered on a real webpage). * LayoutTests/accessibility/animated-dropdown-expected.txt: Added. * LayoutTests/accessibility/animated-dropdown.html: Added. * LayoutTests/accessibility/resources/jquery-3.6.1.js: Added. * LayoutTests/platform/glib/TestExpectations: Disable new test. * LayoutTests/platform/ios/TestExpectations: Enable new test. * LayoutTests/platform/ios/accessibility/animated-dropdown-expected.txt: Added. * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp: (WebCore::AXIsolatedTree::queueRemovalsLocked): (WebCore::AXIsolatedTree::queueAppendsAndRemovals): Canonical link: https://commits.webkit.org/281440@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] d75cb5: AX: Adopt text-related BrowserEngineKit APIs
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d75cb52708fcda86e090e6eef7141cb21df83bd7 https://github.com/WebKit/WebKit/commit/d75cb52708fcda86e090e6eef7141cb21df83bd7 Author: Tyler Wilcock Date: 2024-07-19 (Fri, 19 Jul 2024) Changed paths: M Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm Log Message: --- AX: Adopt text-related BrowserEngineKit APIs https://bugs.webkit.org/show_bug.cgi?id=276789 rdar://132025063 Reviewed by Chris Fleizach. * Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper browserAccessibilityValueInRange:]): (-[WebAccessibilityObjectWrapper browserAccessibilityAttributedValueInRange:]): (-[WebAccessibilityObjectWrapper browserAccessibilitySelectedTextRange]): (-[WebAccessibilityObjectWrapper _accessibilitySelectedTextRange]): (-[WebAccessibilityObjectWrapper browserAccessibilitySetSelectedTextRange:]): (-[WebAccessibilityObjectWrapper _accessibilitySetSelectedTextRange:]): (-[WebAccessibilityObjectWrapper browserAccessibilityInsertTextAtCursor:]): (-[WebAccessibilityObjectWrapper browserAccessibilityDeleteTextAtCursor:]): Canonical link: https://commits.webkit.org/281137@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 4b84c3: AX: WebCore::endOfLine can return the same positio...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 4b84c3ea8c264bb4451e08e0060d664212097c3b https://github.com/WebKit/WebKit/commit/4b84c3ea8c264bb4451e08e0060d664212097c3b Author: Tyler Wilcock Date: 2024-07-18 (Thu, 18 Jul 2024) Changed paths: A LayoutTests/accessibility/mixed-contenteditable-double-br-visible-character-range-hang-expected.txt A LayoutTests/accessibility/mixed-contenteditable-double-br-visible-character-range-hang.html A LayoutTests/accessibility/mixed-contenteditable-visible-character-range-hang-expected.txt A LayoutTests/accessibility/mixed-contenteditable-visible-character-range-hang.html M LayoutTests/platform/glib/TestExpectations M LayoutTests/platform/ios/TestExpectations A LayoutTests/platform/ios/accessibility/mixed-contenteditable-double-br-visible-character-range-hang-expected.txt A LayoutTests/platform/ios/accessibility/mixed-contenteditable-visible-character-range-hang-expected.txt M LayoutTests/platform/mac-wk1/TestExpectations M Source/WebCore/accessibility/AccessibilityObject.cpp Log Message: --- AX: WebCore::endOfLine can return the same position it started with, causing an infinite loop when iterating over `AccessibilityObject::nextLineEndPosition`s https://bugs.webkit.org/show_bug.cgi?id=276656 rdar://131837344 Reviewed by Andres Gonzalez. In `WebCore::endOfLine(const VisiblePosition& input)`, the input position is taken, and an `endPositionForLine` is computed. It then checks to ensure that `inSameLine(input, computedEnd)`, and if not, it walks `previous()` one position from `input` and gets the `endPositionForLine` of that position. This all makes sense on the surface. `endOfLine`s job is to find the end position of the line `input` belongs to. The problem is that `inSameLine` does not arguably work intuitively — it returns false if position A is editable, while position B is not, even if they are rendered on the same line. This mixed editability is present in markup on Google Docs documents: Line of text There is a single space character before the br element, and if that position is compared with any earlier one, `inSameLine` will return false. I did try passing a flag through to `isSameLine` that ignored this editability requirement, but there are other ways to trigger this behavior too, so the bug persisted. Instead, I've made nextLineEndPosition resilient to this issue by looping until we have moved off the start position. Two testcases added — these hang indefinitely without the changes in this commit. * LayoutTests/accessibility/mixed-contenteditable-double-br-visible-character-range-hang-expected.txt: Added. * LayoutTests/accessibility/mixed-contenteditable-double-br-visible-character-range-hang.html: Added. * LayoutTests/accessibility/mixed-contenteditable-visible-character-range-hang-expected.txt: Added. * LayoutTests/accessibility/mixed-contenteditable-visible-character-range-hang.html: Added. * LayoutTests/platform/glib/TestExpectations: Disable new tests. * LayoutTests/platform/ios/TestExpectations: Enable new tests. * LayoutTests/platform/ios/accessibility/mixed-contenteditable-double-br-visible-character-range-hang-expected.txt: Added. * LayoutTests/platform/ios/accessibility/mixed-contenteditable-visible-character-range-hang-expected.txt: Added. * LayoutTests/platform/mac-wk1/TestExpectations: * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::nextLineEndPosition const): Canonical link: https://commits.webkit.org/281089@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] c22363: AXObjectCache::characterOffsetFromVisiblePosition ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c223637aad47dceef3291a95636ceb9fc10ee1ab https://github.com/WebKit/WebKit/commit/c223637aad47dceef3291a95636ceb9fc10ee1ab Author: Tyler Wilcock Date: 2024-07-10 (Wed, 10 Jul 2024) Changed paths: A LayoutTests/accessibility/mac/role-img-selection-hang-expected.txt A LayoutTests/accessibility/mac/role-img-selection-hang.html M Source/WebCore/accessibility/AXObjectCache.cpp Log Message: --- AXObjectCache::characterOffsetFromVisiblePosition can iterate infinitely when moving through role="img" container https://bugs.webkit.org/show_bug.cgi?id=276464 rdar://problem/131502510 Reviewed by Ryosuke Niwa. Given this markup: X Y When we create a VisiblePosition from this Position: (Position (anchor node: #text 0x159003ec0 length=1 "Y") (offset: 0) (anchor type: offset in anchor)) We get its `canonicalPosition` in the VisiblePosition constructor, which computes: (Position (anchor node: DIV 0x159003c40) (offset: 0) (anchor type: before anchor)) This starts iteration for `nextVisuallyDistinctCandidate` back at the beginning of the div, repeating until we get back to the "Y" position, in turn computing the before-anchor-div position, repeating forever. This happens because the div is role="img", which was special cased to be `Element::canContainRangeEndPoint()` in: https://bugs.webkit.org/attachment.cgi?id=229259&action=prettypatch (Find on Page can get stuck in a loop when the search string occurs in an input in a fieldset). Making it `canContainRangeEndPoint` also makes it `editingIgnoresContent == true`, in turn making it `Position::isCandidate() == true`. I tried to solve the core editing bug in https://github.com/WebKit/WebKit/pull/30614, but my approach (removing this special role="img" logic in Element::canContainRangeEndPoint()) caused other undesirable effects (more details in https://github.com/WebKit/WebKit/pull/30614#issuecomment-2221064954), so some other fix is needed (tracked by https://bugs.webkit.org/show_bug.cgi?id=276460). For now, this commit works around this foundational bug by changing `AXObjectCache::characterOffsetFromVisiblePosition` to detect we've moved back to the start position, and breaking to prevent an infinite loop. * LayoutTests/accessibility/mac/role-img-selection-hang-expected.txt: Added. * LayoutTests/accessibility/mac/role-img-selection-hang.html: Added. * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::characterOffsetFromVisiblePosition): Canonical link: https://commits.webkit.org/280847@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 132e20: AX Web Inspector Panel: Switch form controls repor...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 132e20aa121367262caab344e193535bef849955 https://github.com/WebKit/WebKit/commit/132e20aa121367262caab344e193535bef849955 Author: Tyler Wilcock Date: 2024-06-06 (Thu, 06 Jun 2024) Changed paths: M LayoutTests/inspector/dom/getAccessibilityPropertiesForNode-expected.txt M LayoutTests/inspector/dom/getAccessibilityPropertiesForNode.html M Source/JavaScriptCore/inspector/protocol/DOM.json M Source/WebCore/inspector/agents/InspectorDOMAgent.cpp M Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js M Source/WebInspectorUI/UserInterface/Models/DOMNode.js M Source/WebInspectorUI/UserInterface/Views/DOMNodeDetailsSidebarPanel.js Log Message: --- AX Web Inspector Panel: Switch form controls report "Checked: true/false" rather than something like "State: on/off" https://bugs.webkit.org/show_bug.cgi?id=274846 rdar://128952449 Reviewed by Devin Rousso. Switches are like checkboxes without a mixed state, and are exposed in the web platform in this way — HTML switches are created via `input type="checkbox"` plus the `switch` attribute, and are "enabled" via the `checked` attribute. And ARIA switches (`role="switch"`) use `aria-checked`. A side effect of this is that when we added support for switch controls, we forgot to update Web Inspector to handle the nuanced difference between these types of controls, and thus switch controls report a "Checked: true/false" state rather than "State: on/off", which is more appropriate terminology. This patch addresses this issue. * LayoutTests/inspector/dom/getAccessibilityPropertiesForNode-expected.txt: * LayoutTests/inspector/dom/getAccessibilityPropertiesForNode.html: * Source/JavaScriptCore/inspector/protocol/DOM.json: * Source/WebCore/inspector/agents/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties): * Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js: * Source/WebInspectorUI/UserInterface/Models/DOMNode.js: (WI.DOMNode.prototype.accessibilityProperties.accessibilityPropertiesCallback): (WI.DOMNode.prototype.accessibilityProperties): * Source/WebInspectorUI/UserInterface/Views/DOMNodeDetailsSidebarPanel.js: (WI.DOMNodeDetailsSidebarPanel.prototype.initialLayout): (WI.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility.accessibilityPropertiesCallback): (WI.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility): Canonical link: https://commits.webkit.org/279772@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] a3d84e: AX: WebPageProxy::bindRemoteAccessibilityFrames sy...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: a3d84e2259624c201bc1008ef60ae743748ace84 https://github.com/WebKit/WebKit/commit/a3d84e2259624c201bc1008ef60ae743748ace84 Author: Tyler Wilcock Date: 2024-05-08 (Wed, 08 May 2024) Changed paths: M Source/WebCore/accessibility/AccessibilityScrollView.cpp M Source/WebCore/page/RemoteFrame.cpp M Source/WebCore/page/RemoteFrame.h M Source/WebCore/page/RemoteFrameClient.h M Source/WebKit/UIProcess/WebPageProxy.cpp M Source/WebKit/UIProcess/WebPageProxy.h M Source/WebKit/UIProcess/WebPageProxy.messages.in M Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.cpp M Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.h M Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm M Source/WebKit/WebProcess/WebPage/WebPage.cpp M Source/WebKit/WebProcess/WebPage/WebPage.h M Source/WebKit/WebProcess/WebPage/WebPage.messages.in Log Message: --- AX: WebPageProxy::bindRemoteAccessibilityFrames synchronously returns a std::span, which is not safe https://bugs.webkit.org/show_bug.cgi?id=273720 rdar://problem/125160477 Reviewed by Chris Fleizach. Return a Vector instead, which is safe. This patch also adds a missing completion handler to WebRemoteFrameClient::bindRemoteAccessibilityFrames. Presumably without this completionHandler call, the sender would wait forever for a response that never comes. * Source/WebCore/accessibility/AccessibilityScrollView.cpp: (WebCore::AccessibilityScrollView::addRemoteFrameChild): * Source/WebCore/page/RemoteFrame.cpp: (WebCore::RemoteFrame::bindRemoteAccessibilityFrames): * Source/WebCore/page/RemoteFrame.h: * Source/WebCore/page/RemoteFrameClient.h: * Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::bindRemoteAccessibilityFrames): * Source/WebKit/UIProcess/WebPageProxy.h: * Source/WebKit/UIProcess/WebPageProxy.messages.in: * Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.cpp: (WebKit::WebRemoteFrameClient::bindRemoteAccessibilityFrames): * Source/WebKit/WebProcess/WebCoreSupport/WebRemoteFrameClient.h: * Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm: (WebKit::WebPage::bindRemoteAccessibilityFrames): * Source/WebKit/WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::bindRemoteAccessibilityFrames): * Source/WebKit/WebProcess/WebPage/WebPage.h: * Source/WebKit/WebProcess/WebPage/WebPage.messages.in: Canonical link: https://commits.webkit.org/278507@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 189e31: AX: AccessibilityRole is 3 bytes too large, wastin...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 189e31a68cec1731ca0e74da669bc3b17011a9a1 https://github.com/WebKit/WebKit/commit/189e31a68cec1731ca0e74da669bc3b17011a9a1 Author: Tyler Wilcock Date: 2024-05-07 (Tue, 07 May 2024) Changed paths: M Source/WebCore/accessibility/AXCoreObject.h M Source/WebCore/accessibility/atspi/AccessibilityAtspi.h Log Message: --- AX: AccessibilityRole is 3 bytes too large, wasting memory https://bugs.webkit.org/show_bug.cgi?id=273786 rdar://problem/127616693 Reviewed by Chris Fleizach. AccessibilityRole is stored as a member variable on AccessibilityObject (m_role) and AccessibilityNodeObject (m_ariaRole), and the average web page has lots of these objects. This patch resizes it from 4 bytes (the default enum class type is int) down to 1 byte. This saves ~3.4mb on http://html.spec.whatwg.org (567769 objects * 6 bytes saved each). * Source/WebCore/accessibility/AXCoreObject.h: * Source/WebCore/accessibility/atspi/AccessibilityAtspi.h: Canonical link: https://commits.webkit.org/278487@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 976416: AX: AccessibilityObject::m_lastKnownIsIgnoredValue...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 976416306c9f8fb8b5811e69abffef8a1b0f35c4 https://github.com/WebKit/WebKit/commit/976416306c9f8fb8b5811e69abffef8a1b0f35c4 Author: Tyler Wilcock Date: 2024-05-05 (Sun, 05 May 2024) Changed paths: M Source/WebCore/accessibility/AXCoreObject.h Log Message: --- AX: AccessibilityObject::m_lastKnownIsIgnoredValue is 3 bytes larger than it needs to be, wasting memory https://bugs.webkit.org/show_bug.cgi?id=273743 rdar://problem/127560808 Reviewed by Chris Fleizach. AccessibilityObjectInclusion only has three variants, so it can be sized as a uint8_t. Right now it's sized as the default type for enum class, int, which is 4 bytes. This saves 1.7mb on http://html.spec.whatwg.org when using VoiceOver (567769 AccessibilityObjects * 3 bytes saved each). * Source/WebCore/accessibility/AXCoreObject.h: Canonical link: https://commits.webkit.org/278391@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] b675dc: AX: Map AccessibilityRole::TabList to UIAccessibil...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: b675dc6863ca418dafb534d00cc5b39c505210b9 https://github.com/WebKit/WebKit/commit/b675dc6863ca418dafb534d00cc5b39c505210b9 Author: Tyler Wilcock Date: 2024-05-04 (Sat, 04 May 2024) Changed paths: A LayoutTests/accessibility/ios-simulator/menu-item-trait-expected.txt A LayoutTests/accessibility/ios-simulator/menu-item-trait.html A LayoutTests/accessibility/ios-simulator/tab-bar-trait-expected.txt A LayoutTests/accessibility/ios-simulator/tab-bar-trait.html M Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm 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.mm Log Message: --- AX: Map AccessibilityRole::TabList to UIAccessibilityTabBarTrait equivalent, remove usage of _axTabButtonTrait https://bugs.webkit.org/show_bug.cgi?id=273707 rdar://problem/127510709 Reviewed by Chris Fleizach. _axTabButtonTrait is a private trait, so we shouldn't use it. It's possible to achieve the same functionality by mapping the role="tablist" container to UIAccessibilityTabBarTrait (a public trait), so this patch does that. * LayoutTests/accessibility/ios-simulator/menu-item-trait-expected.txt: Added. * LayoutTests/accessibility/ios-simulator/menu-item-trait.html: Added. * LayoutTests/accessibility/ios-simulator/tab-bar-trait-expected.txt: Added. * LayoutTests/accessibility/ios-simulator/tab-bar-trait.html: Added. * Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper accessibilityTraits]): * Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::hasTabBarTrait): (WTR::AccessibilityUIElement::hasMenuItemTrait): * Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h: * Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl: * Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm: (WTR::AccessibilityUIElement::hasTabBarTrait): (WTR::AccessibilityUIElement::hasMenuItemTrait): Canonical link: https://commits.webkit.org/278376@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 06293e: AX: Moving testing only attributes in WebAccessibi...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 06293e14f6192bc94fb109fa00fbc16a22e4f024 https://github.com/WebKit/WebKit/commit/06293e14f6192bc94fb109fa00fbc16a22e4f024 Author: Tyler Wilcock Date: 2024-05-04 (Sat, 04 May 2024) Changed paths: M Source/WebCore/accessibility/AXObjectCache.cpp M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm Log Message: --- AX: Moving testing only attributes in WebAccessibilityObjectWrapperMac.mm to attributeValueForTesting https://bugs.webkit.org/show_bug.cgi?id=273711 rdar://problem/127512021 Reviewed by Chris Fleizach. This is a tiny performance improvement and code cleanup. This patch also includes another performance improvement in AXObjectCache::handleTextChanged. Prior to this patch, it used to fire notification AXTextUnderElementChanged when text changed underneath an AccessibilityRole::ListItem, in turn causing expensive isolated tree property updates for the list item. This is completely unnecessary, as AccessibilityRole::ListItem does not return true for dependsOnTextUnderElement(). * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::handleTextChanged): * Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]): (attributeValueForTesting): Canonical link: https://commits.webkit.org/278375@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] dcf26e: AX: Remove unused traits from WebAccessibilityObje...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: dcf26e870112c64f47227ea3b147779e3ed4da69 https://github.com/WebKit/WebKit/commit/dcf26e870112c64f47227ea3b147779e3ed4da69 Author: Tyler Wilcock Date: 2024-05-03 (Fri, 03 May 2024) Changed paths: M LayoutTests/accessibility/ios-simulator/fieldset-traits-expected.txt M LayoutTests/accessibility/ios-simulator/fieldset-traits.html M LayoutTests/accessibility/ios-simulator/landmark-type-expected.txt M LayoutTests/accessibility/ios-simulator/landmark-type.html M Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm M Tools/DumpRenderTree/AccessibilityUIElement.cpp M Tools/DumpRenderTree/AccessibilityUIElement.h M Tools/DumpRenderTree/ios/AccessibilityUIElementIOS.mm 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.mm Log Message: --- AX: Remove unused traits from WebAccessibilityObjectWrapperIOS.mm https://bugs.webkit.org/show_bug.cgi?id=273549 rdar://problem/127362143 Reviewed by Chris Fleizach. Remove several traits that are not used by any accessibility framework. All but `_axContainedByFieldsetTrait` were added in commit: https://github.com/WebKit/WebKit/commit/4290c93aecfb2f3cea540f159f24ea589e138dfb `_axContainedByFieldsetTrait` was added in: https://github.com/WebKit/WebKit/commit/9a8c226e01ae1ac9bc5f971ab13900275c9b21de * LayoutTests/accessibility/ios-simulator/fieldset-traits-expected.txt: * LayoutTests/accessibility/ios-simulator/fieldset-traits.html: * Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper _accessibilityTraitsFromAncestors]): (-[WebAccessibilityObjectWrapper _accessibilityIsLandmarkRole:]): Deleted. * Tools/DumpRenderTree/AccessibilityUIElement.cpp: (AccessibilityUIElement::getJSClass): (hasContainedByFieldsetTraitCallback): Deleted. * Tools/DumpRenderTree/AccessibilityUIElement.h: * Tools/DumpRenderTree/ios/AccessibilityUIElementIOS.mm: (AccessibilityUIElement::hasContainedByFieldsetTrait): Deleted. * Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::scrollPageRight): (WTR::AccessibilityUIElement::hasContainedByFieldsetTrait): Deleted. * Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h: * Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl: * Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm: (WTR::AccessibilityUIElement::hasContainedByFieldsetTrait): Deleted. Canonical link: https://commits.webkit.org/278339@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 65862d: AX: aria-describedby text can become stale after t...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 65862d818c5d5e4878f83a7f0ece5241ef658c21 https://github.com/WebKit/WebKit/commit/65862d818c5d5e4878f83a7f0ece5241ef658c21 Author: Tyler Wilcock Date: 2024-05-03 (Fri, 03 May 2024) Changed paths: A LayoutTests/accessibility/dynamic-aria-describedby-subtree-expected.txt A LayoutTests/accessibility/dynamic-aria-describedby-subtree.html M LayoutTests/platform/glib/TestExpectations M LayoutTests/platform/ios/TestExpectations M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp Log Message: --- AX: aria-describedby text can become stale after the targeted element changes its subtree https://bugs.webkit.org/show_bug.cgi?id=273584 rdar://problem/127390465 Reviewed by Andres Gonzalez. When an object targeted by aria-describedby changes its subtree, we need to re-compute AXPropertyName::{AccessibilityText, ExtendedDescription} for the described object. We already did this for aria-labelledby relationships, so this patch hooks into the same method to check for describedby relationships too. * LayoutTests/accessibility/dynamic-aria-describedby-subtree-expected.txt: Added. * LayoutTests/accessibility/dynamic-aria-describedby-subtree.html: Added. * LayoutTests/platform/glib/TestExpectations: Skip new test. * LayoutTests/platform/ios/TestExpectations: Enable new test. * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp: (WebCore::AXIsolatedTree::updateDependentProperties): Canonical link: https://commits.webkit.org/278318@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 3de451: AX: Table accessibility text does not update when ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 3de4518fe489de83466fed1f648eb8bc6c41deb6 https://github.com/WebKit/WebKit/commit/3de4518fe489de83466fed1f648eb8bc6c41deb6 Author: Tyler Wilcock Date: 2024-04-30 (Tue, 30 Apr 2024) Changed paths: A LayoutTests/accessibility/dynamic-table-caption-expected.txt A LayoutTests/accessibility/dynamic-table-caption.html A LayoutTests/platform/glib/accessibility/dynamic-table-caption-expected.txt M Source/WebCore/accessibility/AXObjectCache.cpp Log Message: --- AX: Table accessibility text does not update when its caption dynamically changes it descendant text or is removed https://bugs.webkit.org/show_bug.cgi?id=273456 rdar://127263464 Reviewed by Chris Fleizach. When the descendants of caption elements change, we need to update the accessibility text of the associated table, as tables use the caption as a type of label. * LayoutTests/accessibility/dynamic-table-caption-expected.txt: Added. * LayoutTests/accessibility/dynamic-table-caption.html: Added. * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::handleChildrenChanged): Canonical link: https://commits.webkit.org/278164@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 42fada: AX: Off-main-thread text markers don't include tex...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 42fadaaad75df0cc6d52416d2cc4403ed38c643b https://github.com/WebKit/WebKit/commit/42fadaaad75df0cc6d52416d2cc4403ed38c643b Author: Tyler Wilcock Date: 2024-04-30 (Tue, 30 Apr 2024) Changed paths: M LayoutTests/accessibility/ax-thread-text-apis/display-contents-end-text-marker.html M LayoutTests/accessibility/mac/malformed-table-expected.txt M LayoutTests/accessibility/mac/malformed-table.html M Source/WebCore/accessibility/AXTextMarker.cpp M Source/WebCore/accessibility/AccessibilityObject.cpp M Source/WebCore/accessibility/AccessibilityRenderObject.cpp M Source/WebCore/accessibility/AccessibilityTable.cpp Log Message: --- AX: Off-main-thread text markers don't include text inside table caption elements https://bugs.webkit.org/show_bug.cgi?id=273442 rdar://problem/127258583 Reviewed by Chris Fleizach. Prior to this patch, table caption text was skipped by the off-main-thread text marker implementation. This happened because in the text marker appendChildren function (downstream of findObjectWithRuns), we only considered a table's rows as candidates for finding text runs, not any caption. Fixing this exposed an oddity in AccessibiltyTable::addChildren(). Despite caption elements needing to be the first child of table elements (per spec) in the DOM, AccessibiltyTable::addChildren always added them as the last child in the AX tree. This matters for the off-main-thread text marker implementation because we traverse the AX tree in the order it's built to get the next object with text runs. With this patch, we now insert the caption element into the AX tree when we find it as we traverse, same as every other object (it will typically be first, minus any author error). This removes one failure condition from ax-thread-text-apis/display-contents-end-text-marker.html. * LayoutTests/accessibility/ax-thread-text-apis/display-contents-end-text-marker.html: Remove one reason this test fails. * LayoutTests/accessibility/mac/malformed-table-expected.txt: * LayoutTests/accessibility/mac/malformed-table.html: Re-write this test to our modern style. Add +1 to row index to account for captions now being in the "right" place in the AX tree * Source/WebCore/accessibility/AXTextMarker.cpp: (WebCore::appendChildren): * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::Accessibility::appendChildrenToArray): * Source/WebCore/accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const): * Source/WebCore/accessibility/AccessibilityTable.cpp: (WebCore::AccessibilityTable::addChildren): Canonical link: https://commits.webkit.org/278163@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] e808f2: AX: dfn element should map to AccessibilityRole::T...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: e808f25e438f9a1fd2ac9510797c66cb70730c32 https://github.com/WebKit/WebKit/commit/e808f25e438f9a1fd2ac9510797c66cb70730c32 Author: Tyler Wilcock Date: 2024-04-27 (Sat, 27 Apr 2024) Changed paths: M LayoutTests/accessibility/display-contents/element-roles-expected.txt M LayoutTests/accessibility/roles-computedRoleString.html M LayoutTests/imported/w3c/web-platform-tests/html-aam/roles-expected.txt M LayoutTests/platform/glib/accessibility/display-contents/element-roles-expected.txt M LayoutTests/platform/ios/accessibility/display-contents/element-roles-expected.txt M LayoutTests/platform/ios/imported/w3c/web-platform-tests/html-aam/roles-expected.txt M LayoutTests/platform/mac-wk1/accessibility/aria-visible-element-roles-expected.txt M LayoutTests/platform/mac-wk1/accessibility/roles-exposed-expected.txt M LayoutTests/platform/mac-wk2/accessibility/aria-visible-element-roles-expected.txt M LayoutTests/platform/mac-wk2/accessibility/roles-exposed-expected.txt M LayoutTests/platform/mac/accessibility/roles-computedRoleString-expected.txt M Source/WebCore/accessibility/AccessibilityNodeObject.cpp Log Message: --- AX: dfn element should map to AccessibilityRole::Term, as it indicates a term being defined, not a definition https://bugs.webkit.org/show_bug.cgi?id=273357 rdar://problem/127166128 Reviewed by Chris Fleizach. Confusingly, the `dfn` element represents a term being defined, making it equivalent to the "term" ARIA role rather than the "definition" ARIA role. The "definition" ARIA role has no HTML equivalent. https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-dfn-element https://w3c.github.io/aria/#term and https://w3c.github.io/aria/#definition This fixes one WPT subtest in html-aam/roles.html. * LayoutTests/platform/ios/imported/w3c/web-platform-tests/html-aam/roles-expected.txt: * LayoutTests/platform/mac-wk1/accessibility/aria-visible-element-roles-expected.txt: * LayoutTests/platform/mac-wk1/accessibility/roles-exposed-expected.txt: * LayoutTests/platform/glib/accessibility/display-contents/element-roles-expected.txt: * LayoutTests/platform/ios/accessibility/display-contents/element-roles-expected.txt: * LayoutTests/accessibility/display-contents/element-roles-expected.txt: * LayoutTests/accessibility/roles-computedRoleString.html: * LayoutTests/imported/w3c/web-platform-tests/html-aam/roles-expected.txt: * LayoutTests/platform/mac-wk2/accessibility/aria-visible-element-roles-expected.txt: * LayoutTests/platform/mac-wk2/accessibility/roles-exposed-expected.txt: * LayoutTests/platform/mac/accessibility/roles-computedRoleString-expected.txt: * Source/WebCore/accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::determineAccessibilityRoleFromNode const): Canonical link: https://commits.webkit.org/278085@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 1dd6d9: AX: Implement off-main-thread support for AXTextMa...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 1dd6d95b8d0042314e0317594c2341ab5cac55b6 https://github.com/WebKit/WebKit/commit/1dd6d95b8d0042314e0317594c2341ab5cac55b6 Author: Tyler Wilcock Date: 2024-04-27 (Sat, 27 Apr 2024) Changed paths: A LayoutTests/accessibility/ax-thread-text-apis/text-marker-range-for-line-expected.txt A LayoutTests/accessibility/ax-thread-text-apis/text-marker-range-for-line.html A LayoutTests/accessibility/mac/text-marker-range-for-line-expected.txt A LayoutTests/accessibility/mac/text-marker-range-for-line.html M LayoutTests/platform/mac-wk1/TestExpectations M Source/WebCore/accessibility/AXTextMarker.cpp M Source/WebCore/accessibility/AXTextMarker.h M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.h M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm M Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp M Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h M Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl M Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm Log Message: --- AX: Implement off-main-thread support for AXTextMarkerRangeForLineAttribute https://bugs.webkit.org/show_bug.cgi?id=273248 rdar://problem/127052882 Reviewed by Chris Fleizach. No tests existed for this attribute, so this patch adds one, including the AccessibilityUIElement testing infrastructure to do so. This patch also refactors test-only parameterized attributes into a new parameterizedAttributeValueForTesting, as this patch benefited from adding a new one (AXTextMarkerRangeIsValid). * LayoutTests/accessibility-isolated-tree/TestExpectations: * LayoutTests/accessibility/ax-thread-text-apis/text-marker-range-for-line-expected.txt: Added. * LayoutTests/accessibility/ax-thread-text-apis/text-marker-range-for-line.html: Added. * LayoutTests/accessibility/mac/text-marker-range-for-line-expected.txt: Added. * LayoutTests/accessibility/mac/text-marker-range-for-line.html: Added. * Source/WebCore/accessibility/AXTextMarker.cpp: (WebCore::AXTextMarker::characterRangeForLine const): (WebCore::AXTextMarker::markerRangeForLine const): (WebCore::AXTextMarker::rangeForLine const): Deleted. * Source/WebCore/accessibility/AXTextMarker.h: * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp: (WebCore::AXIsolatedObject::doAXRangeForLine const): * Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.h: * Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (parameterizedAttributeValueForTesting): (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]): * Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::isTextMarkerRangeValid): (WTR::AccessibilityUIElement::textMarkerRangeForLine): * Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h: * Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl: * Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::textMarkerRangeForLine): (WTR::AccessibilityUIElement::isTextMarkerRangeValid): Canonical link: https://commits.webkit.org/278081@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] d7b2a9: AX: ARIA: remove aria-expanded from supported attr...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d7b2a9156ccb91d9decd8cdf047578428f4e16dd https://github.com/WebKit/WebKit/commit/d7b2a9156ccb91d9decd8cdf047578428f4e16dd Author: Tyler Wilcock Date: 2024-04-27 (Sat, 27 Apr 2024) Changed paths: M LayoutTests/platform/glib/accessibility/aria-expanded-supported-roles-expected.txt M LayoutTests/platform/mac/accessibility/aria-expanded-supported-roles-expected.txt M Source/WebCore/accessibility/AccessibilityNodeObject.cpp M Source/WebCore/accessibility/AccessibilityNodeObject.h M Source/WebCore/accessibility/AccessibilityObject.cpp Log Message: --- AX: ARIA: remove aria-expanded from supported attributes from role listbox https://bugs.webkit.org/show_bug.cgi?id=27 rdar://problem/127124652 Reviewed by Chris Fleizach. aria-expanded was added as a supported attribute for the listbox ARIA role when the notion of an expandable listbox was being explored. This is now unnecessary as combobox has become the canonical way to implement this pattern, and thus the ARIA spec is removing listbox's support for aria-expanded. https://github.com/w3c/aria/pull/1862 * Source/WebCore/accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::setNode): Deleted. Drive-by fix to delete this unused function. * Source/WebCore/accessibility/AccessibilityNodeObject.h: * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::supportsExpanded const): * LayoutTests/platform/mac/accessibility/aria-expanded-supported-roles-expected.txt: * LayoutTests/platform/glib/accessibility/aria-expanded-supported-roles-expected.txt: Canonical link: https://commits.webkit.org/278080@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 1a83a5: AX: The AX tree can be wrong if AccessibilityTable...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 1a83a57c9017d2ee5639862bbd64b8736fc44e79 https://github.com/WebKit/WebKit/commit/1a83a57c9017d2ee5639862bbd64b8736fc44e79 Author: Tyler Wilcock Date: 2024-04-26 (Fri, 26 Apr 2024) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/html-aam/table-roles-expected.txt M Source/WebCore/accessibility/AccessibilityTableCell.cpp Log Message: --- AX: The AX tree can be wrong if AccessibilityTableCell::determineAccessibilityRole() is called before parent table adds children https://bugs.webkit.org/show_bug.cgi?id=273345 rdar://problem/127138437 Reviewed by Chris Fleizach. AccessibilityTableCell::determineAccessibilityRole() calls rowIndexRange() and columnIndexRange(), which in turn call ensureIndexesUpToDate(). This causes the parentTable() to addChildren(), which causes the rows to addChildren(), then causing cells (including the one running determineAccessibilityRole() higher in the stack) to addChildren(). And because the cell may not have ever set its m_role (i.e. making it AccessibilityRole::Unknown), it can be erroneously ignored, causing the accessibility tree to be wrong. Fix this by using SetForScope to set a temporary cell role to tide us over until the real role has been set. Fixes one WPT subtest in html-aam/table-roles.html. * LayoutTests/imported/w3c/web-platform-tests/html-aam/table-roles-expected.txt: * Source/WebCore/accessibility/AccessibilityTableCell.cpp: (WebCore::AccessibilityTableCell::determineAccessibilityRole): (WebCore::AccessibilityTableCell::isColumnHeader const): (WebCore::AccessibilityTableCell::isRowHeader const): Improve some naming and use RefPtr. Canonical link: https://commits.webkit.org/278070@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 95e791: AX: WebKit should not trim non-breaking space char...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 95e791e34021f963c6c7dff0103d3b0eb924da2a https://github.com/WebKit/WebKit/commit/95e791e34021f963c6c7dff0103d3b0eb924da2a Author: Tyler Wilcock Date: 2024-04-25 (Thu, 25 Apr 2024) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_text_node-expected.txt M Source/WebCore/accessibility/AccessibilityNodeObject.cpp M Source/WebCore/accessibility/AccessibilityObject.cpp Log Message: --- AX: WebKit should not trim non-breaking space characters when computing accessibility text https://bugs.webkit.org/show_bug.cgi?id=273292 rdar://problem/127084721 Reviewed by Andres Gonzalez. In https://bugs.webkit.org/show_bug.cgi?id=271896, we replaced usage of deprecatedIsSpaceOrNewline with isUnicodeWhitespace. Importantly, isUnicodeWhitespace trims non-breaking space characters, which is not the correct thing to do when computing accessibility text (we should only trim ASCII whitespace). * LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_text_node-expected.txt: * Source/WebCore/accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::computeAccessibilityIsIgnored const): (WebCore::AccessibilityNodeObject::textAsLabelFor const): (WebCore::AccessibilityNodeObject::textUnderElement const): (WebCore::accessibleNameForNode): * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::stringForRange const): Canonical link: https://commits.webkit.org/278028@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 9f05a0: AX: SVG g elements should only be AccessibilityRol...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 9f05a02fc85a42c92ade9dcb132d636872e54826 https://github.com/WebKit/WebKit/commit/9f05a02fc85a42c92ade9dcb132d636872e54826 Author: Tyler Wilcock Date: 2024-04-25 (Thu, 25 Apr 2024) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/svg-aam/role/roles-generic-expected.txt M Source/WebCore/accessibility/AXObjectCache.cpp M Source/WebCore/accessibility/AXObjectCache.h M Source/WebCore/accessibility/AccessibilityNodeObject.cpp M Source/WebCore/accessibility/AccessibilityNodeObject.h M Source/WebCore/accessibility/AccessibilityObject.cpp M Source/WebCore/accessibility/AccessibilityObject.h M Source/WebCore/accessibility/AccessibilityRenderObject.cpp M Source/WebCore/accessibility/AccessibilitySVGElement.cpp M Source/WebCore/accessibility/AccessibilitySVGElement.h Log Message: --- AX: SVG g elements should only be AccessibilityRole::Group if they are focusable or have an accname https://bugs.webkit.org/show_bug.cgi?id=273152 rdar://problem/126946719 Reviewed by Chris Fleizach. Per spec, SVG g elements should only be AccessibilityRole::Group if they are focusable or have an accname. To support this, a new function has been added: hasAccNameAttribute. Several other roles performed similar, but slightly different checks (checking for different attributes). All are now consistently using hasAccNameAttribute. This patch also makes more conistent use of getAttributeTrimmed in a few places. This allows us to pass one more WPT. * LayoutTests/imported/w3c/web-platform-tests/svg-aam/role/roles-generic-expected.txt: * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::hasAccNameAttribute): * Source/WebCore/accessibility/AXObjectCache.h: * Source/WebCore/accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::determineAccessibilityRoleFromNode const): (WebCore::AccessibilityNodeObject::helpText const): (WebCore::AccessibilityNodeObject::hasAccNameAttribute const): (WebCore::AccessibilityNodeObject::hasAttributesRequiredForInclusion const): (WebCore::AccessibilityNodeObject::determineAriaRoleAttribute const): * Source/WebCore/accessibility/AccessibilityNodeObject.h: * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::invalidStatus const): (WebCore::AccessibilityObject::currentState const): (WebCore::AccessibilityObject::roleDescription const): (WebCore::AccessibilityObject::hasAttributesRequiredForInclusion const): Deleted. * Source/WebCore/accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::hasAttributesRequiredForInclusion const): (WebCore::AccessibilityObject::hasValidARIALabel const): Deleted. * Source/WebCore/accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::helpText const): (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const): * Source/WebCore/accessibility/AccessibilitySVGElement.cpp: (WebCore::AccessibilitySVGElement::hasTitleOrDescChild const): (WebCore::AccessibilitySVGElement::computeAccessibilityIsIgnored const): (WebCore::AccessibilitySVGElement::determineAriaRoleAttribute const): (WebCore::AccessibilitySVGElement::determineAccessibilityRole): * Source/WebCore/accessibility/AccessibilitySVGElement.h: Canonical link: https://commits.webkit.org/278024@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] ffd9b9: AX: Remove several unused word, sentence, and para...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: ffd9b9de8c8ae4f8b26b10e8ab966f64b3acc7ce https://github.com/WebKit/WebKit/commit/ffd9b9de8c8ae4f8b26b10e8ab966f64b3acc7ce Author: Tyler Wilcock Date: 2024-04-25 (Thu, 25 Apr 2024) Changed paths: M Source/WebCore/accessibility/AXCoreObject.h M Source/WebCore/accessibility/AccessibilityObject.cpp M Source/WebCore/accessibility/AccessibilityObject.h M Source/WebCore/accessibility/atspi/AccessibilityObjectTextAtspi.cpp M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h Log Message: --- AX: Remove several unused word, sentence, and paragraph position functions https://bugs.webkit.org/show_bug.cgi?id=273206 rdar://problem/127000726 Reviewed by Chris Fleizach. These functions were introduced before 2008: https://github.com/WebKit/WebKit/commit/8486f1fe2dbeef8ae18aa9198fa56eebd3543a01#diff-e8db8bb19347472225640770719ab1678c0a95100df8cf27d1beb3a536717dcc These functions stopped being called in these commits: https://github.com/WebKit/WebKit/commit/9510dea2c8571c731e1450a64ebb77a4b415dabc https://github.com/WebKit/WebKit/commit/8d97d59fcdf545e5cb25fbebb472e49b233256f2 https://github.com/WebKit/WebKit/commit/c67290aee69c9fd2fa709067c3f902e1d34ef912 (Commit titles are implement word / sentence / paragraph functionality using TextIterator) The attributes that were associated with these functions still exist and are used, but now have a different implementation, e.g.: if ([attribute isEqualToString:AXPreviousSentenceStartTextMarkerForTextMarkerAttribute]) return (id)[self textMarkerForTextMarker:textMarker atUnit:TextUnit::PreviousSentenceStart]; * Source/WebCore/accessibility/AXCoreObject.h: * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::positionOfLeftWord const): Deleted. (WebCore::AccessibilityObject::positionOfRightWord const): Deleted. (WebCore::AccessibilityObject::sentenceForPosition const): Deleted. (WebCore::AccessibilityObject::paragraphForPosition const): Deleted. (WebCore::AccessibilityObject::nextSentenceEndPosition const): Deleted. (WebCore::AccessibilityObject::previousSentenceStartPosition const): Deleted. (WebCore::AccessibilityObject::nextParagraphEndPosition const): Deleted. (WebCore::AccessibilityObject::previousParagraphStartPosition const): Deleted. * Source/WebCore/accessibility/AccessibilityObject.h: * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp: (WebCore::AXIsolatedObject::nextSentenceEndPosition const): Deleted. (WebCore::AXIsolatedObject::previousSentenceStartPosition const): Deleted. (WebCore::AXIsolatedObject::nextParagraphEndPosition const): Deleted. (WebCore::AXIsolatedObject::previousParagraphStartPosition const): Deleted. (WebCore::AXIsolatedObject::positionOfLeftWord const): Deleted. (WebCore::AXIsolatedObject::positionOfRightWord const): Deleted. (WebCore::AXIsolatedObject::sentenceForPosition const): Deleted. (WebCore::AXIsolatedObject::paragraphForPosition const): Deleted. (WebCore::AXIsolatedObject::visiblePositionRangeForRange const): Deleted. * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h: Canonical link: https://commits.webkit.org/278019@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] b9f354: AX: Import Accessibility Interop 2024 WPTs up to c...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: b9f354022e75aef42bd23ee4e8cb6df95287c891 https://github.com/WebKit/WebKit/commit/b9f354022e75aef42bd23ee4e8cb6df95287c891 Author: Tyler Wilcock Date: 2024-04-25 (Thu, 25 Apr 2024) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_name_from_content-expected.txt M LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_name_from_content.html M LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_text_node-expected.txt M LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_text_node.html M LayoutTests/imported/w3c/web-platform-tests/css/css-display/accessibility/display-contents-role-and-label-expected.txt M LayoutTests/imported/w3c/web-platform-tests/css/css-display/accessibility/display-contents-role-and-label.html M LayoutTests/imported/w3c/web-platform-tests/html-aam/roles.html M LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/grid-roles.html M LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/list-roles-expected.txt M LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/list-roles.html M LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/listbox-roles.html M LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/menu-roles-expected.txt M LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/menu-roles.html M LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/tab-roles-expected.txt M LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/tab-roles.html M LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/tree-roles.html M LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-display/accessibility/display-contents-role-and-label-expected.txt Log Message: --- AX: Import Accessibility Interop 2024 WPTs up to commit 4f17378 (April 25) https://bugs.webkit.org/show_bug.cgi?id=273252 rdar://problem/127058794 Unreviewed test gardening. Upstream commit of import: https://github.com/web-platform-tests/wpt/commit/4f1737843b28b72a0004133e6991a9741bca9b69 * LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_name_from_content-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_name_from_content.html: * LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_text_node-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_text_node.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-display/accessibility/display-contents-role-and-label-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-display/accessibility/display-contents-role-and-label.html: * LayoutTests/imported/w3c/web-platform-tests/html-aam/roles.html: * LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/grid-roles.html: * LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/list-roles-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/list-roles.html: * LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/listbox-roles.html: * LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/menu-roles-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/menu-roles.html: * LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/tab-roles-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/tab-roles.html: * LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/tree-roles.html: Canonical link: https://commits.webkit.org/278016@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 28b0ed: AX: Rebase Mac WK1 inspector/dom/getAccessibilityP...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 28b0eda5b023792c9c6a326a3a3963ac6fe0d11f https://github.com/WebKit/WebKit/commit/28b0eda5b023792c9c6a326a3a3963ac6fe0d11f Author: Tyler Wilcock Date: 2024-04-24 (Wed, 24 Apr 2024) Changed paths: M LayoutTests/inspector/dom/getAccessibilityPropertiesForNode-expected.txt Log Message: --- AX: Rebase Mac WK1 inspector/dom/getAccessibilityPropertiesForNode.html test after 277894@main https://bugs.webkit.org/show_bug.cgi?id=273202 rdar://problem/126996058 Unreviewed test gardening. This test just needs a rebase after 277894@main. * LayoutTests/inspector/dom/getAccessibilityPropertiesForNode-expected.txt: Canonical link: https://commits.webkit.org/277943@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 75e607: AX: Rebase Mac WK1 accessibility/aria-visible-elem...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 75e607b8464ad2acdd0e3f9846ffd5efe7c5ea60 https://github.com/WebKit/WebKit/commit/75e607b8464ad2acdd0e3f9846ffd5efe7c5ea60 Author: Tyler Wilcock Date: 2024-04-24 (Wed, 24 Apr 2024) Changed paths: M LayoutTests/platform/mac-wk1/accessibility/aria-visible-element-roles-expected.txt Log Message: --- AX: Rebase Mac WK1 accessibility/aria-visible-element-roles.html test after 277894@main https://bugs.webkit.org/show_bug.cgi?id=273192 rdar://problem/126988288 Unreviewed test gardening. This test just needs a rebase after 277894@main. * LayoutTests/platform/mac-wk1/accessibility/aria-visible-element-roles-expected.txt: Canonical link: https://commits.webkit.org/277930@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 95019f: AX: Remove AccessibilityRole::ApplicationGroup and...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 95019f166e2d4977a3d917d6814b9971acb54def https://github.com/WebKit/WebKit/commit/95019f166e2d4977a3d917d6814b9971acb54def Author: Tyler Wilcock Date: 2024-04-23 (Tue, 23 Apr 2024) Changed paths: M LayoutTests/accessibility/list-detection2-expected.txt M LayoutTests/accessibility/list-detection2.html M LayoutTests/accessibility/mac/basic-embed-pdf-accessibility-expected.txt M LayoutTests/accessibility/mac/basic-embed-pdf-accessibility.html M LayoutTests/imported/w3c/web-platform-tests/css/css-display/accessibility/display-contents-role-and-label-expected.txt M LayoutTests/imported/w3c/web-platform-tests/svg-aam/role/roles-expected.txt M LayoutTests/imported/w3c/web-platform-tests/svg-aam/role/roles-generic-expected.txt M LayoutTests/platform/ios/accessibility/changing-aria-hidden-with-display-none-parent-expected.txt M LayoutTests/platform/ios/accessibility/list-with-dynamically-changing-content-expected.txt M LayoutTests/platform/mac-wk2/accessibility/aria-visible-element-roles-expected.txt M Source/WebCore/accessibility/AXCoreObject.cpp M Source/WebCore/accessibility/AXCoreObject.h M Source/WebCore/accessibility/AccessibilityLabel.cpp M Source/WebCore/accessibility/AccessibilityList.cpp M Source/WebCore/accessibility/AccessibilityNodeObject.cpp M Source/WebCore/accessibility/AccessibilityObject.cpp M Source/WebCore/accessibility/AccessibilityRenderObject.cpp M Source/WebCore/accessibility/AccessibilitySVGElement.cpp M Source/WebCore/accessibility/AccessibilitySVGRoot.cpp M Source/WebCore/accessibility/AccessibilityTree.cpp M Source/WebCore/accessibility/atspi/AccessibilityAtspi.cpp M Source/WebCore/accessibility/atspi/AccessibilityObjectAtspi.cpp M Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm M Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm Log Message: --- AX: Remove AccessibilityRole::ApplicationGroup and AccessibilityRole::ApplicationTextGroup to simplify group logic https://bugs.webkit.org/show_bug.cgi?id=273089 rdar://126880483 Reviewed by Chris Fleizach. Currently, there are four "group" roles: Group, ApplicationGroup, TextGroup, ApplicationTextGroup. The original intention for separating these was that the Application style roles were explicitly defined by the author (e.g. via role="group" for ApplicationGroup and role="doc-example" for ApplicationTextGroup), while the non-Application variants were implicitly assigned via heuristics done by the user agent (WebKit). However, that distinction has become muddied over time: 1. To support Web Inspector and WPTs, AccessibilityRole::Group has become synonymous with "generic" (mostly because we used to assign this role to nearly every div on the page). This is confusing because it doesn't match or map to role="group" (which is AccessibilityRole::ApplicationGroup). 2. Partially due to point one, in several places we have started returning ApplicationGroup even when the element is not explicitly assigned as such (i.e. via role="group"), going against the point of this role's existence. With this patch, ApplicationGroup and ApplicationTextGroup are eliminated. Any context that needs to know whether an object has that role due to explicit definition via ARIA can do so by checking ariaRoleAttribute(). This makes our code more clear in several different ways. This patch fixes two WPT tests and breaks one. The broken will be fixed in a follow-up. * LayoutTests/accessibility/list-detection2-expected.txt: * LayoutTests/accessibility/list-detection2.html: * LayoutTests/accessibility/mac/basic-embed-pdf-accessibility-expected.txt: * LayoutTests/accessibility/mac/basic-embed-pdf-accessibility.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-display/accessibility/display-contents-role-and-label-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/svg-aam/role/roles-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/svg-aam/role/roles-generic-expected.txt: * LayoutTests/platform/mac-wk2/accessibility/aria-visible-element-roles-expected.txt: * Source/WebCore/accessibility/AXCoreObject.cpp: (WebCore::AXCoreObject::isGroup const): * Source/WebCore/accessibility/AXCoreObject.h: (WebCore::accessibilityRoleToString): * Source/WebCore/accessibility/AccessibilityLabel.cpp: (WebCore::childrenContainOnlyStaticText): * Source/WebCore/accessibility/AccessibilityList.cpp: (WebCore::AccessibilityList::determineAccessibilityRole): * Source/WebCore/accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::determineAccessibilityRoleFromNode const): (WebCore::AccessibilityNodeObject::hierarchicalLevel const): * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::
[webkit-changes] [WebKit/WebKit] e75958: REGRESSION (277781@main): [ iOS ] accessibility/io...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: e75958e43a538e8bb98325c8f76b5d22b9d66557 https://github.com/WebKit/WebKit/commit/e75958e43a538e8bb98325c8f76b5d22b9d66557 Author: Tyler Wilcock Date: 2024-04-23 (Tue, 23 Apr 2024) Changed paths: M LayoutTests/accessibility/ios-simulator/math-expected.txt M LayoutTests/accessibility/ios-simulator/math.html M LayoutTests/platform/ios/TestExpectations Log Message: --- REGRESSION (277781@main): [ iOS ] accessibility/ios-simulator/math.html is a consistent failure https://bugs.webkit.org/show_bug.cgi?id=273095 rdar://problem/126887745 Reviewed by Chris Fleizach. This test needs a rebase after https://commits.webkit.org/277781@main. * LayoutTests/accessibility/ios-simulator/math-expected.txt: * LayoutTests/accessibility/ios-simulator/math.html: * LayoutTests/platform/ios/TestExpectations: Canonical link: https://commits.webkit.org/277870@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 04d118: AX: Whitespace-only aria-labels should not be resp...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 04d118a7c6f4178f26afe3eb2d8b14cbdaeee654 https://github.com/WebKit/WebKit/commit/04d118a7c6f4178f26afe3eb2d8b14cbdaeee654 Author: Tyler Wilcock Date: 2024-04-20 (Sat, 20 Apr 2024) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_label-expected.txt M LayoutTests/platform/gtk/imported/w3c/web-platform-tests/accname/name/comp_label-expected.txt M Source/WebCore/accessibility/AccessibilityImageMapLink.cpp M Source/WebCore/accessibility/AccessibilityListBoxOption.cpp M Source/WebCore/accessibility/AccessibilityNodeObject.cpp M Source/WebCore/accessibility/AccessibilityObject.cpp M Source/WebCore/accessibility/AccessibilityObject.h M Source/WebCore/accessibility/AccessibilityRenderObject.cpp M Source/WebCore/accessibility/AccessibilitySlider.cpp M Source/WebCore/accessibility/AccessibilitySlider.h M Source/WebCore/dom/Element.h M Source/WebCore/dom/ElementInlines.h Log Message: --- AX: Whitespace-only aria-labels should not be respected in accname calculation https://bugs.webkit.org/show_bug.cgi?id=272852 rdar://problem/126643869 Reviewed by Chris Fleizach. https://w3c.github.io/accname/#comp_label > AriaLabel: Otherwise, if the current node has an aria-label attribute whose > value is not undefined, not the empty string, nor, when trimmed of > whitespace, is not the empty string: > 1. If traversal of the current node is due to recursion and the current node > is an embedded control, ignore aria-label and skip to rule Embedded Control. > 2. Otherwise, return the value of aria-label. With this patch, we no longer respect whitespace-only aria-labels when computing the accname. This patch also de-virtualizes AccessibilityObject::getAttribute and AccessibilityObject::hasAttribute, as the only override was in AccessibilitySlider and was not necessary. * LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_label-expected.txt: * LayoutTests/platform/gtk/imported/w3c/web-platform-tests/accname/name/comp_label-expected.txt: * Source/WebCore/accessibility/AccessibilityImageMapLink.cpp: (WebCore::AccessibilityImageMapLink::description const): * Source/WebCore/accessibility/AccessibilityListBoxOption.cpp: (WebCore::AccessibilityListBoxOption::stringValue const): * Source/WebCore/accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::determineAccessibilityRoleFromNode const): (WebCore::AccessibilityNodeObject::ariaAccessibilityDescription const): (WebCore::AccessibilityNodeObject::textAsLabelFor const): (WebCore::AccessibilityNodeObject::labelText const): (WebCore::AccessibilityNodeObject::alternativeText const): (WebCore::AccessibilityNodeObject::stringValue const): (WebCore::accessibleNameForNode): (WebCore::AccessibilityNodeObject::hasAttributesRequiredForInclusion const): (WebCore::AccessibilityNodeObject::determineAriaRoleAttribute const): * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::getAttribute const): (WebCore::AccessibilityObject::getAttributeTrimmed const): * Source/WebCore/accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::hasValidAriaLabel const): * Source/WebCore/accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::stringValue const): * Source/WebCore/accessibility/AccessibilitySlider.cpp: (WebCore::AccessibilitySlider::getAttribute const): Deleted. * Source/WebCore/accessibility/AccessibilitySlider.h: * Source/WebCore/dom/Element.h: * Source/WebCore/dom/ElementInlines.h: (WebCore::Element::attributeTrimmedWithDefaultARIA const): Canonical link: https://commits.webkit.org/277781@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 6168be: AX: AccessibilityNodeObject::labelText adds empty ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 6168be34e9eaad0af1a25c6e09e35cb11896d567 https://github.com/WebKit/WebKit/commit/6168be34e9eaad0af1a25c6e09e35cb11896d567 Author: Tyler Wilcock Date: 2024-04-19 (Fri, 19 Apr 2024) Changed paths: M LayoutTests/accessibility/aria-labelledby-on-password-input-expected.txt M LayoutTests/accessibility/aria-labelledby-on-password-input.html M LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_host_language_label-expected.txt M LayoutTests/platform/gtk/imported/w3c/web-platform-tests/accname/name/comp_host_language_label-expected.txt M LayoutTests/platform/ios/imported/w3c/web-platform-tests/accname/name/comp_host_language_label-expected.txt M LayoutTests/platform/wpe/imported/w3c/web-platform-tests/accname/name/comp_host_language_label-expected.txt M Source/WebCore/accessibility/AccessibilityNodeObject.cpp Log Message: --- AX: AccessibilityNodeObject::labelText adds empty accessibility text if the object has a title UI element https://bugs.webkit.org/show_bug.cgi?id=272947 rdar://126725780 Reviewed by Chris Fleizach. When this code was added 12 years ago in https://github.com/WebKit/WebKit/commit/df8d39165ed615be913a454c22d718265c5be483, it included the titleUIElement in the AccessibilityText entry alongside the empty string so that it could extract the text from the element when necessary. However, the field that stored the titleUIElement in AccessibilityText has since been removed, so this no longer makes sense. This behavior causes a WPT failure, as AccessibilityObject::computedLabel() exposes the first entry in the result of AXCoreObject::accessibilityText, which was this empty string in the case of a fieldset labeled by a legend. The second entry is the correct text, so removing this empty string allows us to pass the test. * LayoutTests/accessibility/aria-labelledby-on-password-input-expected.txt: * LayoutTests/accessibility/aria-labelledby-on-password-input.html: * LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_host_language_label-expected.txt: * LayoutTests/platform/gtk/imported/w3c/web-platform-tests/accname/name/comp_host_language_label-expected.txt: * LayoutTests/platform/ios/imported/w3c/web-platform-tests/accname/name/comp_host_language_label-expected.txt: * LayoutTests/platform/wpe/imported/w3c/web-platform-tests/accname/name/comp_host_language_label-expected.txt: * Source/WebCore/accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::labelText const): Canonical link: https://commits.webkit.org/277739@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 390e46: REGRESSION (277677@main): [ MacOS ] accessibility/...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 390e4669a0adb2bb959b40853d93d9395e64ce24 https://github.com/WebKit/WebKit/commit/390e4669a0adb2bb959b40853d93d9395e64ce24 Author: Tyler Wilcock Date: 2024-04-19 (Fri, 19 Apr 2024) Changed paths: M LayoutTests/platform/mac/TestExpectations M Source/WebCore/accessibility/AccessibilityObject.cpp Log Message: --- REGRESSION (277677@main): [ MacOS ] accessibility/focusable-inside-hidden.html is a consistent timeout https://bugs.webkit.org/show_bug.cgi?id=272923 rdar://problem/126709970 Reviewed by Chris Fleizach. https://github.com/WebKit/WebKit/commit/873f5404e7800fbfae3b984289a531cf74e30cc9 erroneously removed an isFocused() check used to override aria-hidden="true", breaking accessibility/focusable-inside-hidden.html. This patch re-adds this check. * LayoutTests/platform/mac/TestExpectations: * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::setIsIgnoredFromParentDataForChild): Canonical link: https://commits.webkit.org/277736@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] c87f99: AX: AccessibilityMenuListOption should subclass Ac...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c87f99943fbeab08bccf1bb6b3efd601187989a8 https://github.com/WebKit/WebKit/commit/c87f99943fbeab08bccf1bb6b3efd601187989a8 Author: Tyler Wilcock Date: 2024-04-18 (Thu, 18 Apr 2024) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_label-expected.txt M LayoutTests/platform/gtk/imported/w3c/web-platform-tests/accname/name/comp_label-expected.txt M Source/WebCore/accessibility/AccessibilityMenuListOption.cpp M Source/WebCore/accessibility/AccessibilityMenuListOption.h Log Message: --- AX: AccessibilityMenuListOption should subclass AccessibilityNodeObject https://bugs.webkit.org/show_bug.cgi?id=272840 rdar://126634909 Reviewed by Andres Gonzalez. AccessibilityMenuListOption is a node object, and the fact that it doesn't subclass AccessibilityNodeObject means it's missing important overrides like accessibilityText. This fixes one subtest in WPT accname/name/comp_label.html, which failed because option elements didn't respect aria-label. * LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_label-expected.txt: * LayoutTests/platform/gtk/imported/w3c/web-platform-tests/accname/name/comp_label-expected.txt: * Source/WebCore/accessibility/AccessibilityMenuListOption.cpp: (WebCore::AccessibilityMenuListOption::AccessibilityMenuListOption): (WebCore::AccessibilityMenuListOption::optionElement const): (WebCore::AccessibilityMenuListOption::actionElement const): (WebCore::AccessibilityMenuListOption::isEnabled const): (WebCore::AccessibilityMenuListOption::isVisible const): (WebCore::AccessibilityMenuListOption::isSelected const): (WebCore::AccessibilityMenuListOption::setSelected): (WebCore::AccessibilityMenuListOption::elementRect const): (WebCore::AccessibilityMenuListOption::stringValue const): (WebCore::AccessibilityMenuListOption::node const): Deleted. * Source/WebCore/accessibility/AccessibilityMenuListOption.h: Canonical link: https://commits.webkit.org/277680@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 873f54: AX: aria-hidden=true should be ignored on the body...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 873f5404e7800fbfae3b984289a531cf74e30cc9 https://github.com/WebKit/WebKit/commit/873f5404e7800fbfae3b984289a531cf74e30cc9 Author: Tyler Wilcock Date: 2024-04-18 (Thu, 18 Apr 2024) Changed paths: A LayoutTests/accessibility/body-element-aria-hidden-expected.txt A LayoutTests/accessibility/body-element-aria-hidden.html A LayoutTests/accessibility/html-element-aria-hidden-expected.txt A LayoutTests/accessibility/html-element-aria-hidden.html M LayoutTests/platform/ios/TestExpectations M Source/WebCore/accessibility/AXCoreObject.h M Source/WebCore/accessibility/AccessibilityObject.cpp M Source/WebCore/accessibility/AccessibilityObject.h M Source/WebCore/accessibility/atspi/AccessibilityObjectAtspi.cpp M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h Log Message: --- AX: aria-hidden=true should be ignored on the body and html elements https://bugs.webkit.org/show_bug.cgi?id=269523 rdar://123049663 Reviewed by Chris Fleizach. To prevent authors from hiding all content from assistive technologies, aria-hidden should not be respected on document root elements (`html`, `body`, or top-level `svg`s). https://github.com/w3c/aria/pull/1880 * LayoutTests/accessibility/body-element-aria-hidden-expected.txt: Added. * LayoutTests/accessibility/body-element-aria-hidden.html: Added. * LayoutTests/accessibility/html-element-aria-hidden-expected.txt: Added. * LayoutTests/accessibility/html-element-aria-hidden.html: Added. * LayoutTests/platform/ios/TestExpectations: Enable new tests. * Source/WebCore/accessibility/AXCoreObject.h: * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::isARIAHidden const): (WebCore::AccessibilityObject::tagName const): (WebCore::AccessibilityObject::setIsIgnoredFromParentDataForChild): * Source/WebCore/accessibility/AccessibilityObject.h: * Source/WebCore/accessibility/atspi/AccessibilityObjectAtspi.cpp: (WebCore::AccessibilityObjectAtspi::attributes const): * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp: (WebCore::AXIsolatedObject::tagName const): Deleted. * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h: Canonical link: https://commits.webkit.org/277677@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 9487ec: AX: Use more reference types in accessibility code...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 9487ec0b9ebd8a3fd3fb49ce40abde34b2246ff2 https://github.com/WebKit/WebKit/commit/9487ec0b9ebd8a3fd3fb49ce40abde34b2246ff2 Author: Tyler Wilcock Date: 2024-04-18 (Thu, 18 Apr 2024) Changed paths: M Source/WebCore/accessibility/AXLogger.cpp M Source/WebCore/accessibility/AXLogger.h M Source/WebCore/accessibility/AXObjectCache.cpp M Source/WebCore/accessibility/AXObjectCache.h M Source/WebCore/accessibility/AccessibilityRenderObject.cpp M Source/WebCore/accessibility/AccessibilityRenderObject.h M Source/WebCore/accessibility/AccessibilityTree.cpp M Source/WebCore/accessibility/atspi/AXObjectCacheAtspi.cpp M Source/WebCore/accessibility/ios/AXObjectCacheIOS.mm M Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm 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/WebAccessibilityObjectWrapperBase.h M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm M Source/WebCore/accessibility/playstation/AXObjectCachePlayStation.cpp M Source/WebCore/accessibility/win/AXObjectCacheWin.cpp M Source/WebCore/dom/Element.cpp M Source/WebCore/dom/ElementInternals.cpp M Source/WebCore/html/ColorInputType.cpp M Source/WebCore/html/HTMLInputElement.cpp M Source/WebCore/html/HTMLOptionElement.cpp M Source/WebCore/html/HTMLProgressElement.cpp M Source/WebCore/html/HTMLTextAreaElement.cpp M Source/WebCore/html/InputType.cpp M Source/WebCore/page/LocalFrameView.cpp M Source/WebCore/rendering/RenderWidget.cpp Log Message: --- AX: Use more reference types in accessibility code when values are known to be non-null https://bugs.webkit.org/show_bug.cgi?id=272279 rdar://problem/126020262 Reviewed by Chris Fleizach. This reduces unnecessary null checks and allows us to remove ASSERT(value) and unchecked dereferences. * Source/WebCore/accessibility/AXLogger.cpp: (WebCore::AXLogger::log): * Source/WebCore/accessibility/AXLogger.h: * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::rendererIsValid): (WebCore::nodeAndRendererAreValid): (WebCore::AXObjectCache::focusedImageMapUIElement): (WebCore::AXObjectCache::focusedObjectForNode): (WebCore::AXObjectCache::cacheAndInitializeWrapper): (WebCore::AXObjectCache::getOrCreate): (WebCore::AXObjectCache::create): (WebCore::AXObjectCache::getAXID): (WebCore::AXObjectCache::handleTextChanged): (WebCore::AXObjectCache::handleAllDeferredChildrenChanged): (WebCore::AXObjectCache::handleChildrenChanged): (WebCore::AXObjectCache::handleMenuOpened): (WebCore::AXObjectCache::handleLiveRegionCreated): (WebCore::AXObjectCache::deferNodeAddedOrRemoved): (WebCore::AXObjectCache::childrenChanged): (WebCore::AXObjectCache::valueChanged): (WebCore::AXObjectCache::notificationPostTimerFired): (WebCore::AXObjectCache::passwordNotificationPostTimerFired): (WebCore::AXObjectCache::postNotification): (WebCore::AXObjectCache::checkedStateChanged): (WebCore::AXObjectCache::autofillTypeChanged): (WebCore::AXObjectCache::deferModalChange): (WebCore::AXObjectCache::onSelectedChanged): (WebCore::isSecureFieldOrContainedBySecureField): (WebCore::AXObjectCache::postTextStateChangeNotification): (WebCore::AXObjectCache::postTextReplacementNotification): (WebCore::AXObjectCache::postTextReplacementNotificationForTextControl): (WebCore::AXObjectCache::enqueuePasswordValueChangeNotification): (WebCore::AXObjectCache::postLiveRegionChangeNotification): (WebCore::AXObjectCache::liveRegionChangedNotificationPostTimerFired): (WebCore::AXObjectCache::onScrollbarUpdate): (WebCore::AXObjectCache::handleAriaExpandedChange): (WebCore::AXObjectCache::handleRoleChanged): (WebCore::AXObjectCache::handleRoleDescriptionChanged): (WebCore::AXObjectCache::deferAttributeChangeIfNeeded): (WebCore::AXObjectCache::handleAttributeChange): (WebCore::AXObjectCache::traverseToOffsetInRange): (WebCore::AXObjectCache::characterOffsetForNodeAndOffset): (WebCore::AXObjectCache::rootAXEditableElement): (WebCore::AXObjectCache::nodeIsTextControl): (WebCore::AXObjectCache::performDeferredCacheUpdate): (WebCore::AXObjectCache::updateIsolatedTree): (WebCore::AXObjectCache::deferSelectedChildrenChangedIfNeeded): (WebCore::AXObjectCache::onWidgetVisibilityChanged): * Source/WebCore/accessibility/AXObjectCache.h: * Source/WebCore/accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::rootEditableElementForPosition const): (WebCore::AccessibilityRenderObject::nodeIsTextControl const): * Source/WebCore/accessibility/AccessibilityRenderObject.h: * Source/WebCore/accessibility/AccessibilityTree.cpp: (WebCore::AccessibilityTree::isTreeValid const): * Source/WebCore/accessibility/ios/AXObjectCacheIOS.mm: (WebCore
[webkit-changes] [WebKit/WebKit] 5b4dc9: AX: For children of display:contents elements, nex...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 5b4dc91691b737cb15d9afba686ae4127cd44352 https://github.com/WebKit/WebKit/commit/5b4dc91691b737cb15d9afba686ae4127cd44352 Author: Tyler Wilcock Date: 2024-04-17 (Wed, 17 Apr 2024) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/css/css-display/accessibility/display-contents-role-and-label-expected.txt M LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-display/accessibility/display-contents-role-and-label-expected.txt M Source/WebCore/accessibility/AXObjectCache.cpp M Source/WebCore/accessibility/AccessibilityNodeObject.cpp M Source/WebCore/accessibility/AccessibilityObject.cpp M Source/WebCore/accessibility/AccessibilityObject.h M Source/WebCore/accessibility/AccessibilityRenderObject.cpp M Source/WebCore/accessibility/AccessibilityRenderObject.h M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp Log Message: --- AX: For children of display:contents elements, nextSibling() and previousSibling() can return non-siblings https://bugs.webkit.org/show_bug.cgi?id=272606 rdar://problem/126376582 Reviewed by Chris Fleizach and Andres Gonzalez. Prior to this patch, calling nextSibling() and previousSibling() on children of display:contents elements could return non-siblings. This can cause the AX tree to be wrong, and for us to compute the wrong accessibility text, as computing it requires walking the DOM / render tree via nextSibling(). This patch addresses this issue by ensuring that if we end up in a different display:contents container than we started in, we stop traversing, as those are not our siblings. To avoid having to maintain this state in the several places we iterate from firstChild() to nextSibling(), this logic is encapsulated in two new iterators: AXSiblingIterator and AXChildIterator. This allows us to pass four more WPT subtests in accessibility/display-contents-role-and-label.html. * LayoutTests/imported/w3c/web-platform-tests/css/css-display/accessibility/display-contents-role-and-label-expected.txt: * LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-display/accessibility/display-contents-role-and-label-expected.txt: * Source/WebCore/Headers.cmake: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::firstFocusableChild): (WebCore::AXObjectCache::focusCurrentModal): * Source/WebCore/accessibility/AXTreeIterator.h: Added. (WebCore::AXChildIterator::AXChildIterator): (WebCore::AXChildIterator::begin): (WebCore::AXChildIterator::end): (WebCore::AXSiblingIterator::AXSiblingIterator): (WebCore::AXSiblingIterator::begin): (WebCore::AXSiblingIterator::end): (WebCore::AXSiblingIterator::rbegin): (WebCore::AXSiblingIterator::rend): * Source/WebCore/accessibility/AccessibilityNodeObject.cpp: (WebCore::shouldUseAccessibilityObjectInnerText): (WebCore::AccessibilityNodeObject::textUnderElement const): * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::nextSiblingUnignored const): (WebCore::AccessibilityObject::previousSiblingUnignored const): (WebCore::Accessibility::appendChildrenToArray): * Source/WebCore/accessibility/AccessibilityObject.h: * Source/WebCore/accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::nextSibling const): (WebCore::AccessibilityRenderObject::addChildren): * Source/WebCore/accessibility/AccessibilityRenderObject.h: * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp: Add missing includes that only compiled by happenstance due to the makeup of the unified sources (broken with my addition of a new source). Canonical link: https://commits.webkit.org/277651@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] dd1b3e: AX: accessibility/dynamic-text.html doesn't test f...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: dd1b3ee2e1550735097606bd4e4bfc9058d236e7 https://github.com/WebKit/WebKit/commit/dd1b3ee2e1550735097606bd4e4bfc9058d236e7 Author: Tyler Wilcock Date: 2024-04-17 (Wed, 17 Apr 2024) Changed paths: M LayoutTests/accessibility/dynamic-text-expected.txt M LayoutTests/accessibility/dynamic-text.html M LayoutTests/platform/glib/accessibility/dynamic-text-expected.txt M LayoutTests/platform/ios/accessibility/dynamic-text-expected.txt Log Message: --- AX: accessibility/dynamic-text.html doesn't test for dynamic AXPropertyName::AccessibilityText changes https://bugs.webkit.org/show_bug.cgi?id=272781 rdar://problem/126579803 Reviewed by Chris Fleizach. We could remove the handling of AXPropertyName::AccessibilityText in AXIsolatedTree::updateNodeProperties and the test would still pass. This patch fixes the test by adding an additional testcase. * LayoutTests/accessibility/dynamic-text-expected.txt: * LayoutTests/accessibility/dynamic-text.html: * LayoutTests/platform/glib/accessibility/dynamic-text-expected.txt: * LayoutTests/platform/ios/accessibility/dynamic-text-expected.txt: Canonical link: https://commits.webkit.org/277614@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 3ef9b5: AX: Use more smart pointers in AXObjectCache relat...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 3ef9b56609d51dab5b3455067b231942a29c3996 https://github.com/WebKit/WebKit/commit/3ef9b56609d51dab5b3455067b231942a29c3996 Author: Tyler Wilcock Date: 2024-04-13 (Sat, 13 Apr 2024) Changed paths: M Source/WebCore/accessibility/AXObjectCache.cpp Log Message: --- AX: Use more smart pointers in AXObjectCache relations management code https://bugs.webkit.org/show_bug.cgi?id=272609 rdar://125955328 Reviewed by Chris Fleizach. Continued progress towards compliance with https://github.com/WebKit/WebKit/wiki/Smart-Pointer-Usage-Guidelines. * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::addRelation): (WebCore::AXObjectCache::addLabelForRelation): Canonical link: https://commits.webkit.org/277460@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 8ee95f: AX: Setting aria-hidden on a slot does not hide th...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 8ee95fe74bfa89ffc9369cc128ec58ed7eb127f6 https://github.com/WebKit/WebKit/commit/8ee95fe74bfa89ffc9369cc128ec58ed7eb127f6 Author: Tyler Wilcock Date: 2024-04-10 (Wed, 10 Apr 2024) Changed paths: A LayoutTests/accessibility/hidden-slot-expected.txt A LayoutTests/accessibility/hidden-slot.html M LayoutTests/platform/ios/TestExpectations M Source/WebCore/Headers.cmake M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/accessibility/AXObjectCache.cpp M Source/WebCore/accessibility/AccessibilityObject.cpp M Source/WebCore/dom/Element.cpp M Source/WebCore/dom/Element.h M Source/WebCore/dom/ElementInlines.h Log Message: --- AX: Setting aria-hidden on a slot does not hide the slots assigned nodes https://bugs.webkit.org/show_bug.cgi?id=256186 rdar://problem/108762653 Reviewed by Andres Gonzalez. Fix this by changing AccessibilityObject::isARIAHidden to check if the given object is within a hidden slot. To help accomplish this, a new Element::attributeWithDefaultARIA function is added, as it is needed to check the slot's aria-hidden attribute, and this logic was repeated several times throughout accessibility code. * LayoutTests/accessibility/hidden-slot-expected.txt: Added. * LayoutTests/accessibility/hidden-slot.html: Added. * LayoutTests/platform/ios/TestExpectations: Enable new test. * Source/WebCore/Headers.cmake: CustomElementDefaultARIA.h should have been present in this file, but wasn't — this patch adds it. * Source/WebCore/WebCore.xcodeproj/project.pbxproj: CustomElementDefaultARIA.h should have been under Private membership to WebCore, but was Public. This is wrong per https://github.com/WebKit/WebKit/blob/main/Introduction.md#how-to-add-a-new-h-or-cpp-file, and caused compilation failures. It's now Private. * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::isModalElement const): (WebCore::nodeHasRole): * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::getAttribute const): (WebCore::AccessibilityObject::isARIAHidden const): * Source/WebCore/dom/Element.cpp: (WebCore::Element::customElementDefaultARIAIfExists const): (WebCore::Element::customElementDefaultARIAIfExists): Deleted. * Source/WebCore/dom/Element.h: * Source/WebCore/dom/ElementInlines.h: (WebCore::Element::attributeWithDefaultARIA const): Canonical link: https://commits.webkit.org/277359@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 15650d: AX: When constructing accessibility text, tokens s...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 15650dca0c8084852fa8d568ef75fb35c36f0073 https://github.com/WebKit/WebKit/commit/15650dca0c8084852fa8d568ef75fb35c36f0073 Author: Tyler Wilcock Date: 2024-04-10 (Wed, 10 Apr 2024) Changed paths: M LayoutTests/accessibility/internal-link-anchors2-expected.txt M LayoutTests/accessibility/ios-simulator/link-with-images-text-expected.txt M LayoutTests/accessibility/ios-simulator/link-with-images-text.html M LayoutTests/accessibility/listitem-title-expected.txt M LayoutTests/accessibility/mac/label-element-changing-children-string-value-expected.txt M LayoutTests/accessibility/mac/label-element-changing-children-string-value.html M LayoutTests/accessibility/render-counter-text.html M LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_name_from_content-expected.txt M LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_text_node-expected.txt M LayoutTests/imported/w3c/web-platform-tests/css/css-display/accessibility/display-contents-role-and-label-expected.txt M LayoutTests/platform/glib/accessibility/css-content-attribute-expected.txt M LayoutTests/platform/glib/accessibility/generated-content-with-display-table-crash-expected.txt M LayoutTests/platform/glib/accessibility/render-counter-text-expected.txt M LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-display/accessibility/display-contents-role-and-label-expected.txt M Source/WebCore/accessibility/AXCoreObject.h M Source/WebCore/accessibility/AXLogger.cpp M Source/WebCore/accessibility/AccessibilityMathMLElement.h M Source/WebCore/accessibility/AccessibilityNodeObject.cpp M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp Log Message: --- AX: When constructing accessibility text, tokens should not unconditionally be separated by a space https://bugs.webkit.org/show_bug.cgi?id=272194 rdar://problem/125935544 Reviewed by Andres Gonzalez. When building textUnderElement, we used to unconditionally separate tokens with a space. This is not the right behavior for every sequence of CSS display types. For example, for: foobarbaz We generate an accname of "foo bar baz", but it is rendered as "foobarbaz", and thus that is what we should be exposing. With this patch, we now only insert a space based on a few heuristics, namely: - The CSS display type - Whether the object is a control - Whether text was retrieved through non "raw text" means, e.g. via attribute: aria-label, alt, etc. This fixes 16 WPT subtests. Other tests have been updated as well because they tested for incorrect accnames, which are fixed with this patch. I have explicitly checked each one, and confirmed the new behavior is more correct (it matches the rendering, unlike the old behavior). * LayoutTests/accessibility/internal-link-anchors2-expected.txt: * LayoutTests/accessibility/ios-simulator/link-with-images-text-expected.txt: * LayoutTests/accessibility/ios-simulator/link-with-images-text.html: * LayoutTests/accessibility/listitem-title-expected.txt: * LayoutTests/accessibility/mac/label-element-changing-children-string-value-expected.txt: * LayoutTests/accessibility/mac/label-element-changing-children-string-value.html: * LayoutTests/accessibility/render-counter-text.html: * LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_name_from_content-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_text_node-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-display/accessibility/display-contents-role-and-label-expected.txt: * LayoutTests/platform/glib/accessibility/css-content-attribute-expected.txt: * LayoutTests/platform/glib/accessibility/generated-content-with-display-table-crash-expected.txt: * LayoutTests/platform/glib/accessibility/render-counter-text-expected.txt: * LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-display/accessibility/display-contents-role-and-label-expected.txt: * Source/WebCore/accessibility/AXCoreObject.h: * Source/WebCore/accessibility/AXLogger.cpp: (WebCore::operator<<): * Source/WebCore/accessibility/AccessibilityMathMLElement.h: * Source/WebCore/accessibility/AccessibilityNodeObject.cpp: (WebCore::appendNameToStringBuilder): (WebCore::displayTypeNeedsSpace): (WebCore::needsSpaceFromDisplay): (WebCore::shouldPrependSpace): (WebCore::AccessibilityNodeObject::textUnderElement const): * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp: (WebCore::AXIsolatedObject::initializeProperties): Drive-by fix to change PLATFORM(ATSPI) to USE(ATSPI). The former is not correct (it will not evaluate true for ATSPI or any platform / configuration). Canonical link: https://commits.webkit.org/277332@main To unsubscribe from these emails, change your notification settings at https://github.com/
[webkit-changes] [WebKit/WebKit] 87dc85: AX: range input does not fire input event when inc...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 87dc85177fd870edf465c6a24ee4ed79d9f56bdf https://github.com/WebKit/WebKit/commit/87dc85177fd870edf465c6a24ee4ed79d9f56bdf Author: Tyler Wilcock Date: 2024-04-07 (Sun, 07 Apr 2024) Changed paths: A LayoutTests/accessibility/range-input-increment-decrement-fires-input-event-expected.txt A LayoutTests/accessibility/range-input-increment-decrement-fires-input-event.html M LayoutTests/platform/ios/TestExpectations M LayoutTests/platform/mac-wk1/TestExpectations M Source/WebCore/accessibility/AccessibilitySlider.cpp Log Message: --- AX: range input does not fire input event when incremented/decremented via accessibility APIs https://bugs.webkit.org/show_bug.cgi?id=233449 rdar://problem/85707481 Reviewed by Chris Fleizach. To follow the HTML spec (and match the behavior of mouse user input changes), we should be firing both `input` and `change` events when AccessibilitySlider is incremented and decremented. * LayoutTests/accessibility/range-input-increment-decrement-fires-input-event-expected.txt: Added. * LayoutTests/accessibility/range-input-increment-decrement-fires-input-event.html: Added. * LayoutTests/platform/ios/TestExpectations: Enable new test. * Source/WebCore/accessibility/AccessibilitySlider.cpp: (WebCore::AccessibilitySlider::setValue): Canonical link: https://commits.webkit.org/277182@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 7fe8ad: AX: createObjectFromRenderer and accessibleNameFor...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 7fe8ad6a33150c1a6a97f0541068153394560a94 https://github.com/WebKit/WebKit/commit/7fe8ad6a33150c1a6a97f0541068153394560a94 Author: Tyler Wilcock Date: 2024-04-04 (Thu, 04 Apr 2024) Changed paths: M Source/WebCore/accessibility/AXImage.cpp M Source/WebCore/accessibility/AXImage.h M Source/WebCore/accessibility/AXObjectCache.cpp M Source/WebCore/accessibility/AXObjectCache.h M Source/WebCore/accessibility/AccessibilityARIAGridCell.cpp M Source/WebCore/accessibility/AccessibilityARIAGridCell.h M Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp M Source/WebCore/accessibility/AccessibilityARIAGridRow.h M Source/WebCore/accessibility/AccessibilityARIATable.cpp M Source/WebCore/accessibility/AccessibilityARIATable.h M Source/WebCore/accessibility/AccessibilityAttachment.cpp M Source/WebCore/accessibility/AccessibilityAttachment.h M Source/WebCore/accessibility/AccessibilityLabel.cpp M Source/WebCore/accessibility/AccessibilityLabel.h M Source/WebCore/accessibility/AccessibilityList.cpp M Source/WebCore/accessibility/AccessibilityList.h M Source/WebCore/accessibility/AccessibilityListBox.cpp M Source/WebCore/accessibility/AccessibilityListBox.h M Source/WebCore/accessibility/AccessibilityMathMLElement.cpp M Source/WebCore/accessibility/AccessibilityMathMLElement.h M Source/WebCore/accessibility/AccessibilityMediaObject.cpp M Source/WebCore/accessibility/AccessibilityMediaObject.h M Source/WebCore/accessibility/AccessibilityMenuList.cpp M Source/WebCore/accessibility/AccessibilityMenuList.h M Source/WebCore/accessibility/AccessibilityNodeObject.cpp M Source/WebCore/accessibility/AccessibilityProgressIndicator.cpp M Source/WebCore/accessibility/AccessibilityProgressIndicator.h M Source/WebCore/accessibility/AccessibilityRenderObject.cpp M Source/WebCore/accessibility/AccessibilityRenderObject.h 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/AccessibilitySlider.cpp M Source/WebCore/accessibility/AccessibilitySlider.h M Source/WebCore/accessibility/AccessibilityTable.cpp M Source/WebCore/accessibility/AccessibilityTable.h M Source/WebCore/accessibility/AccessibilityTableCell.cpp M Source/WebCore/accessibility/AccessibilityTableCell.h M Source/WebCore/accessibility/AccessibilityTableRow.cpp M Source/WebCore/accessibility/AccessibilityTableRow.h M Source/WebCore/accessibility/AccessibilityTree.cpp M Source/WebCore/accessibility/AccessibilityTree.h M Source/WebCore/accessibility/AccessibilityTreeItem.cpp M Source/WebCore/accessibility/AccessibilityTreeItem.h Log Message: --- AX: createObjectFromRenderer and accessibleNameForNode can take their arguments by reference rather than pointer https://bugs.webkit.org/show_bug.cgi?id=272063 rdar://problem/125813277 Reviewed by Andres Gonzalez. Doing this saves null checks on hot codepaths and makes intent more clear, as these functions or ones downstream from them would either ASSERT non-null, or directly dereference the pointer without null checking. * Source/WebCore/accessibility/AXImage.cpp: (WebCore::AXImage::AXImage): (WebCore::AXImage::create): * Source/WebCore/accessibility/AXImage.h: * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::toSimpleImage): (WebCore::isAccessibilityList): (WebCore::isAccessibilityTree): (WebCore::isAccessibilityTreeItem): (WebCore::isAccessibilityARIATable): (WebCore::isAccessibilityARIAGridRow): (WebCore::isAccessibilityARIAGridCell): (WebCore::AXObjectCache::createObjectFromRenderer): (WebCore::createFromNode): (WebCore::AXObjectCache::getOrCreate): (WebCore::isSimpleImage): Deleted. * Source/WebCore/accessibility/AXObjectCache.h: * Source/WebCore/accessibility/AccessibilityARIAGridCell.cpp: (WebCore::AccessibilityARIAGridCell::AccessibilityARIAGridCell): (WebCore::AccessibilityARIAGridCell::create): * Source/WebCore/accessibility/AccessibilityARIAGridCell.h: * Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp: (WebCore::AccessibilityARIAGridRow::AccessibilityARIAGridRow): (WebCore::AccessibilityARIAGridRow::create): * Source/WebCore/accessibility/AccessibilityARIAGridRow.h: * Source/WebCore/accessibility/AccessibilityARIATable.cpp: (WebCore::AccessibilityARIATable::AccessibilityARIATable): (WebCore::AccessibilityARIATable::create): * Source/WebCore/accessibility/AccessibilityARIATable.h: * Source/WebCore/accessibility/AccessibilityAttachment.cpp: (WebCore::AccessibilityAttachment::AccessibilityAttachment): (WebCore::AccessibilityAttachment::create): * Source/WebCore/accessibility/AccessibilityAttachment.h: * Source
[webkit-changes] [WebKit/WebKit] ae013f: AX: textUnderElement does not find visibility:visi...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: ae013fff20db490f84ec85a4c11f66439dfc4db9 https://github.com/WebKit/WebKit/commit/ae013fff20db490f84ec85a4c11f66439dfc4db9 Author: Tyler Wilcock Date: 2024-04-03 (Wed, 03 Apr 2024) Changed paths: A LayoutTests/accessibility/button-hidden-and-unhidden-text-expected.txt A LayoutTests/accessibility/button-hidden-and-unhidden-text.html A LayoutTests/accessibility/hidden-label-expected.txt A LayoutTests/accessibility/hidden-label.html M LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_hidden_not_referenced-expected.txt A LayoutTests/platform/glib/accessibility/button-hidden-and-unhidden-text-expected.txt A LayoutTests/platform/glib/accessibility/hidden-label-expected.txt M LayoutTests/platform/ios/TestExpectations A LayoutTests/platform/ios/accessibility/hidden-label-expected.txt M Source/WebCore/accessibility/AXCoreObject.h M Source/WebCore/accessibility/AXLogger.cpp M Source/WebCore/accessibility/AXObjectCache.cpp M Source/WebCore/accessibility/AXObjectCache.h M Source/WebCore/accessibility/AccessibilityMathMLElement.cpp M Source/WebCore/accessibility/AccessibilityNodeObject.cpp M Source/WebCore/accessibility/AccessibilityObject.cpp M Source/WebCore/accessibility/AccessibilityRenderObject.cpp M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp Log Message: --- AX: textUnderElement does not find visibility:visible text when it's within a visibility:hidden container https://bugs.webkit.org/show_bug.cgi?id=271995 rdar://problem/125738704 Reviewed by Andres Gonzalez. When `visibility:visible` is placed within a `visibility:hidden` container, the elements within are rendered. But currently, `AccessibilityNodeObject::textUnderElement` stops immediately when encountering `visibility:hidden`, meaning we can miss this nested `visibility:visible` text. With this patch, when encountering a hidden style, we still search the subtree for text that isn't hidden. This patch also fixes a bug where we never updated the cached accessibility text of controls associated with a label via the for attribute when the for attribute of that label changes. * LayoutTests/accessibility/button-hidden-and-unhidden-text-expected.txt: Added. * LayoutTests/accessibility/button-hidden-and-unhidden-text.html: Added. * LayoutTests/accessibility/hidden-label-expected.txt: Added. * LayoutTests/accessibility/hidden-label.html: Added. * LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_hidden_not_referenced-expected.txt: * LayoutTests/platform/glib/accessibility/button-hidden-and-unhidden-text-expected.txt: Added. * LayoutTests/platform/glib/accessibility/hidden-label-expected.txt: Added. * LayoutTests/platform/ios/TestExpectations: * LayoutTests/platform/ios/accessibility/hidden-label-expected.txt: Added. * Source/WebCore/accessibility/AXCoreObject.h: (WebCore::TextUnderElementMode::isHidden): * Source/WebCore/accessibility/AXLogger.cpp: (WebCore::operator<<): * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::handleAttributeChange): (WebCore::isDOMHidden): (WebCore::AXObjectCache::addLabelForRelation): * Source/WebCore/accessibility/AXObjectCache.h: * Source/WebCore/accessibility/AccessibilityMathMLElement.cpp: (WebCore::AccessibilityMathMLElement::textUnderElement const): * Source/WebCore/accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::textUnderElement const): * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::isDOMHidden const): * Source/WebCore/accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::textUnderElement const): * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp: (WebCore::AXIsolatedTree::removeNode): Canonical link: https://commits.webkit.org/277004@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] c608d5: AX: Introduce reference versions of AXObjectCache:...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c608d58420169f906dcbb3d4bfe4dce388b6c02e https://github.com/WebKit/WebKit/commit/c608d58420169f906dcbb3d4bfe4dce388b6c02e Author: Tyler Wilcock Date: 2024-04-02 (Tue, 02 Apr 2024) Changed paths: M Source/WebCore/accessibility/AXObjectCache.cpp M Source/WebCore/accessibility/AXObjectCache.h M Source/WebCore/accessibility/AccessibilityListBoxOption.cpp M Source/WebCore/accessibility/AccessibilityMathMLElement.cpp M Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp M Source/WebCore/accessibility/AccessibilityNodeObject.cpp M Source/WebCore/accessibility/AccessibilityObject.cpp M Source/WebCore/accessibility/AccessibilityProgressIndicator.cpp M Source/WebCore/accessibility/AccessibilityRenderObject.cpp M Source/WebCore/accessibility/AccessibilitySVGElement.cpp M Source/WebCore/accessibility/AccessibilityScrollView.cpp M Source/WebCore/accessibility/AccessibilityTable.cpp M Source/WebCore/accessibility/AccessibilityTableCell.cpp M Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm M Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm M Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm M Source/WebCore/inspector/InspectorAuditAccessibilityObject.cpp M Source/WebCore/inspector/InspectorOverlay.cpp M Source/WebCore/inspector/agents/InspectorDOMAgent.cpp M Source/WebCore/testing/Internals.cpp Log Message: --- AX: Introduce reference versions of AXObjectCache::get and AXObjectCache::getOrCreate https://bugs.webkit.org/show_bug.cgi?id=271949 rdar://problem/125689037 Reviewed by Chris Fleizach. At most callsites of AXObjectCache::get and AXObjectCache::getOrCreate, we already know the Node* / RenderObject* / Widget* is not null, but we still perform an extra null check in these methods anyways, which is a waste. And looking at the assembly generated by clang, it's not smart enough to optimize the null checks away itself in any of these contexts. This patch adds versions of these methods that take references, and adds dereferences at callsites that have already checked for a null value. This saves over 16 million null checks simply loading gmail.com, without any other navigation or action. * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::modalElementHasAccessibleContent): (WebCore::AXObjectCache::isNodeVisible const): (WebCore::AXObjectCache::focusedImageMapUIElement): (WebCore::AXObjectCache::get const): (WebCore::AXObjectCache::getOrCreate): (WebCore::AXObjectCache::handleMenuOpened): (WebCore::AXObjectCache::childrenChanged): (WebCore::AXObjectCache::postNotification): (WebCore::AXObjectCache::handleMenuItemSelected): (WebCore::AXObjectCache::onTextCompositionChange): (WebCore::AXObjectCache::postTextStateChangeNotification): (WebCore::AXObjectCache::postTextReplacementNotification): (WebCore::AXObjectCache::postTextReplacementNotificationForTextControl): (WebCore::AXObjectCache::frameLoadingEventNotification): (WebCore::AXObjectCache::focusCurrentModal): (WebCore::AXObjectCache::handleActiveDescendantChange): (WebCore::AXObjectCache::shouldProcessAttributeChange): (WebCore::AXObjectCache::handleAttributeChange): (WebCore::AXObjectCache::characterOffsetFromVisiblePosition): (WebCore::AXObjectCache::accessibilityObjectForTextMarkerData): (WebCore::AXObjectCache::nodeIsTextControl): (WebCore::AXObjectCache::performDeferredCacheUpdate): (WebCore::AXObjectCache::deferTextChangedIfNeeded): (WebCore::isNodeAriaVisible): (WebCore::AXObjectCache::addRelation): (WebCore::AXObjectCache::addLabelForRelation): (WebCore::AXObjectCache::isDescendantOfRelatedNode): (WebCore::AXObjectCache::get): Deleted. * Source/WebCore/accessibility/AXObjectCache.h: * Source/WebCore/accessibility/AccessibilityListBoxOption.cpp: (WebCore::AccessibilityListBoxOption::elementRect const): (WebCore::AccessibilityListBoxOption::parentObject const): * Source/WebCore/accessibility/AccessibilityMathMLElement.cpp: (WebCore::AccessibilityMathMLElement::mathPrescripts): (WebCore::AccessibilityMathMLElement::mathPostscripts): * Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp: (WebCore::AccessibilityMenuListPopup::menuListOptionAccessibilityObject const): * Source/WebCore/accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::firstChild const): (WebCore::AccessibilityNodeObject::lastChild const): (WebCore::AccessibilityNodeObject::previousSibling const): (WebCore::AccessibilityNodeObject::nextSibling const): (WebCore::AccessibilityNodeObject::parentObject const): (WebCore::AccessibilityNodeObject::checkboxOrRadioRect const): (WebCore::AccessibilityNodeObject::addChildren): (WebCore::AccessibilityNodeObject::menuButtonForMenu const): (WebCore::AccessibilityNodeObject::captionForF
[webkit-changes] [WebKit/WebKit] 5d95f5: Hover Text(a11y) is not working in Safari with Sha...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 5d95f54a2edd93d34b6c540293da2fe136064317 https://github.com/WebKit/WebKit/commit/5d95f54a2edd93d34b6c540293da2fe136064317 Author: Tyler Wilcock Date: 2024-03-31 (Sun, 31 Mar 2024) Changed paths: A LayoutTests/accessibility/shadow-dom-hit-test-expected.txt A LayoutTests/accessibility/shadow-dom-hit-test.html M LayoutTests/platform/glib/TestExpectations M LayoutTests/platform/ios/TestExpectations A LayoutTests/platform/ios/accessibility/shadow-dom-hit-test-expected.txt M LayoutTests/platform/mac-wk1/TestExpectations M Source/WebCore/accessibility/AccessibilityRenderObject.cpp M Source/WebCore/accessibility/AccessibilityRenderObject.h Log Message: --- Hover Text(a11y) is not working in Safari with Shadow Content https://bugs.webkit.org/show_bug.cgi?id=271847 rdar://problem/125576324 Reviewed by Chris Fleizach. Prior to this patch, when hit testing in AccessibilityRenderObject::accessibilityHitTest returned content within a shadow host, we would almost always transform the result into the containing Node::shadowHost(). This effectively prevents hit testing from reaching any content within the shadow DOM, breaking Hover Text and anything else that relies on hit testing. This behavior was introduced with this commit in 2008: https://github.com/WebKit/WebKit/commit/ca5f21d630582a3f99fa65a6c882ec552ec10756#diff-58fcfb084a74fbbe8e6908f1d3bc813ecb43f3fa5729c5ff17451c215be3446e There is no test or explanation justifying this behavior, so this patch removes it, fixing the bug. This patch also refactors a few functions to take references instead of pointers to avoid needless null checks, and renames AccessibilityRenderObject::accessibilityParentForImageMap to associatedAXImage as that is what it actually does. * LayoutTests/accessibility/shadow-dom-hit-test-expected.txt: Added. * LayoutTests/accessibility/shadow-dom-hit-test.html: Added. * LayoutTests/platform/ios/TestExpectations: Enable new test. * LayoutTests/platform/ios/accessibility/shadow-dom-hit-test-expected.txt: Added. * Source/WebCore/accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::associatedAXImage const): (WebCore::AccessibilityRenderObject::documentLinks): (WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest const): (WebCore::AccessibilityRenderObject::accessibilityHitTest const): (WebCore::AccessibilityRenderObject::accessibilityParentForImageMap const): Deleted. (WebCore::shouldUseShadowHostForHitTesting): Deleted. * Source/WebCore/accessibility/AccessibilityRenderObject.h: Canonical link: https://commits.webkit.org/276865@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] b4c7de: AX: textUnderElement for hidden elements targeted ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: b4c7de1fa6230e63a919190ed2639266c350757e https://github.com/WebKit/WebKit/commit/b4c7de1fa6230e63a919190ed2639266c350757e Author: Tyler Wilcock Date: 2024-03-31 (Sun, 31 Mar 2024) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_label-expected.txt M LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_labelledby_hidden_nodes-expected.txt M LayoutTests/platform/gtk/imported/w3c/web-platform-tests/accname/name/comp_label-expected.txt M Source/WebCore/accessibility/AXCoreObject.h M Source/WebCore/accessibility/AXLogger.cpp M Source/WebCore/accessibility/AccessibilityMathMLElement.cpp M Source/WebCore/accessibility/AccessibilityMathMLElement.h M Source/WebCore/accessibility/AccessibilityNodeObject.cpp M Source/WebCore/accessibility/AccessibilityNodeObject.h M Source/WebCore/accessibility/AccessibilityObject.h M Source/WebCore/accessibility/AccessibilityRenderObject.cpp M Source/WebCore/accessibility/AccessibilityRenderObject.h M Source/WebCore/accessibility/atspi/AccessibilityObjectTextAtspi.cpp M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h Log Message: --- AX: textUnderElement for hidden elements targeted by aria-labelledby should expose all subtree text, not just the direct target of aria-labelledby https://bugs.webkit.org/show_bug.cgi?id=271918 rdar://problem/125634439 Reviewed by Chris Fleizach. https://w3c.github.io/accname/#comp_labelledby > The result of LabelledBy Recursion in combination with Hidden Not Referenced > means that user agents MUST include all > nodes in the subtree as part of the accessible name or accessible > description, when the node referenced by aria-labelledby > or aria-describedby is hidden. Prior to this patch, we correctly exposed the text of the children directly underneath DOM hidden nodes targeted by aria-labelledby, but not grandchildren or deeper, which is what the spec requires. This allows us to pass 7 more WPT subtests. This patch also renames AccessibilityTextUnderElementMode to TextUnderElementMode, as the former is very long and implicit considering the type is defined in the Accessibility namespace. * LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_label-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_labelledby_hidden_nodes-expected.txt: * LayoutTests/platform/gtk/imported/w3c/web-platform-tests/accname/name/comp_label-expected.txt: * Source/WebCore/accessibility/AXCoreObject.h: (WebCore::TextUnderElementMode::TextUnderElementMode): (WebCore::AccessibilityTextUnderElementMode::AccessibilityTextUnderElementMode): Deleted. * Source/WebCore/accessibility/AXLogger.cpp: (WebCore::operator<<): * Source/WebCore/accessibility/AccessibilityMathMLElement.cpp: (WebCore::AccessibilityMathMLElement::textUnderElement const): * Source/WebCore/accessibility/AccessibilityMathMLElement.h: * Source/WebCore/accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::visibleText const): (WebCore::shouldUseAccessibilityObjectInnerText): (WebCore::AccessibilityNodeObject::textUnderElement const): (WebCore::AccessibilityNodeObject::title const): (WebCore::accessibleNameForNode): * Source/WebCore/accessibility/AccessibilityNodeObject.h: * Source/WebCore/accessibility/AccessibilityObject.h: * Source/WebCore/accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::textUnderElement const): (WebCore::AccessibilityRenderObject::shouldGetTextFromNode const): * Source/WebCore/accessibility/AccessibilityRenderObject.h: * Source/WebCore/accessibility/atspi/AccessibilityObjectTextAtspi.cpp: (WebCore::AccessibilityObjectAtspi::text const): (WebCore::AccessibilityObject::getLengthForTextRange const): * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp: (WebCore::AXIsolatedObject::textUnderElement const): * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h: Canonical link: https://commits.webkit.org/276864@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 8906cf: AX: Accessibility should not use deprecatedIsSpace...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 8906cfaf11f84fa5e38c678e15741c53b33f307e https://github.com/WebKit/WebKit/commit/8906cfaf11f84fa5e38c678e15741c53b33f307e Author: Tyler Wilcock Date: 2024-03-29 (Fri, 29 Mar 2024) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_text_node-expected.txt M Source/WebCore/accessibility/AccessibilityNodeObject.cpp M Source/WebCore/accessibility/AccessibilityObject.cpp Log Message: --- AX: Accessibility should not use deprecatedIsSpaceOrNewline https://bugs.webkit.org/show_bug.cgi?id=271896 rdar://problem/125621747 Reviewed by Chris Fleizach. Critically, this function does not include handling non-breaking space characters. Fixing this allows us to pass 5 more WPT subtests in comp_text_node.html. * LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_text_node-expected.txt: * Source/WebCore/accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::computeAccessibilityIsIgnored const): (WebCore::AccessibilityNodeObject::textAsLabelFor const): (WebCore::AccessibilityNodeObject::textUnderElement const): (WebCore::accessibleNameForNode): * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::stringForRange const): Canonical link: https://commits.webkit.org/276843@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 188bb9: AX: Cells within a grid should compute Accessibili...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 188bb938577a3d46b464955774828eacc975d17c https://github.com/WebKit/WebKit/commit/188bb938577a3d46b464955774828eacc975d17c Author: Tyler Wilcock Date: 2024-03-28 (Thu, 28 Mar 2024) Changed paths: A LayoutTests/accessibility/aria-table-selection-support-expected.txt A LayoutTests/accessibility/aria-table-selection-support.html M LayoutTests/imported/w3c/web-platform-tests/css/css-display/accessibility/display-contents-role-and-label-expected.txt M LayoutTests/platform/glib/TestExpectations M LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-display/accessibility/display-contents-role-and-label-expected.txt M Source/WebCore/Sources.txt M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/accessibility/AXCoreObject.h M Source/WebCore/accessibility/AXObjectCache.cpp M Source/WebCore/accessibility/AXObjectCache.h R Source/WebCore/accessibility/AccessibilityARIAGrid.cpp R Source/WebCore/accessibility/AccessibilityARIAGrid.h A Source/WebCore/accessibility/AccessibilityARIATable.cpp A Source/WebCore/accessibility/AccessibilityARIATable.h M Source/WebCore/accessibility/AccessibilityObject.h M Source/WebCore/accessibility/AccessibilityTable.cpp M Source/WebCore/accessibility/AccessibilityTable.h M Source/WebCore/accessibility/AccessibilityTableCell.cpp M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h Log Message: --- AX: Cells within a grid should compute AccessibilityRole::GridCell rather than AccessibilityRole::Cell https://bugs.webkit.org/show_bug.cgi?id=271803 rdar://problem/125512886 Reviewed by Chris Fleizach. AccessibilityTableCell::determineAccessibilityRole() now checks whether it is within a grid or a table, computing AccessibilityRole::GridCell or AccessibilityRole::Cell respectively. This patch also fixes a bug where we supported AXSelectedRows and aria-multiselectable for role="table" elements, despite the spec stating we should not do this. A new test, aria-table-selection-support.html, is added to verify the correct behavior. The other significant change in this patch is the renaming of AccessibilityARIAGrid to AccessibilityARIATable. The former name was not accurate, as we also created AccessibilityARIAGrid for role="table" elements. This change allows us to pass 2 more WPT subtests. * LayoutTests/accessibility/aria-table-selection-support-expected.txt: Added. * LayoutTests/accessibility/aria-table-selection-support.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-display/accessibility/display-contents-role-and-label-expected.txt: * LayoutTests/platform/glib/TestExpectations: * LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-display/accessibility/display-contents-role-and-label-expected.txt: * Source/WebCore/Sources.txt: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/accessibility/AXCoreObject.h: * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::nodeHasTableRole): (WebCore::isAccessibilityARIATable): (WebCore::AXObjectCache::createObjectFromRenderer): (WebCore::createFromNode): (WebCore::nodeHasGridRole): Deleted. (WebCore::isAccessibilityARIAGrid): Deleted. * Source/WebCore/accessibility/AXObjectCache.h: * Source/WebCore/accessibility/AccessibilityARIATable.cpp: Renamed from Source/WebCore/accessibility/AccessibilityARIAGrid.cpp. (WebCore::AccessibilityARIATable::AccessibilityARIATable): (WebCore::AccessibilityARIATable::create): (WebCore::AccessibilityARIATable::isMultiSelectable const): * Source/WebCore/accessibility/AccessibilityARIATable.h: Renamed from Source/WebCore/accessibility/AccessibilityARIAGrid.h. * Source/WebCore/accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::isAccessibilityTableColumnInstance const): * Source/WebCore/accessibility/AccessibilityTable.cpp: (WebCore::AccessibilityTable::hasGridAriaRole const): * Source/WebCore/accessibility/AccessibilityTable.h: * Source/WebCore/accessibility/AccessibilityTableCell.cpp: (WebCore::AccessibilityTableCell::computeAccessibilityIsIgnored const): (WebCore::AccessibilityTableCell::determineAccessibilityRole): * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h: Canonical link: https://commits.webkit.org/276800@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] a10549: AX: AccessibilityTableCell::parentTable() can erro...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: a10549d8d1430a2e195f68e6b035dc6f695adaaa https://github.com/WebKit/WebKit/commit/a10549d8d1430a2e195f68e6b035dc6f695adaaa Author: Tyler Wilcock Date: 2024-03-27 (Wed, 27 Mar 2024) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/css/css-display/accessibility/display-contents-role-and-label-expected.txt M LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-display/accessibility/display-contents-role-and-label-expected.txt M Source/WebCore/accessibility/AccessibilityTableCell.cpp Log Message: --- AX: AccessibilityTableCell::parentTable() can erroneously return nullptr when inside table with non-default CSS display https://bugs.webkit.org/show_bug.cgi?id=271763 rdar://problem/125489146 Reviewed by Chris Fleizach. Prior to this patch, if AccessibilityTableCell was created with a RenderTableCell, it relies solely on the render tree to get the parent table (RenderTableCell::table()). This can fail if the table has a non-default CSS display value, e.g. display:flex, in turn causing AccessibilityTableCell::parentTable to return nullptr, despite the fact that it actually does have a table role ancestor. In turn, this can cause the cells to fail to be exposed with a role of table cell, breaking the table structure for ATs. With this patch, AccessibilityTableCell::parentTable is now more resilient, relying on an AX ancestry walk to find a table / grid ancestor if the render tree mechanism fails. This allows us to pass 5 more WPT subtests in display-contents-role-and-label.html. * LayoutTests/imported/w3c/web-platform-tests/css/css-display/accessibility/display-contents-role-and-label-expected.txt: * LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-display/accessibility/display-contents-role-and-label-expected.txt: * Source/WebCore/accessibility/AccessibilityTableCell.cpp: (WebCore::AccessibilityTableCell::parentTable const): Canonical link: https://commits.webkit.org/276757@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 652ad7: AX: The accname for summary elements should use on...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 652ad7d7e57a6537462ca14b93eab37db5eab819 https://github.com/WebKit/WebKit/commit/652ad7d7e57a6537462ca14b93eab37db5eab819 Author: Tyler Wilcock Date: 2024-03-18 (Mon, 18 Mar 2024) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_tooltip-expected.txt M LayoutTests/platform/glib/imported/w3c/web-platform-tests/accname/name/comp_tooltip-expected.txt M LayoutTests/platform/ios/imported/w3c/web-platform-tests/accname/name/comp_tooltip-expected.txt M Source/WebCore/accessibility/AccessibilityObject.cpp Log Message: --- AX: The accname for summary elements should use on subtree text over the title attribute https://bugs.webkit.org/show_bug.cgi?id=271168 rdar://problem/124958776 Reviewed by Chris Fleizach. This is defined in the spec: https://w3c.github.io/html-aam/#summary-element-accessible-name-computation * LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_tooltip-expected.txt: * LayoutTests/platform/glib/imported/w3c/web-platform-tests/accname/name/comp_tooltip-expected.txt: * LayoutTests/platform/ios/imported/w3c/web-platform-tests/accname/name/comp_tooltip-expected.txt: * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::dependsOnTextUnderElement const): Canonical link: https://commits.webkit.org/276323@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 292ff7: Crash under AccessibilityObject::accessibilitySecu...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 292ff7293a5c8f04400a7a37665a8ad1a02e9b5d https://github.com/WebKit/WebKit/commit/292ff7293a5c8f04400a7a37665a8ad1a02e9b5d Author: Tyler Wilcock Date: 2024-03-18 (Mon, 18 Mar 2024) Changed paths: M Source/WebCore/accessibility/AXCoreObject.h M Source/WebCore/accessibility/AccessibilityObject.h M Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm M Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm Log Message: --- Crash under AccessibilityObject::accessibilitySecureFieldLength() https://bugs.webkit.org/show_bug.cgi?id=271158 rdar://122375537 Reviewed by Chris Dumez. This patch removes this unchecked downcast and generally simplifies the function. It has also been changed to return an unsigned, as it cannot possibly return a negative value, and furthermore, HTMLInput::value() returns a String, and the length() of Strings is unsigned. * Source/WebCore/accessibility/AXCoreObject.h: * Source/WebCore/accessibility/AccessibilityObject.h: * Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm: (WebCore::AccessibilityObject::accessibilitySecureFieldLength): * Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper accessibilityValue]): Canonical link: https://commits.webkit.org/276320@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 8d88c7: AX: Fix computed role for elements: dd, details, d...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 8d88c739fe87c6cca02f79db0fed7fa63e3c4b43 https://github.com/WebKit/WebKit/commit/8d88c739fe87c6cca02f79db0fed7fa63e3c4b43 Author: Tyler Wilcock Date: 2024-03-16 (Sat, 16 Mar 2024) Changed paths: M LayoutTests/accessibility/display-contents/element-roles-expected.txt M LayoutTests/imported/w3c/web-platform-tests/html-aam/roles-expected.txt M LayoutTests/platform/glib/accessibility/aria-visible-element-roles-expected.txt M LayoutTests/platform/glib/accessibility/display-contents/element-roles-expected.txt M LayoutTests/platform/glib/accessibility/lists-expected.txt M LayoutTests/platform/ios/imported/w3c/web-platform-tests/html-aam/roles-expected.txt M LayoutTests/platform/mac-wk1/accessibility/aria-visible-element-roles-expected.txt M LayoutTests/platform/mac-wk1/accessibility/roles-exposed-expected.txt M LayoutTests/platform/mac-wk2/accessibility/aria-visible-element-roles-expected.txt M LayoutTests/platform/mac-wk2/accessibility/roles-exposed-expected.txt M LayoutTests/platform/wpe/accessibility/aria-visible-element-roles-expected.txt M Source/WebCore/accessibility/AccessibilityNodeObject.cpp M Source/WebCore/accessibility/AccessibilityObject.cpp Log Message: --- AX: Fix computed role for elements: dd, details, dt, em, hgroup, option, s, strong https://bugs.webkit.org/show_bug.cgi?id=271012 rdar://problem/124641956 Reviewed by Chris Fleizach. This allows us to pass 8 more WPT subtests. * LayoutTests/accessibility/display-contents/element-roles-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/html-aam/roles-expected.txt: * LayoutTests/platform/glib/accessibility/aria-visible-element-roles-expected.txt: * LayoutTests/platform/glib/accessibility/display-contents/element-roles-expected.txt: * LayoutTests/platform/glib/accessibility/lists-expected.txt: * LayoutTests/platform/ios/imported/w3c/web-platform-tests/html-aam/roles-expected.txt: * LayoutTests/platform/mac-wk1/accessibility/aria-visible-element-roles-expected.txt: * LayoutTests/platform/mac-wk1/accessibility/roles-exposed-expected.txt: * LayoutTests/platform/mac-wk2/accessibility/aria-visible-element-roles-expected.txt: * LayoutTests/platform/mac-wk2/accessibility/roles-exposed-expected.txt: * Source/WebCore/accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::determineAccessibilityRoleFromNode const): * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::initializeRoleMap): Canonical link: https://commits.webkit.org/276240@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] bc6637: AX: VoiceOver doesn't speak the value of the merid...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: bc6637d9eddb9998679faae94a282db353bcec00 https://github.com/WebKit/WebKit/commit/bc6637d9eddb9998679faae94a282db353bcec00 Author: Tyler Wilcock Date: 2024-03-15 (Fri, 15 Mar 2024) Changed paths: A LayoutTests/accessibility/datetime/time-input-meridiem-expected.txt A LayoutTests/accessibility/datetime/time-input-meridiem.html M Source/WebCore/html/shadow/DateTimeFieldElements.cpp M Source/WebCore/html/shadow/DateTimeFieldElements.h M Source/WebCore/html/shadow/DateTimeSymbolicFieldElement.h M Source/WebCore/platform/LocalizedStrings.cpp M Source/WebCore/platform/LocalizedStrings.h Log Message: --- AX: VoiceOver doesn't speak the value of the meridiem component in time controls. https://bugs.webkit.org/show_bug.cgi?id=270243 rdar://problem/123781149 Reviewed by Chris Fleizach. This patch makes the meridiem field a spinbutton and adds the appropriate ARIA attributes so assistive technologies announce its value. * LayoutTests/accessibility/datetime/time-input-meridiem-expected.txt: Added. * LayoutTests/accessibility/datetime/time-input-meridiem.html: Added. * Source/WebCore/html/shadow/DateTimeFieldElements.cpp: (WebCore::DateTimeMeridiemFieldElement::create): (WebCore::DateTimeMeridiemFieldElement::updateAriaValueAttributes): (WebCore::DateTimeMeridiemFieldElement::setValueAsDate): (WebCore::DateTimeMeridiemFieldElement::setValueAsInteger): (WebCore::DateTimeMeridiemFieldElement::setEmptyValue): * Source/WebCore/html/shadow/DateTimeFieldElements.h: * Source/WebCore/html/shadow/DateTimeSymbolicFieldElement.h: * Source/WebCore/platform/LocalizedStrings.cpp: (WebCore::AXTimeFieldMeridiemText): Deleted. * Source/WebCore/platform/LocalizedStrings.h: Canonical link: https://commits.webkit.org/276195@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 299896: AX: WebAccessibilityObjectWrapperMac and AXIsolate...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 299896402ebb2cd20dbac0f554a7ca6f2118bfc5 https://github.com/WebKit/WebKit/commit/299896402ebb2cd20dbac0f554a7ca6f2118bfc5 Author: Tyler Wilcock Date: 2024-03-13 (Wed, 13 Mar 2024) Changed paths: M Source/WebCore/accessibility/AXCoreObject.h M Source/WebCore/accessibility/AccessibilityObject.cpp M Source/WebCore/accessibility/AccessibilityObject.h 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.h M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm Log Message: --- AX: WebAccessibilityObjectWrapperMac and AXIsolatedTree do many unnecessary isMainThread() calls https://bugs.webkit.org/show_bug.cgi?id=270866 rdar://problem/124468129 Reviewed by Andres Gonzalez. Many of our hottest codepaths (various wrapper functions, AXIsolatedTree::{objectForID, applyPendingChanges}) call isMainThread() either completely unnecessarily (i.e. in the case of the AXIsolatedTree functions), or more than necessary. These show up in samples. This patch downgrades the isMainThread() checks in AXIsolatedTree::{objectForID, applyPendingChanges} to ASSERT, as no codepath exists for these to be called on the main-thread. This patch also removes unnecessary calls to axBackingObject in WebAccessibilityObjectWrapperMac and instead passes a single RefPtr object around (which can also be more correct, i.e. https://bugs.webkit.org/show_bug.cgi?id=267786). Furthermore, -[WebAccessibilityObjectWrapper accessibilityPresenterProcessIdentifier] now directly calls presentingApplicationPID(), rather than getting axBackingObject first and calling presentingApplicationPID() on that. * Source/WebCore/accessibility/AXCoreObject.h: * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::processID const): Deleted. * Source/WebCore/accessibility/AccessibilityObject.h: * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp: (WebCore::AXIsolatedObject::detachRemoteParts): (WebCore::AXIsolatedObject::updateBackingStore): * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h: * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp: (WebCore::AXIsolatedTree::objectForID const): (WebCore::AXIsolatedTree::applyPendingChanges): * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h: (WebCore::AXIsolatedTree::processID const): Deleted. * Source/WebCore/accessibility/mac/AXObjectCacheMac.mm: (WebCore::AXPostNotificationWithUserInfo): * Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.h: * Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper _additionalAccessibilityAttributeNames:]): (-[WebAccessibilityObjectWrapper ALLOW_DEPRECATED_IMPLEMENTATIONS_END]): (-[WebAccessibilityObjectWrapper _associatedPluginParent]): (-[WebAccessibilityObjectWrapper _associatedPluginParentWith:]): (-[WebAccessibilityObjectWrapper _isEmptyGroup:]): (-[WebAccessibilityObjectWrapper subrole]): (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]): (-[WebAccessibilityObjectWrapper accessibilityPresenterProcessIdentifier]): (-[WebAccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]): (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]): Deleted. (-[WebAccessibilityObjectWrapper associatedPluginParent]): Deleted. (-[WebAccessibilityObjectWrapper isEmptyGroup]): Deleted. Canonical link: https://commits.webkit.org/276073@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] c7fc60: AX: frame-disconnect-textmarker-cache-crash.html f...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c7fc60bce0fc160d84129837d58712340e06a165 https://github.com/WebKit/WebKit/commit/c7fc60bce0fc160d84129837d58712340e06a165 Author: Tyler Wilcock Date: 2024-03-12 (Tue, 12 Mar 2024) Changed paths: M LayoutTests/accessibility-isolated-tree/TestExpectations Log Message: --- AX: frame-disconnect-textmarker-cache-crash.html fails in ITM after https://commits.webkit.org/275791@main https://bugs.webkit.org/show_bug.cgi?id=270853 rdar://problem/124452605 Unreviewed test gardening. * LayoutTests/accessibility-isolated-tree/TestExpectations: Mark test as failing for now. Canonical link: https://commits.webkit.org/275992@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 8f8c86: Element::rendererIsEverNeeded() only has a default...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 8f8c86d4cb27f37d847f9e584c4cde775ce26bae https://github.com/WebKit/WebKit/commit/8f8c86d4cb27f37d847f9e584c4cde775ce26bae Author: Tyler Wilcock Date: 2024-03-09 (Sat, 09 Mar 2024) Changed paths: M Source/WebCore/dom/Element.cpp M Source/WebCore/dom/Element.h M Source/WebCore/html/HTMLElement.cpp M Source/WebCore/html/HTMLElement.h M Source/WebCore/style/StyleTreeResolver.cpp Log Message: --- Element::rendererIsEverNeeded() only has a default, hardcoded true implementation https://bugs.webkit.org/show_bug.cgi?id=270726 rdar://124307290 Reviewed by Aditya Keerthi. After https://commits.webkit.org/274917@main, only the default implementation of Element::rendererIsEverNeeded() is left, making the function useless. This patch removes it. * Source/WebCore/dom/Element.cpp: (WebCore::Element::rendererIsNeeded): * Source/WebCore/dom/Element.h: (WebCore::Element::rendererIsEverNeeded): Deleted. * Source/WebCore/html/HTMLElement.cpp: (WebCore::HTMLElement::rendererIsEverNeeded): Deleted. * Source/WebCore/html/HTMLElement.h: * Source/WebCore/style/StyleTreeResolver.cpp: (WebCore::Style::TreeResolver::resolveElement): Canonical link: https://commits.webkit.org/275876@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] c69e4c: AX: AXObjectCache::performDeferredCacheUpdate can ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c69e4c0caaf5368db791652eee3a057ed2751144 https://github.com/WebKit/WebKit/commit/c69e4c0caaf5368db791652eee3a057ed2751144 Author: Tyler Wilcock Date: 2024-03-07 (Thu, 07 Mar 2024) Changed paths: A LayoutTests/accessibility/iframe-tree-update-with-dirty-layout-expected.txt A LayoutTests/accessibility/iframe-tree-update-with-dirty-layout.html M LayoutTests/platform/glib/TestExpectations M LayoutTests/platform/ios/TestExpectations A LayoutTests/platform/ios/accessibility/iframe-tree-update-with-dirty-layout-expected.txt A LayoutTests/platform/mac-wk1/accessibility/iframe-tree-update-with-dirty-layout-expected.txt M Source/WebCore/accessibility/AXObjectCache.cpp M Source/WebCore/accessibility/AXObjectCache.h M Source/WebCore/testing/Internals.cpp M Source/WebCore/testing/Internals.h M Source/WebCore/testing/Internals.idl Log Message: --- AX: AXObjectCache::performDeferredCacheUpdate can run with dirty sub-frame layout, causing incorrect tree updates https://bugs.webkit.org/show_bug.cgi?id=270593 rdar://103616732 Reviewed by Andres Gonzalez. In https://bugs.webkit.org/show_bug.cgi?id=268239, we made AXObjectCache::performDeferredCacheUpdate detect when layout is dirty, and either wait another layout cycle to trigger a cache update, or force it if necessary. This is important because processing cache updates with dirty layout can cause incorrect behavior, like objects being ignored incorrectly. This change was effective, but did not handle the case where a sub-frame had dirty layout, meaning we can still run into this bug. This patch addresses the issue by forcing all sub-frames to lay out if necessary. * LayoutTests/platform/glib/TestExpectations: Skip new test. * LayoutTests/platform/ios/TestExpectations: Enable new test. * LayoutTests/platform/ios/accessibility/iframe-tree-update-with-dirty-layout-expected.txt: Added. * LayoutTests/platform/mac-wk1/accessibility/iframe-tree-update-with-dirty-layout-expected.txt: Added. * LayoutTests/accessibility/iframe-tree-update-with-dirty-layout-expected.txt: Added. * LayoutTests/accessibility/iframe-tree-update-with-dirty-layout.html: Added. * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::performDeferredCacheUpdate): * Source/WebCore/accessibility/AXObjectCache.h: * Source/WebCore/testing/Internals.cpp: (WebCore::Internals::forceAXObjectCacheUpdate const): * Source/WebCore/testing/Internals.h: * Source/WebCore/testing/Internals.idl: Canonical link: https://commits.webkit.org/275791@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 6e896e: AX: AXPropertyName::{ColumnIndexRange, RowIndexRan...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 6e896e7e4003b348fe2ec155f70b986d057d099d https://github.com/WebKit/WebKit/commit/6e896e7e4003b348fe2ec155f70b986d057d099d Author: Tyler Wilcock Date: 2024-03-05 (Tue, 05 Mar 2024) Changed paths: A LayoutTests/accessibility/dynamic-aria-hidden-cell-expected.txt A LayoutTests/accessibility/dynamic-aria-hidden-cell.html M Source/WebCore/accessibility/AXLogger.cpp M Source/WebCore/accessibility/AXObjectCache.cpp M Source/WebCore/accessibility/AXObjectCache.h M Source/WebCore/accessibility/AccessibilityObject.cpp M Source/WebCore/accessibility/AccessibilityRenderObject.cpp M Source/WebCore/accessibility/AccessibilityTable.cpp M Source/WebCore/accessibility/AccessibilityTableCell.cpp M Source/WebCore/accessibility/AccessibilityTableCell.h Log Message: --- AX: AXPropertyName::{ColumnIndexRange, RowIndexRange} properties are never updated https://bugs.webkit.org/show_bug.cgi?id=270496 rdar://problem/124046227 Reviewed by Chris Fleizach. This can cause ATs to miss table content if they use the rowIndexRange and columnIndexRange APIs as inputs to the cellForColumnAndRow API. Fix this by posting a notification when table cells modify their row / column index. This patch also adds a new postNotification overload to avoid unnecessary null-checking and verbosity of passing a hardcoded `nullptr Document*` argument to postNotification(AccessibilityObject*, Document*, AXNotification, PostTarget = PostTarget::Element). Existing notifications AXColumnIndexChanged and AXRowIndexChanged are repurposed to report this dynamic change, and two new notifications (AXARIAColumnIndexChanged and AXARIARowIndexChanged) are added to support what the former two notifications used to do (as they were only fired when aria-colindex and aria-rowindex changed). * LayoutTests/accessibility/dynamic-aria-hidden-cell-expected.txt: Added. * LayoutTests/accessibility/dynamic-aria-hidden-cell.html: Added. * Source/WebCore/accessibility/AXLogger.cpp: (WebCore::operator<<): * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::valueChanged): (WebCore::AXObjectCache::columnIndexChanged): (WebCore::AXObjectCache::rowIndexChanged): (WebCore::AXObjectCache::postNotification): (WebCore::AXObjectCache::onTextSecurityChanged): (WebCore::AXObjectCache::onTitleChange): (WebCore::AXObjectCache::onValidityChange): (WebCore::AXObjectCache::handleRoleChanged): Take a reference rather than a pointer as all callsites have access to a reference. (WebCore::AXObjectCache::handleAttributeChange): (WebCore::AXObjectCache::updateIsolatedTree): (WebCore::AXObjectCache::selectedTextRangeTimerFired): (WebCore::AXObjectCache::onWidgetVisibilityChanged): * Source/WebCore/accessibility/AXObjectCache.h: * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::updateRole): * Source/WebCore/accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::updateRoleAfterChildrenCreation): * Source/WebCore/accessibility/AccessibilityTable.cpp: (WebCore::AccessibilityTable::recomputeIsExposable): (WebCore::AccessibilityTable::columnCount): * Source/WebCore/accessibility/AccessibilityTableCell.cpp: (WebCore::AccessibilityTableCell::setRowIndex): (WebCore::AccessibilityTableCell::setColumnIndex): * Source/WebCore/accessibility/AccessibilityTableCell.h: (WebCore::AccessibilityTableCell::setRowIndex): Deleted. (WebCore::AccessibilityTableCell::setColumnIndex): Deleted. Canonical link: https://commits.webkit.org/275710@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] c0414c: AX: AccessibilityText is not updated when static t...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c0414c435ce6f20b01a4f4e0e7abc657220615fb https://github.com/WebKit/WebKit/commit/c0414c435ce6f20b01a4f4e0e7abc657220615fb Author: Tyler Wilcock Date: 2024-03-05 (Tue, 05 Mar 2024) Changed paths: A LayoutTests/accessibility/dynamic-text-expected.txt A LayoutTests/accessibility/dynamic-text.html A LayoutTests/platform/glib/accessibility/dynamic-text-expected.txt M LayoutTests/platform/ios/TestExpectations A LayoutTests/platform/ios/accessibility/dynamic-text-expected.txt M Source/WebCore/accessibility/AXCoreObject.h M Source/WebCore/accessibility/AXLogger.cpp M Source/WebCore/accessibility/AXObjectCache.cpp M Source/WebCore/accessibility/AXObjectCache.h M Source/WebCore/accessibility/AccessibilityNodeObject.cpp M Source/WebCore/accessibility/AccessibilityObject.cpp M Source/WebCore/accessibility/AccessibilityObject.h M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h Log Message: --- AX: AccessibilityText is not updated when static text descendant changes https://bugs.webkit.org/show_bug.cgi?id=270356 rdar://123741292 Reviewed by Chris Fleizach. Add a new TextUnderElementChanged notification to represent this scenario so we can make precise updates to the isolated tree. * LayoutTests/accessibility/dynamic-text-expected.txt: Added. * LayoutTests/accessibility/dynamic-text.html: Added. * LayoutTests/platform/ios/accessibility/dynamic-text-expected.txt: Added. * LayoutTests/platform/ios/TestExpectations: Enable new test. * Source/WebCore/accessibility/AXCoreObject.h: * Source/WebCore/accessibility/AXLogger.cpp: (WebCore::operator<<): * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::handleTextChanged): (WebCore::AXObjectCache::updateIsolatedTree): * Source/WebCore/accessibility/AXObjectCache.h: * Source/WebCore/accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::visibleText const): * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::dependsOnTextUnderElement const): * Source/WebCore/accessibility/AccessibilityObject.h: * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp: (WebCore::AXIsolatedTree::updateNodeProperties): (WebCore::AXIsolatedTree::updateDependentProperties): * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h: (WebCore::AXIsolatedTree::updateNodeProperty): Canonical link: https://commits.webkit.org/275693@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 2120e7: AX: Import wai-aria, accname, html-aam, svg-aam, a...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 2120e75d6d63fe5af1fe2af5b75c4422879aa01f https://github.com/WebKit/WebKit/commit/2120e75d6d63fe5af1fe2af5b75c4422879aa01f Author: Tyler Wilcock Date: 2024-03-02 (Sat, 02 Mar 2024) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_host_language_label-expected.txt M LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_host_language_label.html M LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_label-expected.txt M LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_label.html A LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_labelledby_hidden_nodes-expected.txt A LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_labelledby_hidden_nodes.html M LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_name_from_content-expected.txt M LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_name_from_content.html M LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_text_node-expected.txt M LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_tooltip-expected.txt M LayoutTests/imported/w3c/web-platform-tests/accname/name/comp_tooltip.html M LayoutTests/imported/w3c/web-platform-tests/accname/name/w3c-import.log A LayoutTests/imported/w3c/web-platform-tests/css/css-display/accessibility/display-contents-role-and-label-expected.txt A LayoutTests/imported/w3c/web-platform-tests/css/css-display/accessibility/display-contents-role-and-label.html A LayoutTests/imported/w3c/web-platform-tests/css/css-display/accessibility/w3c-import.log R LayoutTests/imported/w3c/web-platform-tests/html-aam/META.yaml A LayoutTests/imported/w3c/web-platform-tests/html-aam/META.yml M LayoutTests/imported/w3c/web-platform-tests/html-aam/fragile/area-role.html A LayoutTests/imported/w3c/web-platform-tests/html-aam/names-expected.txt A LayoutTests/imported/w3c/web-platform-tests/html-aam/names.html M LayoutTests/imported/w3c/web-platform-tests/html-aam/roles-contextual-expected.txt M LayoutTests/imported/w3c/web-platform-tests/html-aam/roles-contextual.html M LayoutTests/imported/w3c/web-platform-tests/html-aam/roles.html M LayoutTests/imported/w3c/web-platform-tests/html-aam/w3c-import.log M LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/ReadMe.md A LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/button-roles-expected.txt A LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/button-roles.html A LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/contextual-roles-expected.txt A LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/contextual-roles.html A LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/generic-roles-expected.txt A LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/generic-roles.html M LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/grid-roles-expected.txt M LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/grid-roles.html M LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/invalid-roles-expected.txt M LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/invalid-roles.html M LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/list-roles-expected.txt M LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/list-roles.html M LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/menu-roles-expected.txt M LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/menu-roles.html M LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/region-roles.html M LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/role_none_conflict_resolution-expected.txt M LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/role_none_conflict_resolution.html M LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/synonym-roles-expected.txt M LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/synonym-roles.html M LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/tab-roles-expected.txt M LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/tab-roles.html A LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/table-roles-expected.txt A LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/table-roles.html A LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/tree-roles-expected.txt A LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/tree-roles.html M LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/w3c-import.log M LayoutTests/imported/w3c/web-platform-tests/wai-aria/scripts/aria-utils.js A LayoutTests/platform/glib/imported/w3c/web-platform-tests/accname/name/comp_tooltip-expected.txt A LayoutTests/platform/glib/imported/w3c/web
[webkit-changes] [WebKit/WebKit] 263042: Implement ariaBrailleLabel and ariaBrailleRoleDesc...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 263042a5d0c6b67380c99c44f2da65f35fdfb886 https://github.com/WebKit/WebKit/commit/263042a5d0c6b67380c99c44f2da65f35fdfb886 Author: Tyler Wilcock Date: 2024-03-01 (Fri, 01 Mar 2024) Changed paths: M LayoutTests/accessibility/ARIA-reflection-expected.txt M LayoutTests/accessibility/ARIA-reflection.html A LayoutTests/accessibility/aria-braillelabel-expected.txt A LayoutTests/accessibility/aria-braillelabel.html A LayoutTests/accessibility/aria-brailleroledescription-expected.txt A LayoutTests/accessibility/aria-brailleroledescription.html M LayoutTests/platform/glib/TestExpectations M LayoutTests/platform/ios/TestExpectations M LayoutTests/platform/mac-wk1/TestExpectations M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml M Source/WebCore/accessibility/AXLogger.cpp M Source/WebCore/accessibility/AXObjectCache.cpp M Source/WebCore/accessibility/AXObjectCache.h M Source/WebCore/accessibility/AriaAttributes.idl M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp M Source/WebCore/dom/ElementInternals.idl 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.mm M Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm Log Message: --- Implement ariaBrailleLabel and ariaBrailleRoleDescription element reflection properties https://bugs.webkit.org/show_bug.cgi?id=270387 rdar://problem/123926949 Reviewed by Chris Fleizach. This patch also removes the DefaultARIAForCustomElementsEnabled feature entirely, as it has been enabled by default for a year, and fixes a bug where AXPropertyName::{BrailleLabel, BrailleRoleDescription} were not updated after dynamic changes. * LayoutTests/accessibility/aria-braillelabel-expected.txt: Added. * LayoutTests/accessibility/aria-braillelabel.html: Added. * LayoutTests/accessibility/aria-brailleroledescription-expected.txt: Added. * LayoutTests/accessibility/aria-brailleroledescription.html: Added. * LayoutTests/accessibility/ARIA-reflection-expected.txt: * LayoutTests/accessibility/ARIA-reflection.html: * LayoutTests/platform/ios/TestExpectations: Enable new tests. * LayoutTests/platform/glib/TestExpectations: * LayoutTests/platform/mac-wk1/TestExpectations: Skip new tests. * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml: Remove DefaultARIAForCustomElementsEnabled. * Source/WebCore/accessibility/AXLogger.cpp: (WebCore::operator<<): * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::handleAttributeChange): (WebCore::AXObjectCache::updateIsolatedTree): * Source/WebCore/accessibility/AXObjectCache.h: * Source/WebCore/accessibility/AriaAttributes.idl: * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp: (WebCore::AXIsolatedTree::updateNodeProperties): * Source/WebCore/dom/ElementInternals.idl: * Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::brailleLabel const): (WTR::AccessibilityUIElement::brailleRoleDescription const): * Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h: * Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl: * Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm: (WTR::AccessibilityUIElement::brailleLabel const): (WTR::AccessibilityUIElement::brailleRoleDescription const): * Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::brailleLabel const): (WTR::AccessibilityUIElement::brailleRoleDescription const): Canonical link: https://commits.webkit.org/275591@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 0a503c: AX: Parse "strong" and "emphasis" ARIA roles into ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 0a503cce2c6efd211ed834279893a9c616025049 https://github.com/WebKit/WebKit/commit/0a503cce2c6efd211ed834279893a9c616025049 Author: Tyler Wilcock Date: 2024-03-01 (Fri, 01 Mar 2024) Changed paths: M LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/roles-expected.txt M Source/WebCore/accessibility/AXCoreObject.h M Source/WebCore/accessibility/AccessibilityObject.cpp M Source/WebCore/accessibility/atspi/AccessibilityObjectAtspi.cpp M Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm M Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm Log Message: --- AX: Parse "strong" and "emphasis" ARIA roles into internal role representation https://bugs.webkit.org/show_bug.cgi?id=270369 rdar://problem/123912792 Reviewed by Chris Fleizach. This patch parses the "strong" and "emphasis" ARIA roles into a new internal AccessibilityRole interpretation. Note that this patch does not actually hook them up into platform representations for AT consumption (we'll need to decide the best way to do that in a future patch). * LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/roles-expected.txt: Pass two more testcases. * Source/WebCore/accessibility/AXCoreObject.h: (WebCore::accessibilityRoleToString): * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::initializeRoleMap): * Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]): * Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm: (WebCore::Accessibility::createPlatformRoleMap): Canonical link: https://commits.webkit.org/275587@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 39028c: AX: Implement support for serving kAXLineForIndexP...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 39028c1e49994663eaee8d690c81f497748bef60 https://github.com/WebKit/WebKit/commit/39028c1e49994663eaee8d690c81f497748bef60 Author: Tyler Wilcock Date: 2024-02-26 (Mon, 26 Feb 2024) Changed paths: A LayoutTests/accessibility/ax-thread-text-apis/textarea-line-for-index-expected.txt A LayoutTests/accessibility/ax-thread-text-apis/textarea-line-for-index.html M Source/WebCore/accessibility/AXTextMarker.cpp M Source/WebCore/accessibility/AXTextMarker.h M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp Log Message: --- AX: Implement support for serving kAXLineForIndexParameterizedAttribute off the main-thread https://bugs.webkit.org/show_bug.cgi?id=269919 rdar://problem/123445635 Reviewed by Chris Fleizach. Implement support for serving kAXLineForIndexParameterizedAttribute off the main-thread and port test textarea-line-for-index.html to verify correct behavior. * LayoutTests/accessibility/ax-thread-text-apis/textarea-line-for-index-expected.txt: Added. * LayoutTests/accessibility/ax-thread-text-apis/textarea-line-for-index.html: Added. * Source/WebCore/accessibility/AXTextMarker.cpp: (WebCore::AXTextMarker::lineNumberForIndex const): * Source/WebCore/accessibility/AXTextMarker.h: * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp: (WebCore::AXIsolatedObject::doAXLineForIndex): Canonical link: https://commits.webkit.org/275325@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] e19b5b: AX: Implement support for serving AXRangeForLine o...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: e19b5bf8775e72c670c07b8bccba4f74b2fb9057 https://github.com/WebKit/WebKit/commit/e19b5bf8775e72c670c07b8bccba4f74b2fb9057 Author: Tyler Wilcock Date: 2024-02-20 (Tue, 20 Feb 2024) Changed paths: A LayoutTests/accessibility/ax-thread-text-apis/range-for-line-index-expected.txt A LayoutTests/accessibility/ax-thread-text-apis/range-for-line-index.html M Source/WebCore/accessibility/AXTextMarker.cpp M Source/WebCore/accessibility/AXTextMarker.h M Source/WebCore/accessibility/AccessibilityRenderObject.cpp M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h M Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm Log Message: --- AX: Implement support for serving AXRangeForLine off the main-thread https://bugs.webkit.org/show_bug.cgi?id=269752 rdar://problem/12326 Reviewed by Andres Gonzalez. This patch implements off-main-thread support for AXRangeForLine. Test range-for-line-index.html was ported to the ax-thread-text-apis to verify we are following the correct behavior. This test exposed a bug in this configuration: the text inside input elements is not part of the accessibility tree, and thus was not included in any text run traversal and processing. This is rectified by changing AccessibilityRenderObject::textRuns() to gather this text. This is significant because it modifies an assumption that the code previously had: any object that held text runs was a leaf (had no children). This is now not true for inputs, which have one child (their inner contenteditable in the UA shadow tree). As such, AXTextMarker::isInTextLeaf has been renamed to AXTextMarker::isInTextRun, and AXTextMarker::toTextLeafMarker has been renamed to AXTextMarker::toTextRunMarker. * LayoutTests/accessibility/ax-thread-text-apis/range-for-line-index-expected.txt: Added. * LayoutTests/accessibility/ax-thread-text-apis/range-for-line-index.html: Added. * Source/WebCore/accessibility/AXTextMarker.cpp: (WebCore::AXTextMarker::lineID const): (WebCore::AXTextMarker::lineIndex const): (WebCore::AXTextMarker::rangeForLine const): (WebCore::AXTextMarker::offsetFromRoot const): (WebCore::AXTextMarker::nextMarkerFromOffset const): (WebCore::AXTextMarker::findLastBefore const): (WebCore::AXTextMarkerRange::toString const): (WebCore::AXTextMarker::findMarker const): (WebCore::AXTextMarker::toTextRunMarker const): (WebCore::AXTextMarker::isInTextRun const): (WebCore::AXTextMarker::toTextLeafMarker const): Deleted. (WebCore::AXTextMarker::isInTextLeaf const): Deleted. * Source/WebCore/accessibility/AXTextMarker.h: (WebCore::AXTextMarker::previousLineStart const): (WebCore::AXTextMarker::nextLineEnd const): * Source/WebCore/accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::textRuns): * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp: (WebCore::AXIsolatedObject::sibling const): (WebCore::AXIsolatedObject::siblingOrParent const): (WebCore::AXIsolatedObject::doAXRangeForLine const): * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h: * Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm: (WebCore::AXIsolatedObject::textMarkerRange const): Canonical link: https://commits.webkit.org/275050@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 6d542b: AX: AccessibilitySVGElement::description() is miss...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 6d542b7a2a8331c74330f37adbefe78f728a0fc1 https://github.com/WebKit/WebKit/commit/6d542b7a2a8331c74330f37adbefe78f728a0fc1 Author: Tyler Wilcock Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M Source/WebCore/accessibility/AccessibilitySVGElement.cpp Log Message: --- AX: AccessibilitySVGElement::description() is missing several null-checks, causing crashes https://bugs.webkit.org/show_bug.cgi?id=269530 rdar://123016231 Reviewed by Chris Fleizach. * Source/WebCore/accessibility/AccessibilitySVGElement.cpp: (WebCore::AccessibilitySVGElement::description const): Canonical link: https://commits.webkit.org/274934@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] c45853: AX: Implement support for serving AXLineForTextMar...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c458535c6667f24c08c528f7b73847e76ed62458 https://github.com/WebKit/WebKit/commit/c458535c6667f24c08c528f7b73847e76ed62458 Author: Tyler Wilcock Date: 2024-02-15 (Thu, 15 Feb 2024) Changed paths: A LayoutTests/accessibility/ax-thread-text-apis/line-index-for-textmarker-expected.txt A LayoutTests/accessibility/ax-thread-text-apis/line-index-for-textmarker.html M Source/WebCore/accessibility/AXTextMarker.cpp M Source/WebCore/accessibility/AXTextMarker.h M Source/WebCore/accessibility/AXTextRun.cpp M Source/WebCore/accessibility/AXTextRun.h M Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm Log Message: --- AX: Implement support for serving AXLineForTextMarkerAttribute off the main-thread https://bugs.webkit.org/show_bug.cgi?id=269411 rdar://problem/122977523 Reviewed by Chris Fleizach and Andres Gonzalez. Beyond implementing support for this attribute, this patch also fixes several bugs discovered while trying to make new test line-index-for-textmarker.html pass: - Calling nextLineEnd() or previousLineStart() on a text marker at the very end or start of a line would return the same TextMarker back, which is not what the API should do (it should return the start / end of the next / previous line). - AXTextMarker::findMarker(AXDirection, std::optional stopAtID) failed to recursively propagate the stopAtID parameter when called on a non-text-leaf marker. - AXTextMarker::findMarker(AXDirection, std::optional) failed to traverse the last run in a multi-run text-leaf because hasMoreTextInCurrentRun() compared the offset() to the length of the current run, which doesn't make sense (if the offset is pointing into the last run, it will always be greater than the length of that run because it includes the length of the text in preceding runs). This logic is now both more simple and more correct. - AXIsolatedObject::textMarkerRange() computed a range outside its descendants (not expected behavior for the API) when the object in question didn't have a sibling. Now we check for this, and pass a `stopAtID` of the parent to prevent this behavior. * LayoutTests/accessibility/ax-thread-text-apis/line-index-for-textmarker-expected.txt: Added. * LayoutTests/accessibility/ax-thread-text-apis/line-index-for-textmarker.html: Added. * Source/WebCore/accessibility/AXTextMarker.cpp: (WebCore::AXTextMarkerRange::AXTextMarkerRange): (WebCore::AXTextMarkerRange::intersectionWith const): (WebCore::AXTextMarker::lineID const): (WebCore::AXTextMarker::lineIndex const): (WebCore::AXTextMarker::atLineBoundaryForDirection const): (WebCore::AXTextMarker::findMarker const): (WebCore::AXTextMarker::lineRange const): * Source/WebCore/accessibility/AXTextMarker.h: (WebCore::AXTextMarker::previousLineStart const): (WebCore::AXTextMarker::nextLineEnd const): (WebCore::AXTextMarker::atLineStart const): (WebCore::AXTextMarker::atLineEnd const): * Source/WebCore/accessibility/AXTextRun.cpp: (WebCore::AXTextRuns::lineIDForOffset const): * Source/WebCore/accessibility/AXTextRun.h: (WebCore::AXTextRunLineID::operator bool const): * Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm: (WebCore::AXIsolatedObject::textMarkerRange const): * Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]): Canonical link: https://commits.webkit.org/274793@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 53c385: AX: WebKit fails to emit newlines between containe...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 53c3857f5cea7bb83096b8586ae9d4b430fe0031 https://github.com/WebKit/WebKit/commit/53c3857f5cea7bb83096b8586ae9d4b430fe0031 Author: Tyler Wilcock Date: 2024-02-14 (Wed, 14 Feb 2024) Changed paths: M LayoutTests/accessibility/ax-thread-text-apis/display-contents-end-text-marker.html M LayoutTests/accessibility/ax-thread-text-apis/text-marker-range-with-unordered-markers.html A LayoutTests/accessibility/ax-thread-text-apis/text-marker-string-empty-paragraphs-expected.txt A LayoutTests/accessibility/ax-thread-text-apis/text-marker-string-empty-paragraphs.html M LayoutTests/accessibility/ax-thread-text-apis/text-marker-string-for-document-range.html M LayoutTests/accessibility/ax-thread-text-apis/text-marker-with-user-select-none.html M Source/WebCore/accessibility/AXCoreObject.h M Source/WebCore/accessibility/AXLogger.cpp M Source/WebCore/accessibility/AXTextMarker.cpp M Source/WebCore/accessibility/AccessibilityNodeObject.cpp M Source/WebCore/accessibility/AccessibilityNodeObject.h M Source/WebCore/accessibility/AccessibilityObject.cpp M Source/WebCore/accessibility/AccessibilityObject.h M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h M Source/WebCore/editing/TextIterator.cpp M Source/WebCore/editing/TextIterator.h Log Message: --- AX: WebKit fails to emit newlines between container nodes when serving AXStringForTextMarkerRange off the main-thread https://bugs.webkit.org/show_bug.cgi?id=269072 rdar://problem/122648346 Reviewed by Chris Fleizach. Prior to this patch, AXTextMarker::findObjectWithRuns was basically just a wrapper over `findMatchingObjects`. It has become clear that the traversal we need to do for text markers requires lots of custom hooks and behavior, and it doesn't make sense to muddy `findMatchingObjects` for this single usecase, so this patch takes what we need from `findMatchingObjects` and moves it directly into findObjectWithRuns. This allows us to remove the `stopAtID` logic from `findMatchingObjects`. It also allows to add an "exit object" hook to the traversal, which this patch uses to emit newlines when exiting a node that `shouldEmitNewlinesBeforeAndAfterNode`. This matches the behavior of the TextIterator: dive into text-leaf nodes, and emit newlines for their containers on exit. Prior to this patch, we never emitted any newline. Now we do, bringing us closer to passing several tests in LayoutTests/accessibility/ax-thread-text-apis. This patch also documents in detail why several of these tests cotinue to fail, and adds a new test that exercises interesting edgecases when we emit newlines for containers: text-marker-string-empty-paragraphs.html * LayoutTests/accessibility/ax-thread-text-apis/display-contents-end-text-marker.html: * LayoutTests/accessibility/ax-thread-text-apis/text-marker-range-with-unordered-markers.html: * LayoutTests/accessibility/ax-thread-text-apis/text-marker-string-empty-paragraphs-expected.txt: Added. * LayoutTests/accessibility/ax-thread-text-apis/text-marker-string-empty-paragraphs.html: Added. * LayoutTests/accessibility/ax-thread-text-apis/text-marker-string-for-document-range.html: * LayoutTests/accessibility/ax-thread-text-apis/text-marker-with-user-select-none.html: * Source/WebCore/accessibility/AXCoreObject.h: * Source/WebCore/accessibility/AXLogger.cpp: (WebCore::operator<<): * Source/WebCore/accessibility/AXTextMarker.cpp: (WebCore::appendChildren): (WebCore::findObjectWithRuns): (WebCore::AXTextMarkerRange::toString const): * Source/WebCore/accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::shouldEmitNewlinesBeforeAndAfterNode const): * Source/WebCore/accessibility/AccessibilityNodeObject.h: * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::Accessibility::isAccessibilityObjectSearchMatchAtIndex): (WebCore::Accessibility::findMatchingObjects): * Source/WebCore/accessibility/AccessibilityObject.h: * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp: (WebCore::AXIsolatedObject::initializeProperties): * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h: * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h: * Source/WebCore/editing/TextIterator.cpp: (WebCore::shouldEmitNewlinesBeforeAndAfterNode): * Source/WebCore/editing/TextIterator.h: Canonical link: https://commits.webkit.org/274664@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] b9f025: AX: Stop exposing the AXTextMarkerRangeForNSRange ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: b9f025ad07776f25423540680b468156460a3039 https://github.com/WebKit/WebKit/commit/b9f025ad07776f25423540680b468156460a3039 Author: Tyler Wilcock Date: 2024-02-13 (Tue, 13 Feb 2024) Changed paths: M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.h M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm M Tools/DumpRenderTree/mac/AccessibilityUIElementMac.mm M Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm Log Message: --- AX: Stop exposing the AXTextMarkerRangeForNSRange attribute https://bugs.webkit.org/show_bug.cgi?id=269198 rdar://122803791 Reviewed by Andres Gonzalez. It's not used by any assistive technology, so we shouldn't worry about trying to move it off the main-thread. Also add UNLIKELY and privatize AXStartTextMarkerForTextMarkerRangeAttribute and AXEndTextMarkerForTextMarkerRangeAttribute. * Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.h: * Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm: * Tools/DumpRenderTree/mac/AccessibilityUIElementMac.mm: * Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: Canonical link: https://commits.webkit.org/274590@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 6429c9: AX: Implement off-main-thread AXTextMarker::partia...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 6429c8c87d1da2cafe85c6ce9078aad2554a https://github.com/WebKit/WebKit/commit/6429c8c87d1da2cafe85c6ce9078aad2554a Author: Tyler Wilcock Date: 2024-02-07 (Wed, 07 Feb 2024) Changed paths: A LayoutTests/accessibility/ax-thread-text-apis/character-offset-visible-position-conversion-hang-expected.txt A LayoutTests/accessibility/ax-thread-text-apis/character-offset-visible-position-conversion-hang.html M LayoutTests/accessibility/ax-thread-text-apis/content-editable-attributed-string-expected.txt M LayoutTests/accessibility/ax-thread-text-apis/content-editable-attributed-string.html A LayoutTests/accessibility/ax-thread-text-apis/crash-in-element-for-text-marker-expected.txt A LayoutTests/accessibility/ax-thread-text-apis/crash-in-element-for-text-marker.html A LayoutTests/accessibility/ax-thread-text-apis/crash-invalid-text-marker-node-expected.txt A LayoutTests/accessibility/ax-thread-text-apis/crash-invalid-text-marker-node.html A LayoutTests/accessibility/ax-thread-text-apis/index-for-zero-offset-text-marker-expected.txt A LayoutTests/accessibility/ax-thread-text-apis/index-for-zero-offset-text-marker.html A LayoutTests/accessibility/ax-thread-text-apis/line-range-for-text-marker-expected.txt A LayoutTests/accessibility/ax-thread-text-apis/line-range-for-text-marker.html A LayoutTests/accessibility/ax-thread-text-apis/text-marker-range-stale-node-crash-expected.txt A LayoutTests/accessibility/ax-thread-text-apis/text-marker-range-stale-node-crash.html A LayoutTests/accessibility/ax-thread-text-apis/text-marker-range-with-removed-node-crash-expected.txt A LayoutTests/accessibility/ax-thread-text-apis/text-marker-range-with-removed-node-crash.html A LayoutTests/accessibility/ax-thread-text-apis/text-marker-string-for-document-range-expected.txt A LayoutTests/accessibility/ax-thread-text-apis/text-marker-string-for-document-range.html M Source/WebCore/accessibility/AXCoreObject.h M Source/WebCore/accessibility/AXLogger.cpp M Source/WebCore/accessibility/AXLogger.h M Source/WebCore/accessibility/AXTextMarker.cpp M Source/WebCore/accessibility/AXTextMarker.h M Source/WebCore/accessibility/AccessibilityObject.cpp M Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm Log Message: --- AX: Implement off-main-thread AXTextMarker::partialOrder and AXCoreObject::textMarkerRange https://bugs.webkit.org/show_bug.cgi?id=268672 rdar://problem/122212250 Reviewed by Chris Fleizach. We can implement AXTextMarker::partialOrder by traversing the AX tree, and returning less or greater depending on where we find the other marker in relation to the one we started with. AXCoreObject::textMarkerRange was already sometimes able to be served off the main-thread, except for objects that don't have textContent() of their own. With this patch, we use cached text runs to implement off-main-thread AXCoreObject::textMarkerRange in this case too. This patch also ports several new tests to ax-thread-text-apis/ to increase our test coverage of this feature. * LayoutTests/accessibility/ax-thread-text-apis/content-editable-attributed-string-expected.txt: * LayoutTests/accessibility/ax-thread-text-apis/content-editable-attributed-string.html: Remove attributedStringForTextMarkerRange calls. We haven't implemented this yet, and for some inexplicable reason avoiding a main-thread hit in AXTextMarker::partialOrder causes some subsequent attributed string requests to reutrn nil. Work around this for now until we can actually implement this API. * Source/WebCore/accessibility/AXCoreObject.h: * Source/WebCore/accessibility/AXLogger.cpp: * Source/WebCore/accessibility/AXLogger.h: (WebCore::streamTextRuns): (WebCore::streamAXCoreObject): Add the ability to dump the text runs associated with an object. * Source/WebCore/accessibility/AXTextMarker.cpp: (WebCore::partialOrder): (WebCore::findObjectWithRuns): (WebCore::AXTextMarker::findLast const): (WebCore::AXTextMarker::findMarker const): (WebCore::AXTextMarker::toTextLeafMarker const): (WebCore::AXTextMarker::partialOrderByTraversal const): Added. * Source/WebCore/accessibility/AXTextMarker.h: * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::Accessibility::findMatchingObjects): Add the ability to stop the search when encountering the specified AXID. * Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm: (WebCore::AXIsolatedObject::textMarkerRange const): * LayoutTests/accessibility/ax-thread-text-apis/character-offset-visible-position-conversion-hang-expected.txt: Added. * LayoutTests/accessibility/ax-thread-text-apis/character-offset-visible-position-conversion-hang.html: Added. * LayoutTests/accessibility/ax-thread-text-apis/crash-in-element-for-text-marker-expected.txt: Added. * L
[webkit-changes] [WebKit/WebKit] 870d68: AX: Missing nullptr check for parentObjectUnignore...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 870d68c0876919feb0e5bfb95f81f263a7f18c47 https://github.com/WebKit/WebKit/commit/870d68c0876919feb0e5bfb95f81f263a7f18c47 Author: Tyler Wilcock Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M LayoutTests/accessibility-isolated-tree/TestExpectations A LayoutTests/accessibility/menuitem-is-selected-expected.txt A LayoutTests/accessibility/menuitem-is-selected.html M LayoutTests/platform/glib/TestExpectations M LayoutTests/platform/mac-wk1/TestExpectations M Source/WebCore/accessibility/AccessibilityNodeObject.cpp M Source/WebCore/accessibility/AccessibilityObject.cpp M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp Log Message: --- AX: Missing nullptr check for parentObjectUnignored in AccessibilityObject::isSelected() https://bugs.webkit.org/show_bug.cgi?id=268509 rdar://121945437 Reviewed by Chris Fleizach and Andres Gonzalez. parentObjectUnignored() can return nullptr, we need to check it before deferencing to avoid a crash. * LayoutTests/accessibility-isolated-tree/TestExpectations: Skip new test, as it exposes a bug that affects ITM. * LayoutTests/accessibility/menuitem-is-selected-crash-expected.txt: Added. * LayoutTests/accessibility/menuitem-is-selected-crash.html: Added. * LayoutTests/platform/glib/TestExpectations: Skip new test. * Source/WebCore/accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::computeAccessibilityIsIgnored const): * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::isSelected const): * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp: (WebCore::AXIsolatedTree::processQueuedNodeUpdates): Drive-by fix to remove unnecessary HashMap::contains check, HashMap::ensure inherently does this so the contains check was wasted work. Canonical link: https://commits.webkit.org/273971@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] dffba3: AX: Implement AXStartTextMarkerAttribute and AXEnd...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: dffba3d2838bbede6722f804db91807f79afe63b https://github.com/WebKit/WebKit/commit/dffba3d2838bbede6722f804db91807f79afe63b Author: Tyler Wilcock Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: A LayoutTests/accessibility/ax-thread-text-apis/display-contents-end-text-marker-expected.txt A LayoutTests/accessibility/ax-thread-text-apis/display-contents-end-text-marker.html M Source/WebCore/accessibility/AXCoreObject.h M Source/WebCore/accessibility/AXLogger.cpp M Source/WebCore/accessibility/AXTextMarker.cpp M Source/WebCore/accessibility/AXTextMarker.h M Source/WebCore/accessibility/AccessibilityObject.cpp M Source/WebCore/accessibility/AccessibilityObject.h 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/WebAccessibilityObjectWrapperMac.mm Log Message: --- AX: Implement AXStartTextMarkerAttribute and AXEndTextMarkerAttribute off the main-thread https://bugs.webkit.org/show_bug.cgi?id=267944 rdar://problem/121463431 Reviewed by Andres Gonzalez. This patch also reimplements findObjectWithRuns in terms of Accessibility::findMatchingObjects, as the old implementation was implemented in a way that could hit a dead-end despite there being more objects with text runs left to traverse over. This bug is exercised by newly added testcase ax-thread-text-apis/display-contents-end-text-marker.html. * LayoutTests/accessibility/ax-thread-text-apis/display-contents-end-text-marker-expected.txt: Added. * LayoutTests/accessibility/ax-thread-text-apis/display-contents-end-text-marker.html: Added. * Source/WebCore/accessibility/AXCoreObject.h: Add AccessibilitySearchKey::HasTextRuns. * Source/WebCore/accessibility/AXLogger.cpp: (WebCore::operator<<): * Source/WebCore/accessibility/AXTextMarker.cpp: (WebCore::findObjectWithRuns): (WebCore::AXTextMarker::findLast const): Added. (WebCore::AXTextMarker::findMarker const): Remove redundant RELEASE_ASSERTs. * Source/WebCore/accessibility/AXTextMarker.h: * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::Accessibility::isAccessibilityObjectSearchMatchAtIndex): * Source/WebCore/accessibility/AccessibilityObject.h: * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp: (WebCore::AXIsolatedObject::sibling const): Add missing nullptr check that was causing crashes due to its absence. * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h: * Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]): Canonical link: https://commits.webkit.org/273962@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 4ca991: AX: legend-children-are-visible.html, link-inside-...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 4ca99197e0b771b988a4eae18787678565e4eb92 https://github.com/WebKit/WebKit/commit/4ca99197e0b771b988a4eae18787678565e4eb92 Author: Tyler Wilcock Date: 2024-02-01 (Thu, 01 Feb 2024) Changed paths: M Source/WebCore/accessibility/AccessibilityNodeObject.cpp Log Message: --- AX: legend-children-are-visible.html, link-inside-button-accessible-text.html, and text-alternative-calculation-from-unrendered-table.html crash in ITM due to missing AXObjectCache nullptr checks https://bugs.webkit.org/show_bug.cgi?id=268552 rdar://problem/122100786 Reviewed by Chris Fleizach. Add these missing nullptr checks, and improve smart pointer usage in adjacent code. * Source/WebCore/accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::radioButtonGroup const): (WebCore::accessibleNameForNode): Canonical link: https://commits.webkit.org/273953@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 002569: AX: Depending on the timing of Document::flushDefe...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 0025697e602664cc2c95bd76d69f538cbb61a0f0 https://github.com/WebKit/WebKit/commit/0025697e602664cc2c95bd76d69f538cbb61a0f0 Author: Tyler Wilcock Date: 2024-01-31 (Wed, 31 Jan 2024) Changed paths: A LayoutTests/accessibility/tree-update-with-dirty-layout-expected.txt A LayoutTests/accessibility/tree-update-with-dirty-layout.html M LayoutTests/platform/glib/TestExpectations M LayoutTests/platform/ios/TestExpectations A LayoutTests/platform/ios/accessibility/tree-update-with-dirty-layout-expected.txt M LayoutTests/platform/mac-wk1/TestExpectations M LayoutTests/resources/accessibility-helper.js M Source/WebCore/accessibility/AXCoreObject.cpp M Source/WebCore/accessibility/AXCoreObject.h M Source/WebCore/accessibility/AXObjectCache.cpp M Source/WebCore/accessibility/AXObjectCache.h M Source/WebCore/accessibility/AccessibilityObject.cpp M Source/WebCore/accessibility/AccessibilityRenderObject.cpp M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp M Source/WebCore/dom/Document.cpp Log Message: --- AX: Depending on the timing of Document::flushDeferredAXObjectCacheUpdate(), AXObjectCache::performDeferredCacheUpdate can be run with dirty layout https://bugs.webkit.org/show_bug.cgi?id=268239 rdar://problem/121760427 Reviewed by Chris Fleizach and Andres Gonzalez. In bug: https://bugs.webkit.org/show_bug.cgi?id=256403 (Defer AX object cache update as an event loop task instead of a post layout task) AXObjectCache::perfromDeferredCacheUpdate was moved from being a synchronous post-layout task to an asynchronous one, running when possible via the EventLoop. The problem with this is that by the time Document::flushDeferredAXObjectCacheUpdate() actually fires, layout may have become dirty again, which means AXObjectCache::performDeferredCacheUpdate makes incorrect updates to the accessibility tree. As one specific example, it can cause us to compute the wrong ignored value for RenderTexts, as we check RenderText::hasRenderedText which may unexpectedly return false only because the layout is dirty. With this patch, performDeferredCacheUpdate now detects when layout is dirty, and either waits another round in the event loop or forces a layout if necessary. Waiting for a clean layout rather than forcing one is ideal, as layout is expensive. * LayoutTests/accessibility/tree-update-with-dirty-layout-expected.txt: Added. * LayoutTests/accessibility/tree-update-with-dirty-layout.html: Added. * LayoutTests/platform/glib/TestExpectations: Disable new test. * LayoutTests/platform/ios/TestExpectations: Enable new test. * LayoutTests/platform/ios/accessibility/tree-update-with-dirty-layout-expected.txt: Added. * Source/WebCore/accessibility/AXCoreObject.cpp: (WebCore::Accessibility::inRenderTreeOrStyleUpdate): Added. * Source/WebCore/accessibility/AXCoreObject.h: * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::performDeferredCacheUpdate): (WebCore::AXObjectCache::performCacheUpdateTimerFired): Deleted. * Source/WebCore/accessibility/AXObjectCache.h: (WebCore::AXObjectCache::performCacheUpdateTimerFired): * Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::updateBackingStore): * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp: (WebCore::AXIsolatedTree::create): * LayoutTests/resources/accessibility-helper.js: Canonical link: https://commits.webkit.org/273844@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 63c6fa: AX: Don't log AXStreamOptions::IdentifierAttribute...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 63c6fac621d5b4a23cbe8b683d2f734a9d4d87dc https://github.com/WebKit/WebKit/commit/63c6fac621d5b4a23cbe8b683d2f734a9d4d87dc Author: Tyler Wilcock Date: 2024-01-29 (Mon, 29 Jan 2024) Changed paths: M Source/WebCore/accessibility/AXLogger.cpp Log Message: --- AX: Don't log AXStreamOptions::IdentifierAttribute if the id is empty https://bugs.webkit.org/show_bug.cgi?id=268317 rdar://problem/121873562 Reviewed by Chris Fleizach. Most objects have an empty id, so logging it for everything produces a lot of noise. Also shorten parentObject to parentID, which is nice because it's more symmetrical with the objectID property also dumped in this function. * Source/WebCore/accessibility/AXLogger.cpp: (WebCore::streamAXCoreObject): Canonical link: https://commits.webkit.org/273717@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 6be388: AX: WebProcess::accessibilityRelayProcessSuspended...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 6be388b56fc65fe2f3eb74bd266b3d89b0b8ef13 https://github.com/WebKit/WebKit/commit/6be388b56fc65fe2f3eb74bd266b3d89b0b8ef13 Author: Tyler Wilcock Date: 2024-01-24 (Wed, 24 Jan 2024) Changed paths: M Source/WebKit/WebProcess/WebProcess.cpp M Source/WebKit/WebProcess/WebProcess.h Log Message: --- AX: WebProcess::accessibilityRelayProcessSuspended can drop requests to unsuspend, causing ATs to think web content is permanently suspended https://bugs.webkit.org/show_bug.cgi?id=268024 rdar://problem/121545631 Reviewed by Andres Gonzalez. Depending on timing, we can get a call to unsuspend the process at a moment when we don't have any webpages (but may gain them soon). Even when we do get a webpage back, we don't try to send the process unsuspension message, causing assistive technologies to think we are permanently suspended. Fix this by storing this pending unsuspension as a new WebProcess member variable, and processing it when a webpage is added. * Source/WebKit/WebProcess/WebProcess.cpp: (WebKit::WebProcess::createWebPage): (WebKit::WebProcess::accessibilityRelayProcessSuspended): * Source/WebKit/WebProcess/WebProcess.h: Canonical link: https://commits.webkit.org/273474@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] b571ec: AX: Isolated object can be detached in the midst o...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: b571ec5131dcca906981b9a477d7b71e9605b6a6 https://github.com/WebKit/WebKit/commit/b571ec5131dcca906981b9a477d7b71e9605b6a6 Author: Tyler Wilcock Date: 2024-01-22 (Mon, 22 Jan 2024) Changed paths: M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm Log Message: --- AX: Isolated object can be detached in the midst of serving AXChildren, causing nullptr dereference https://bugs.webkit.org/show_bug.cgi?id=267786 rdar://problem/121282648 Reviewed by Chris Fleizach. The following sequence is possible: 1. accessibilityAttributeValue begins, we protect the initial backingObject with a RefPtr 2. We start handling the AXChildren branch 3. We call childrenVectorSize in the middle of doing so 4. This calls self.axBackingObject->children(), which in turn calls AXIsolatedObject::updateBackingStore, in turn calling AXIsolatedTree::applyPendingChanges 5. For some reason, either self.axBackingObject or its ancestor is in m_pendingSubtreeRemovals, causing the wrapper to detach its m_isolatedObject 6. We jump back out to accessibilityAttributeValue, and try to return self.childrenVectorArray at the very end. But our self.axBackingObject is nullptr now, and we dereference it without checking for nullptr, and crash We can fix this by using the RefPtr protected `backingObject` we have at the top of every method rather than the backing object associated with the wrapper, which can become detached. This patch addresses some, but not all of self.axBackingObject dereferences (overall addressing the dereference for this specific crash, and others too). * Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (screenToContents): (scrollViewParent): (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]): (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]): (-[WebAccessibilityObjectWrapper accessibilityArrayAttributeCount:]): (-[WebAccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]): (-[WebAccessibilityObjectWrapper screenToContents:]): Deleted. (-[WebAccessibilityObjectWrapper childrenVectorSize]): Deleted. (-[WebAccessibilityObjectWrapper childrenVectorArray]): Deleted. (-[WebAccessibilityObjectWrapper _computedRoleString]): Deleted. (-[WebAccessibilityObjectWrapper scrollViewParent]): Deleted. Canonical link: https://commits.webkit.org/273328@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 8f9276: AX: Implement off-main-thread AXTextMarkerForIndex...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 8f9276392840002230cdb275b8bb23de2a319d32 https://github.com/WebKit/WebKit/commit/8f9276392840002230cdb275b8bb23de2a319d32 Author: Tyler Wilcock Date: 2024-01-19 (Fri, 19 Jan 2024) Changed paths: A LayoutTests/accessibility/ax-thread-text-apis/text-marker-for-index-expected.txt A LayoutTests/accessibility/ax-thread-text-apis/text-marker-for-index.html A LayoutTests/accessibility/ax-thread-text-apis/text-marker-range-with-unordered-markers-expected.txt A LayoutTests/accessibility/ax-thread-text-apis/text-marker-range-with-unordered-markers.html M Source/WebCore/accessibility/AXObjectCache.h M Source/WebCore/accessibility/AXTextMarker.cpp M Source/WebCore/accessibility/AXTextMarker.h M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm Log Message: --- AX: Implement off-main-thread AXTextMarkerForIndexAttribute and AXIndexForTextMarkerAttribute https://bugs.webkit.org/show_bug.cgi?id=267666 rdar://problem/121157922 Reviewed by Andres Gonzalez. Also adds two new layout tests with basic coverage for these APIs. Fixes a bug in AXPreviousTextMarkerForTextMarkerAttribute where AXDirection::Next was used instead of AXDirection::Previous, which broke test text-marker-range-with-unordered-markers.html. * LayoutTests/accessibility/ax-thread-text-apis/text-marker-for-index-expected.txt: Added. * LayoutTests/accessibility/ax-thread-text-apis/text-marker-for-index.html: Added. * LayoutTests/accessibility/ax-thread-text-apis/text-marker-range-with-unordered-markers-expected.txt: Added. * LayoutTests/accessibility/ax-thread-text-apis/text-marker-range-with-unordered-markers.html: Added. * Source/WebCore/accessibility/AXTextMarker.cpp: (WebCore::AXTextMarker::hasSameObjectAndOffset const): (WebCore::AXTextMarker::offsetFromRoot const): (WebCore::AXTextMarker::nextMarkerFromOffset const): * Source/WebCore/accessibility/AXTextMarker.h: * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h: * Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]): Canonical link: https://commits.webkit.org/273234@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 182eb5: AX: Expose -[WebAccessibilityObjectWrapperIOS _acc...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 182eb50c5c0561444510e2e0c60c3dc72c2eb51f https://github.com/WebKit/WebKit/commit/182eb50c5c0561444510e2e0c60c3dc72c2eb51f Author: Tyler Wilcock Date: 2024-01-18 (Thu, 18 Jan 2024) Changed paths: A LayoutTests/accessibility/ios-simulator/switch-expected.txt A LayoutTests/accessibility/ios-simulator/switch.html M Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm 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.mm Log Message: --- AX: Expose -[WebAccessibilityObjectWrapperIOS _accessibilityIsSwitch] https://bugs.webkit.org/show_bug.cgi?id=267726 rdar://problem/121215059 Reviewed by Chris Fleizach. This will help iOS accessibility frameworks speak "switch button" instead of checkbox, and "on" / "off" instead of "checked" / "unchecked". * LayoutTests/accessibility/ios-simulator/switch-expected.txt: Added. * LayoutTests/accessibility/ios-simulator/switch.html: Added. * Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper _accessibilityIsSwitch]): * Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::isSwitch const): * Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h: * Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl: * Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm: (WTR::AccessibilityUIElement::isSwitch const): Canonical link: https://commits.webkit.org/273206@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 3a032c: AX: Add AccessibilityThreadTextApisEnabled flag an...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 3a032c58f74b524e32d621784defac5a14a8d81a https://github.com/WebKit/WebKit/commit/3a032c58f74b524e32d621784defac5a14a8d81a Author: Tyler Wilcock Date: 2024-01-17 (Wed, 17 Jan 2024) Changed paths: M LayoutTests/TestExpectations M LayoutTests/accessibility-isolated-tree/TestExpectations A LayoutTests/accessibility/ax-thread-text-apis/character-offset-from-upstream-position-expected.txt A LayoutTests/accessibility/ax-thread-text-apis/character-offset-from-upstream-position.html A LayoutTests/accessibility/ax-thread-text-apis/content-editable-attributed-string-expected.txt A LayoutTests/accessibility/ax-thread-text-apis/content-editable-attributed-string.html A LayoutTests/accessibility/ax-thread-text-apis/element-for-text-marker-expected.txt A LayoutTests/accessibility/ax-thread-text-apis/element-for-text-marker.html A LayoutTests/accessibility/ax-thread-text-apis/text-marker-for-bounds-expected.txt A LayoutTests/accessibility/ax-thread-text-apis/text-marker-for-bounds.html A LayoutTests/accessibility/ax-thread-text-apis/text-marker-length-expected.txt A LayoutTests/accessibility/ax-thread-text-apis/text-marker-length.html A LayoutTests/accessibility/ax-thread-text-apis/text-marker-range-for-empty-contenteditable-expected.txt A LayoutTests/accessibility/ax-thread-text-apis/text-marker-range-for-empty-contenteditable.html A LayoutTests/accessibility/ax-thread-text-apis/text-marker-with-user-select-none-expected.txt A LayoutTests/accessibility/ax-thread-text-apis/text-marker-with-user-select-none.html M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml M Source/WebCore/accessibility/AXObjectCache.cpp M Source/WebCore/accessibility/AXObjectCache.h M Source/WebCore/accessibility/AXTextMarker.cpp M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm Log Message: --- AX: Add AccessibilityThreadTextApisEnabled flag and hook it up to several APIs https://bugs.webkit.org/show_bug.cgi?id=267477 rdar://problem/120928163 Reviewed by Chris Fleizach and Andres Gonzalez. This patch also adds a mechanism for testing this configuration, and adds 7 tests. * LayoutTests/TestExpectations: Skip ax-thread-text-apis/ tests by default. * LayoutTests/accessibility-isolated-tree/TestExpectations: * LayoutTests/accessibility/ax-thread-text-apis/character-offset-from-upstream-position-expected.txt: Added. * LayoutTests/accessibility/ax-thread-text-apis/character-offset-from-upstream-position.html: Added. * LayoutTests/accessibility/ax-thread-text-apis/content-editable-attributed-string-expected.txt: Added. * LayoutTests/accessibility/ax-thread-text-apis/content-editable-attributed-string.html: Added. * LayoutTests/accessibility/ax-thread-text-apis/element-for-text-marker-expected.txt: Added. * LayoutTests/accessibility/ax-thread-text-apis/element-for-text-marker.html: Added. * LayoutTests/accessibility/ax-thread-text-apis/text-marker-for-bounds-expected.txt: Added. * LayoutTests/accessibility/ax-thread-text-apis/text-marker-for-bounds.html: Added. * LayoutTests/accessibility/ax-thread-text-apis/text-marker-length-expected.txt: Added. * LayoutTests/accessibility/ax-thread-text-apis/text-marker-length.html: Added. * LayoutTests/accessibility/ax-thread-text-apis/text-marker-range-for-empty-contenteditable-expected.txt: Added. * LayoutTests/accessibility/ax-thread-text-apis/text-marker-range-for-empty-contenteditable.html: Added. * LayoutTests/accessibility/ax-thread-text-apis/text-marker-with-user-select-none-expected.txt: Added. * LayoutTests/accessibility/ax-thread-text-apis/text-marker-with-user-select-none.html: Added. * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml: * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::AXObjectCache): * Source/WebCore/accessibility/AXObjectCache.h: (WebCore::AXObjectCache::accessibilityThreadTextApisEnabled): * Source/WebCore/accessibility/AXTextMarker.cpp: (WebCore::AXTextMarker::findMarker const): * Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]): Canonical link: https://commits.webkit.org/273130@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] b2210c: AX: Revert removal of role=text until blocking VO ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: b2210c3c9558640124b450827cbdaf76684d4429 https://github.com/WebKit/WebKit/commit/b2210c3c9558640124b450827cbdaf76684d4429 Author: Tyler Wilcock Date: 2024-01-12 (Fri, 12 Jan 2024) Changed paths: R LayoutTests/accessibility/text-aria-role-disabled-expected.txt R LayoutTests/accessibility/text-aria-role-disabled.html R LayoutTests/platform/glib/accessibility/text-aria-role-disabled-expected.txt M LayoutTests/platform/ios/TestExpectations R LayoutTests/platform/ios/accessibility/text-aria-role-disabled-expected.txt M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml M Source/WebCore/accessibility/AccessibilityNodeObject.cpp Log Message: --- AX: Revert removal of role=text until blocking VO navigation stop issues are resolved https://bugs.webkit.org/show_bug.cgi?id=267445 rdar://problem/120892284 Reviewed by Chris Fleizach. * LayoutTests/accessibility/text-aria-role-disabled-expected.txt: Removed. * LayoutTests/accessibility/text-aria-role-disabled.html: Removed. * LayoutTests/platform/glib/accessibility/text-aria-role-disabled-expected.txt: Removed. * LayoutTests/platform/ios/TestExpectations: * LayoutTests/platform/ios/accessibility/text-aria-role-disabled-expected.txt: Removed. * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml: * Source/WebCore/accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::determineAriaRoleAttribute const): Canonical link: https://commits.webkit.org/273004@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes