[webkit-changes] [WebKit/WebKit] c63004: AX: Tree updates become broken when children chang...

2024-10-12 Thread Tyler Wilcock
  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...

2024-10-12 Thread Tyler Wilcock
  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...

2024-10-12 Thread Tyler Wilcock
  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...

2024-10-07 Thread Tyler Wilcock
  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-...

2024-09-28 Thread Tyler Wilcock
  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...

2024-09-20 Thread Tyler Wilcock
  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...

2024-09-11 Thread Tyler Wilcock
  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...

2024-09-05 Thread Tyler Wilcock
  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 ...

2024-08-31 Thread Tyler Wilcock
  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...

2024-08-28 Thread Tyler Wilcock
  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...

2024-08-28 Thread Tyler Wilcock
  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...

2024-08-23 Thread Tyler Wilcock
  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...

2024-08-19 Thread Tyler Wilcock
  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...

2024-08-19 Thread Tyler Wilcock
  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

2024-08-18 Thread Tyler Wilcock
  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...

2024-08-15 Thread Tyler Wilcock
  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...

2024-08-14 Thread Tyler Wilcock
  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...

2024-08-13 Thread Tyler Wilcock
  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...

2024-08-13 Thread Tyler Wilcock
  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...

2024-08-08 Thread Tyler Wilcock
  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...

2024-08-03 Thread Tyler Wilcock
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...

2024-07-31 Thread Tyler Wilcock
  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...

2024-07-28 Thread Tyler Wilcock
  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...

2024-07-26 Thread Tyler Wilcock
  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

2024-07-19 Thread Tyler Wilcock
  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...

2024-07-18 Thread Tyler Wilcock
  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 ...

2024-07-10 Thread Tyler Wilcock
  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...

2024-06-06 Thread Tyler Wilcock
  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...

2024-05-08 Thread Tyler Wilcock
  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...

2024-05-07 Thread Tyler Wilcock
  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...

2024-05-05 Thread Tyler Wilcock
  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...

2024-05-04 Thread Tyler Wilcock
  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...

2024-05-04 Thread Tyler Wilcock
  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...

2024-05-03 Thread Tyler Wilcock
  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...

2024-05-03 Thread Tyler Wilcock
  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 ...

2024-04-30 Thread Tyler Wilcock
  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...

2024-04-30 Thread Tyler Wilcock
  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...

2024-04-27 Thread Tyler Wilcock
  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...

2024-04-27 Thread Tyler Wilcock
  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...

2024-04-27 Thread Tyler Wilcock
  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...

2024-04-26 Thread Tyler Wilcock
  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...

2024-04-25 Thread Tyler Wilcock
  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...

2024-04-25 Thread Tyler Wilcock
  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...

2024-04-25 Thread Tyler Wilcock
  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...

2024-04-25 Thread Tyler Wilcock
  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...

2024-04-24 Thread Tyler Wilcock
  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...

2024-04-24 Thread Tyler Wilcock
  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...

2024-04-23 Thread Tyler Wilcock
  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...

2024-04-23 Thread Tyler Wilcock
  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...

2024-04-20 Thread Tyler Wilcock
  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 ...

2024-04-19 Thread Tyler Wilcock
  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/...

2024-04-19 Thread Tyler Wilcock
  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...

2024-04-18 Thread Tyler Wilcock
  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...

2024-04-18 Thread Tyler Wilcock
  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...

2024-04-18 Thread Tyler Wilcock
  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...

2024-04-17 Thread Tyler Wilcock
  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...

2024-04-17 Thread Tyler Wilcock
  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...

2024-04-13 Thread Tyler Wilcock
  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...

2024-04-10 Thread Tyler Wilcock
  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...

2024-04-10 Thread Tyler Wilcock
  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...

2024-04-07 Thread Tyler Wilcock
  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...

2024-04-04 Thread Tyler Wilcock
  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...

2024-04-03 Thread Tyler Wilcock
  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:...

2024-04-02 Thread Tyler Wilcock
  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...

2024-03-31 Thread Tyler Wilcock
  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 ...

2024-03-31 Thread Tyler Wilcock
  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...

2024-03-29 Thread Tyler Wilcock
  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...

2024-03-28 Thread Tyler Wilcock
  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...

2024-03-27 Thread Tyler Wilcock
  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...

2024-03-18 Thread Tyler Wilcock
  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...

2024-03-18 Thread Tyler Wilcock
  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...

2024-03-16 Thread Tyler Wilcock
  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...

2024-03-15 Thread Tyler Wilcock
  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...

2024-03-13 Thread Tyler Wilcock
  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...

2024-03-12 Thread Tyler Wilcock
  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...

2024-03-09 Thread Tyler Wilcock
  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 ...

2024-03-07 Thread Tyler Wilcock
  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...

2024-03-05 Thread Tyler Wilcock
  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...

2024-03-05 Thread Tyler Wilcock
  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...

2024-03-02 Thread Tyler Wilcock
  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...

2024-03-01 Thread Tyler Wilcock
  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 ...

2024-03-01 Thread Tyler Wilcock
  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...

2024-02-26 Thread Tyler Wilcock
  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...

2024-02-20 Thread Tyler Wilcock
  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...

2024-02-17 Thread Tyler Wilcock
  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...

2024-02-15 Thread Tyler Wilcock
  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...

2024-02-14 Thread Tyler Wilcock
  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 ...

2024-02-13 Thread Tyler Wilcock
  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...

2024-02-07 Thread Tyler Wilcock
  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...

2024-02-01 Thread Tyler Wilcock
  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...

2024-02-01 Thread Tyler Wilcock
  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-...

2024-02-01 Thread Tyler Wilcock
  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...

2024-01-31 Thread Tyler Wilcock
  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...

2024-01-29 Thread Tyler Wilcock
  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...

2024-01-24 Thread Tyler Wilcock
  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...

2024-01-22 Thread Tyler Wilcock
  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...

2024-01-19 Thread Tyler Wilcock
  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...

2024-01-18 Thread Tyler Wilcock
  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...

2024-01-17 Thread Tyler Wilcock
  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 ...

2024-01-12 Thread Tyler Wilcock
  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


  1   2   3   >