[webkit-changes] [WebKit/WebKit] 522540: AX: ENABLE_AX_THREAD_TEXT_APIS = 1 does not build

2024-09-11 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 52254099de12ad7529617a164ea0cc42430ef5b3
  
https://github.com/WebKit/WebKit/commit/52254099de12ad7529617a164ea0cc42430ef5b3
  Author: Joshua Hoffman 
  Date:   2024-09-11 (Wed, 11 Sep 2024)

  Changed paths:
M Source/WebCore/accessibility/AXLogger.cpp
M Source/WebCore/accessibility/AXTextRun.h

  Log Message:
  ---
  AX: ENABLE_AX_THREAD_TEXT_APIS = 1 does not build
https://bugs.webkit.org/show_bug.cgi?id=279529
rdar://135815948

Reviewed by Tyler Wilcock.

When ENABLE_AX_THREAD_TEXT_APIS is enabled, we have some new build failures, 
and this patch resolves
those.

* Source/WebCore/accessibility/AXLogger.cpp:
(WebCore::streamTextRuns):
* Source/WebCore/accessibility/AXTextRun.h:
(WebCore::AXTextRun::debugDescription const):

Canonical link: https://commits.webkit.org/283516@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] 3d8642: AX: iframe within inert, hidden element is exposed...

2024-09-10 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3d864212d2b1150cee5712c950dceac2b52b6b83
  
https://github.com/WebKit/WebKit/commit/3d864212d2b1150cee5712c950dceac2b52b6b83
  Author: Joshua Hoffman 
  Date:   2024-09-10 (Tue, 10 Sep 2024)

  Changed paths:
A LayoutTests/accessibility/iframe-content-inert-expected.txt
A LayoutTests/accessibility/iframe-content-inert.html
A LayoutTests/accessibility/iframe-content-visibility-expected.txt
A LayoutTests/accessibility/iframe-content-visibility.html
A LayoutTests/accessibility/resources/iframe-button.html
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/AccessibilityObject.cpp
M Source/WebCore/accessibility/AccessibilityObject.h
M Source/WebCore/accessibility/AccessibilityRenderObject.h
M Source/WebCore/accessibility/AccessibilityScrollView.cpp
M Source/WebCore/accessibility/AccessibilityScrollView.h
M Source/WebCore/rendering/RenderElement.cpp

  Log Message:
  ---
  AX: iframe within inert, hidden element is exposed to ATs
https://bugs.webkit.org/show_bug.cgi?id=278370
rdar://134318347

Reviewed by Tyler Wilcock.

This patch fixes an issue where iFrames with a style of `visibility: hidden` or 
the inert attribute,
both of which should hide the element and its children to ATs, fails to hide 
the iFrame's children.

To fix this, isIgnored() needs to iterate up the web areas and their iFrame 
renderers, to check whether
they are non-visible or if they are effectively inert. These properties/styles 
don't get passed from
the iFrame's parent document to the iFrame's document, so this iteration is 
necessary.

For the isolated tree to update properly, the children of the iframe need to 
dirty its subtree. However,
when AXObjectCache::handleChildrenChanged tries to handle a ScrollView (which 
happens when attributes on
the iFrame element are changed), we bail before dirtying the subtree because 
scroll views don't have
nodes nor renderers. To resolve this, this patch adds logic in 
handleChildrenChanged to propogate
setNeedsToUpdateSubtree and setNeedsToUpdateChildren down to the iFrame's 
WebArea.

* LayoutTests/accessibility/iframe-content-inert-expected.txt: Added.
* LayoutTests/accessibility/iframe-content-inert.html: Added.
* LayoutTests/accessibility/iframe-content-visibility-expected.txt: Added.
* LayoutTests/accessibility/iframe-content-visibility.html: Added.
* LayoutTests/accessibility/resources/iframe-button.html: Added.

New tests to test `visibility: hidden`, `inert` style/attribute on iFrames.

* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::handleChildrenChanged):
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::defaultObjectInclusion const):
(WebCore::AccessibilityObject::webArea const):
* Source/WebCore/accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::shouldWebAreaExposeChildren const):
* Source/WebCore/accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::shouldWebAreaExposeChildren const):
* Source/WebCore/accessibility/AccessibilityRenderObject.h:
* Source/WebCore/accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::updateScrollbars):
(WebCore::AccessibilityScrollView::removeChildScrollbar):
* Source/WebCore/accessibility/AccessibilityScrollView.h:
* Source/WebCore/rendering/RenderWidget.cpp:
(WebCore::RenderWidget::styleDidChange):

Canonical link: https://commits.webkit.org/283416@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] 00c8f4: AX: text-transform: full-size-kana must not affect...

2024-08-14 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 00c8f47583643ff7824ed18bd0470c1b066ee74a
  
https://github.com/WebKit/WebKit/commit/00c8f47583643ff7824ed18bd0470c1b066ee74a
  Author: Joshua Hoffman 
  Date:   2024-08-14 (Wed, 14 Aug 2024)

  Changed paths:
A LayoutTests/accessibility/full-size-kana-untransformed-expected.txt
A LayoutTests/accessibility/full-size-kana-untransformed.html
M LayoutTests/platform/glib/TestExpectations
M Source/WebCore/accessibility/AccessibilityObject.cpp
M Source/WebCore/accessibility/AccessibilityObject.h
M Source/WebCore/accessibility/cocoa/AccessibilityObjectCocoa.mm
M Source/WebCore/editing/TextIterator.cpp
M Source/WebCore/editing/TextIteratorBehavior.h

  Log Message:
  ---
  AX: text-transform: full-size-kana must not affect AT/speech output
https://bugs.webkit.org/show_bug.cgi?id=261565
rdar://115504070

Reviewed by Tyler Wilcock.

`full-size-kana` is used to improve legibility issues with small Kana text. 
Readers are the ones
who are supposed to make the distinction, but for ATs, we need to make sure we 
aren't using this
visually transformed text for speech output.

This patch adds a new IteratorBehavior, IgnoresFullSizeKana, to the text 
iterator for use by
Accessibility. This will return the original, untransformed text, to our 
string-creation
methods.

* LayoutTests/accessibility/full-size-kana-untransformed-expected.txt: Added.
* LayoutTests/accessibility/full-size-kana-untransformed.html: Added.
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::stringForRange const):
(WebCore::AccessibilityObject::stringForVisiblePositionRange):
(WebCore::AccessibilityObject::textIteratorBehaviorForTextRange const):
(WebCore::AccessibilityObject::textIteratorIgnoringFullSizeKana):
* Source/WebCore/accessibility/AccessibilityObject.h:
* Source/WebCore/accessibility/cocoa/AccessibilityObjectCocoa.mm:
(WebCore::AccessibilityObject::contentForRange const):
* Source/WebCore/editing/TextIterator.cpp:
(WebCore::TextIterator::emitText):
* Source/WebCore/editing/TextIteratorBehavior.h:

Canonical link: https://commits.webkit.org/282258@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] 30ff66: AX: Revert 270935@main (Content editable should no...

2024-05-24 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 30ff6624cac9cf9ab1a5feca6e908191f9f10cb5
  
https://github.com/WebKit/WebKit/commit/30ff6624cac9cf9ab1a5feca6e908191f9f10cb5
  Author: Joshua Hoffman 
  Date:   2024-05-24 (Fri, 24 May 2024)

  Changed paths:
A LayoutTests/accessibility/cells-inside-contenteditable-expected.txt
A LayoutTests/accessibility/cells-inside-contenteditable.html
R LayoutTests/accessibility/content-editable-property-change-expected.txt
R LayoutTests/accessibility/content-editable-property-change.html
M 
LayoutTests/accessibility/dynamically-unignored-contenteditable-expected.txt
R LayoutTests/accessibility/ios-simulator/content-editable-expected.txt
R LayoutTests/accessibility/ios-simulator/content-editable.html
M 
LayoutTests/accessibility/mac/active-descendant-with-aria-controls-expected.txt
M LayoutTests/accessibility/mac/relationships-in-frames-expected.txt
M 
LayoutTests/accessibility/mac/set-value-editable-dispatch-events-expected.txt
M LayoutTests/accessibility/mac/set-value-editable-types-expected.txt
M 
LayoutTests/accessibility/nested-textareas-value-changed-notifications-expected.txt
M LayoutTests/platform/glib/TestExpectations
M LayoutTests/platform/mac-wk1/TestExpectations
M 
LayoutTests/platform/mac/accessibility/content-editable-as-textarea-expected.txt
M Source/WebCore/accessibility/AXCoreObject.cpp
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/AccessibilityNodeObject.cpp
M Source/WebCore/accessibility/AccessibilityObject.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 Tools/DumpRenderTree/AccessibilityUIElement.cpp
M Tools/DumpRenderTree/AccessibilityUIElement.h
M Tools/DumpRenderTree/ios/AccessibilityUIElementIOS.mm
M Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h
M Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl
M 
Tools/WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp
M Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm
M Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm
M Tools/WebKitTestRunner/InjectedBundle/win/AccessibilityUIElementWin.cpp

  Log Message:
  ---
  AX: Revert 270935@main (Content editable should not be textbox roles)
https://bugs.webkit.org/show_bug.cgi?id=274607
rdar://128446026

Reviewed by Tyler Wilcock.

270935@main made contenteditable elements have a group role, instead of 
TextArea. This has
proven tricky for ATs and text editing, and does not provide additional 
benefits as anticipated.

This reverts that change, and adds a new test to check that table cells inside 
of a contenteditable
element expose their static text, a bug that was discovered while analyzing 
270935@main.

* LayoutTests/accessibility/cells-inside-contenteditable-expected.txt: Added.
* LayoutTests/accessibility/cells-inside-contenteditable.html: Added.
* LayoutTests/accessibility/content-editable-property-change-expected.txt: 
Removed.
* LayoutTests/accessibility/content-editable-property-change.html: Removed.
* LayoutTests/accessibility/dynamically-unignored-contenteditable-expected.txt:
* LayoutTests/accessibility/ios-simulator/content-editable-expected.txt: 
Removed.
* LayoutTests/accessibility/ios-simulator/content-editable.html: Removed.
* 
LayoutTests/accessibility/mac/active-descendant-with-aria-controls-expected.txt:
* LayoutTests/accessibility/mac/relationships-in-frames-expected.txt:
* LayoutTests/accessibility/mac/set-value-editable-dispatch-events-expected.txt:
* LayoutTests/accessibility/mac/set-value-editable-types-expected.txt:
* 
LayoutTests/accessibility/nested-textareas-value-changed-notifications-expected.txt:
* LayoutTests/platform/glib/TestExpectations:
* LayoutTests/platform/mac-wk1/TestExpectations:
* 
LayoutTests/platform/mac/accessibility/content-editable-as-textarea-expected.txt:
* Source/WebCore/accessibility/AXCoreObject.cpp:
(WebCore::AXCoreObject::isTextControl const):
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::handleAttributeChange):
(WebCore::AXObjectCache::updateIsolatedTree):
* Source/WebCore/accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::matchesTextAreaRole const):
(WebCore::AccessibilityNodeObject::determineAccessibilityRoleFromNode const):
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isNonNativeTextControl const):
* Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityTraits

[webkit-changes] [WebKit/WebKit] ab68b2: [Remote Inspection] AX: Add screen reader support ...

2024-05-14 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ab68b25713f7cfaa97ae4453e8e2aadfdcdfaf2b
  
https://github.com/WebKit/WebKit/commit/ab68b25713f7cfaa97ae4453e8e2aadfdcdfaf2b
  Author: Joshua Hoffman 
  Date:   2024-05-14 (Tue, 14 May 2024)

  Changed paths:
M Source/WebCore/page/ElementTargetingController.cpp
M Source/WebCore/page/ElementTargetingTypes.h
M Source/WebCore/page/text-extraction/TextExtraction.cpp
M Source/WebCore/page/text-extraction/TextExtraction.h
M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
M Source/WebKit/UIProcess/API/APITargetedElementInfo.h
M Source/WebKit/UIProcess/API/Cocoa/_WKTargetedElementInfo.h
M Source/WebKit/UIProcess/API/Cocoa/_WKTargetedElementInfo.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/ElementTargetingTests.mm

  Log Message:
  ---
  [Remote Inspection] AX: Add screen reader support for element targeting
https://bugs.webkit.org/show_bug.cgi?id=274108
rdar://128019127

Reviewed by Wenson Hsieh.

To surface targeting information to screen readers, we need to add a new text 
property,
screenReaderText, to expose those bits of rendered text relevant to screen 
reader users.

* Source/WebCore/page/ElementTargetingController.cpp:
(WebCore::targetedElementInfo):
* Source/WebCore/page/ElementTargetingTypes.h:
* Source/WebCore/page/text-extraction/TextExtraction.cpp:
(WebCore::TextExtraction::extractRenderedText):
* Source/WebCore/page/text-extraction/TextExtraction.h:
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/UIProcess/API/APITargetedElementInfo.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKTargetedElementInfo.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKTargetedElementInfo.mm:
(-[_WKTargetedElementInfo screenReaderText]):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/ElementTargetingTests.mm:
(TestWebKitAPI::TEST(ElementTargeting, TargetedElementScreenReaderText)):

Canonical link: https://commits.webkit.org/278780@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] 26acf2: AX: Re-enable accessibility/ios-simulator/inline-p...

2024-04-30 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 26acf2ecbc140d2494d90b36b4a2db604f75acb4
  
https://github.com/WebKit/WebKit/commit/26acf2ecbc140d2494d90b36b4a2db604f75acb4
  Author: Joshua Hoffman 
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
M LayoutTests/platform/ios/TestExpectations
M Source/WebCore/editing/Editor.cpp
M Source/WebCore/editing/Editor.h
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.h
M Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
M Source/WebKit/UIProcess/mac/WebViewImpl.mm
M Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp
M Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h
M Source/WebKit/WebProcess/WebCoreSupport/glib/WebEditorClientGLib.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.h
M Source/WebKit/WebProcess/WebPage/WebPage.messages.in
M Source/WebKitLegacy/mac/WebView/WebFrame.mm
M Source/WebKitLegacy/mac/WebView/WebHTMLView.mm
M Tools/WebKitTestRunner/InjectedBundle/Bindings/TextInputController.idl
M Tools/WebKitTestRunner/InjectedBundle/TextInputController.cpp
M Tools/WebKitTestRunner/InjectedBundle/TextInputController.h

  Log Message:
  ---
  AX: Re-enable accessibility/ios-simulator/inline-prediction-attributed-string 
test
https://bugs.webkit.org/show_bug.cgi?id=273284
rdar://127079331

Reviewed by Tyler Wilcock.

The iOS inline prediction infrastructure for accessibility was removed in 
277282@main due to some
broader prediction changes, breaking the iOS simulator test, 
inline-prediction-attributed-string.html.
Since the iOS mechanism for writing suggestions did not change in that commit, 
we can re-add that
code to allow AX to work as expected. This patch re-introduces the code 
originally added in
https://github.com/WebKit/WebKit/commit/ef93c1b412c09e10975907c8fd683269eb36a413
 and subsequent patches.

* LayoutTests/platform/ios/TestExpectations:
* Source/WebCore/editing/Editor.cpp:
(WebCore::Editor::confirmComposition):
(WebCore::Editor::cancelComposition):
(WebCore::Editor::setComposition):
* Source/WebCore/editing/Editor.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setCompositionAsync):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _setMarkedText:underlines:highlights:selectedRange:]):
* Source/WebKit/UIProcess/mac/WebViewImpl.mm:
(WebKit::WebViewImpl::setMarkedText):
* Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageSetComposition):
* Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
* Source/WebKit/WebProcess/WebCoreSupport/glib/WebEditorClientGLib.cpp:
(WebKit::WebEditorClient::didDispatchInputMethodKeydown):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setCompositionForTesting):
(WebKit::WebPage::setCompositionAsync):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
* Source/WebKitLegacy/mac/WebView/WebFrame.mm:
(-[WebFrame setMarkedText:selectedRange:]):
(-[WebFrame setMarkedText:forCandidates:]):
* Source/WebKitLegacy/mac/WebView/WebHTMLView.mm:
(-[WebHTMLView setMarkedText:selectedRange:]):
* Tools/WebKitTestRunner/InjectedBundle/Bindings/TextInputController.idl:
* Tools/WebKitTestRunner/InjectedBundle/TextInputController.cpp:
(WTR::createCompositionAnnotationData):
(WTR::TextInputController::setMarkedText):
* Tools/WebKitTestRunner/InjectedBundle/TextInputController.h:

Canonical link: https://commits.webkit.org/278171@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] 44ced5: AX: Move objectsForIDs back off of the main thread

2024-04-24 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 44ced5953d9eec601879c9741c43d238caaea2bc
  
https://github.com/WebKit/WebKit/commit/44ced5953d9eec601879c9741c43d238caaea2bc
  Author: Joshua Hoffman 
  Date:   2024-04-24 (Wed, 24 Apr 2024)

  Changed paths:
A 
LayoutTests/accessibility/create-unconnected-node-during-layout-crash-expected.txt
A LayoutTests/accessibility/create-unconnected-node-during-layout-crash.html
M LayoutTests/accessibility/mac/doctype-node-in-text-marker-crash.html
M Source/WebCore/accessibility/AXLogger.cpp
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/AXObjectCache.h
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h
M Source/WebCore/accessibility/mac/AXObjectCacheMac.mm

  Log Message:
  ---
  AX: Move objectsForIDs back off of the main thread
https://bugs.webkit.org/show_bug.cgi?id=272803
rdar://problem/126600212

Reviewed by Tyler Wilcock.

This patch moves objectsForIDs back off of the main thread, which was 
originally done by the
now-reverted commit https://commits.webkit.org/272323@main.

 That patch was reverted due to `addUnconnectedNode` being called at an invalid 
time (downstream
of layout). This patch resolves that by deferring adding these nodes to 
performDeferredCacheUpdate,
when we guarantee it is safe to do so.

* 
LayoutTests/accessibility/create-unconnected-node-during-layout-crash-expected.txt:
 Added.
* LayoutTests/accessibility/create-unconnected-node-during-layout-crash.html: 
Added.
* LayoutTests/accessibility/mac/doctype-node-in-text-marker-crash.html:
* Source/WebCore/accessibility/AXLogger.cpp:
(WebCore::AXLogger::log):
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::deferAddUnconnectedNode):
(WebCore::AXObjectCache::performDeferredCacheUpdate):
(WebCore::AXObjectCache::addRelation):
* Source/WebCore/accessibility/AXObjectCache.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::create):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:
(WebCore::AXIsolatedTree::objectsForIDs):
* Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::createIsolatedObjectIfNeeded):
(WebCore::AXObjectCache::postTextStateChangePlatformNotification):
(WebCore::AXObjectCache::postUserInfoForChanges):
(WebCore::AXObjectCache::postTextReplacementPlatformNotification):
(WebCore::AXObjectCache::postTextReplacementPlatformNotificationForTextControl):
(WebCore::AXObjectCache::onSelectedTextChanged):
(WebCore::createIsolatedObjectIfNeeded): Deleted.
(WebCore::postUserInfoForChanges): Deleted.

Canonical link: https://commits.webkit.org/277946@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] 1c3f22: AX: AXPropertyName::{ColumnIndex, RowIndex} are no...

2024-03-06 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1c3f222f4f9644de8d8aa2a72aebaec90f45c03d
  
https://github.com/WebKit/WebKit/commit/1c3f222f4f9644de8d8aa2a72aebaec90f45c03d
  Author: Joshua Hoffman 
  Date:   2024-03-06 (Wed, 06 Mar 2024)

  Changed paths:
A LayoutTests/accessibility/dynamic-table-row-column-indices-expected.txt
A LayoutTests/accessibility/dynamic-table-row-column-indices.html
A LayoutTests/accessibility/table-insert-second-thead-expected.txt
A LayoutTests/accessibility/table-insert-second-thead.html
M LayoutTests/platform/glib/TestExpectations
M LayoutTests/platform/mac-wk1/TestExpectations
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/AXObjectCache.h
M Source/WebCore/accessibility/AccessibilityTableColumn.cpp
M Source/WebCore/accessibility/AccessibilityTableColumn.h
M Source/WebCore/accessibility/AccessibilityTableRow.cpp
M Source/WebCore/accessibility/AccessibilityTableRow.h
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp

  Log Message:
  ---
  AX: AXPropertyName::{ColumnIndex, RowIndex} are not updated on the isolated 
tree
https://bugs.webkit.org/show_bug.cgi?id=270535
rdar://118240861

Reviewed by Tyler Wilcock.

These properties, ColumnIndex and RowIndex, were never updated on isolated 
objects
after being initialized. This can cause issues as ATs rely on these properties 
to
accurately navigate tables.

Two tests were added to flex this behavior. table-insert-second-thead.html also
tests that we are resilient to authoring errors with respect to multiple table
header elements.

* LayoutTests/accessibility/dynamic-table-row-column-indices-expected.txt: 
Added.
* LayoutTests/accessibility/dynamic-table-row-column-indices.html: Added.
* LayoutTests/accessibility/table-insert-second-thead-expected.txt: Added.
* LayoutTests/accessibility/table-insert-second-thead.html: Added.
* LayoutTests/platform/glib/TestExpectations:
* LayoutTests/platform/mac-wk1/TestExpectations:
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::columnIndexChanged):
(WebCore::AXObjectCache::rowIndexChanged):
(WebCore::AXObjectCache::updateIsolatedTree):
* Source/WebCore/accessibility/AXObjectCache.h:
* Source/WebCore/accessibility/AccessibilityTableColumn.cpp:
(WebCore::AccessibilityTableColumn::setColumnIndex):
* Source/WebCore/accessibility/AccessibilityTableColumn.h:
* Source/WebCore/accessibility/AccessibilityTableRow.cpp:
(WebCore::AccessibilityTableRow::setRowIndex):
* Source/WebCore/accessibility/AccessibilityTableRow.h:
(WebCore::AccessibilityTableRow::setRowIndex): Deleted.
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::updateNodeProperties):

Canonical link: https://commits.webkit.org/275762@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] a8f281: AX: NULL attributed string returned for text marke...

2024-03-05 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a8f281f89e750d8fea2e45ce43f2a955f989543b
  
https://github.com/WebKit/WebKit/commit/a8f281f89e750d8fea2e45ce43f2a955f989543b
  Author: Joshua Hoffman 
  Date:   2024-03-05 (Tue, 05 Mar 2024)

  Changed paths:
A LayoutTests/accessibility/mac/selected-text-range-unconnected-object.html
A 
LayoutTests/platform/mac/accessibility/mac/selected-text-range-unconnected-object-expected.txt
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h

  Log Message:
  ---
  AX: NULL attributed string returned for text markers that contain unconnected 
nodes
https://bugs.webkit.org/show_bug.cgi?id=270499
rdar://122451549

Reviewed by Tyler Wilcock.

If a node is unconnected and we queue up a node change for it, nothing will 
happen, since
shouldCreateNodeChange will return false. This means that if we request a text 
marker range
that points to a stale, unconnected node, we may get a null attributed string 
since the range
being requested is invalid.

This change adds a new condition to shouldCreateNodeChange for unconnected 
nodes, and adds a
new test to verify this behavior.

* LayoutTests/accessibility/mac/selected-text-range-unconnected-object.html: 
Added.
* 
LayoutTests/platform/mac/accessibility/mac/selected-text-range-unconnected-object-expected.txt:
 Added.
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::shouldCreateNodeChange):
(WebCore::AXIsolatedTree::addUnconnectedNode):
(WebCore::AXIsolatedTree::removeSubtreeFromNodeMap):
(WebCore::shouldCreateNodeChange): Deleted.
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:

Canonical link: https://commits.webkit.org/275694@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] 1d7be2: AX: Avoid work in BitmapImage::canAnimate if anima...

2024-03-01 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1d7be2a5f983adaea21751f2574e605802cd
  
https://github.com/WebKit/WebKit/commit/1d7be2a5f983adaea21751f2574e605802cd
  Author: Joshua Hoffman 
  Date:   2024-03-01 (Fri, 01 Mar 2024)

  Changed paths:
M Source/WebCore/loader/cache/CachedImage.cpp
M Source/WebCore/page/ContextMenuController.cpp
M Source/WebCore/page/Page.cpp
M Source/WebCore/page/Page.h
M Source/WebCore/platform/graphics/BitmapImage.cpp
M Source/WebCore/platform/graphics/Image.cpp
M Source/WebCore/platform/graphics/Image.h
M Source/WebCore/testing/Internals.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
M Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm
M Tools/TestWebKitAPI/Tests/WebKit/AnimationControl.mm

  Log Message:
  ---
  AX: Avoid work in BitmapImage::canAnimate if animation controls are disabled
https://bugs.webkit.org/show_bug.cgi?id=270136
rdar://109646792

Reviewed by Tyler Wilcock.

Before this patch, the expensive work that happens in BitmapImage::canAnimate 
would unnecessarily occur in
two cases: (1) if the image has a single-frame and (2) if image animation 
controls were not enabled. This
patch exits early from this code path if either of those two things are true. 
This will improve performance
for users both with and without the controls enabled.

Moving `systemAllowsAnimationControls` to a static global variable on `Image` 
also allows us to remove
the method of the same name from `Page`, since this does not need to be a 
per-page setting.

An API test had to be updated so that we invoke 
`Image::setSystemAllowsImageAnimation` via
Internals::setImageAnimationEnabled.

This is part one of related work. In a follow up, performance issues for 
computing canAnimate when
animation controls are enabled will be addressed.

* Source/WebCore/loader/cache/CachedImage.cpp:
(WebCore::CachedImage::CachedImageObserver::allowsAnimation const):
(WebCore::CachedImage::allowsAnimation const):
* Source/WebCore/page/ContextMenuController.cpp:
(WebCore::ContextMenuController::populate):
* Source/WebCore/page/Page.cpp:
(WebCore::Page::setImageAnimationEnabled):
(WebCore::Page::setSystemAllowsAnimationControls): Deleted.
* Source/WebCore/page/Page.h:
(WebCore::Page::imageAnimationEnabled const):
(WebCore::Page::systemAllowsAnimationControls const): Deleted.
* Source/WebCore/platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::canAnimate const):
* Source/WebCore/platform/graphics/Image.cpp:
(WebCore::Image::setSystemAllowsAnimationControls):
* Source/WebCore/platform/graphics/Image.h:
(WebCore::Image::systemAllowsAnimationControls):
* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::setImageAnimationEnabled):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updateImageAnimationEnabled):
* Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::updatePageAccessibilitySettings):
* Tools/TestWebKitAPI/Tests/WebKit/AnimationControl.mm:
(TEST):

Canonical link: https://commits.webkit.org/275563@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] ba3ffc: AX: VoiceOver frames are broken on ToT

2024-02-24 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ba3ffca7609bd2c823e50a5f35e72a516a848928
  
https://github.com/WebKit/WebKit/commit/ba3ffca7609bd2c823e50a5f35e72a516a848928
  Author: Joshua Hoffman 
  Date:   2024-02-24 (Sat, 24 Feb 2024)

  Changed paths:
M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp

  Log Message:
  ---
  AX: VoiceOver frames are broken on ToT
https://bugs.webkit.org/show_bug.cgi?id=270023
rdar://problem/123534425

Reviewed by Chris Fleizach.

After 274955@main, we never returned cached relative frames, resulting in all 
frames being the same
as the WebArea's. This patch fixes frames, and resolves the failing test, 
initial-relative-frame-cached.html.

* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::relativeFrame const):

Canonical link: https://commits.webkit.org/275290@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] 2f2435: AX: refactor downcast in setLastPresentedTextPredi...

2024-02-20 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 2f2435a780c49d541fc276b858e0a8fe81f619d4
  
https://github.com/WebKit/WebKit/commit/2f2435a780c49d541fc276b858e0a8fe81f619d4
  Author: Joshua Hoffman 
  Date:   2024-02-20 (Tue, 20 Feb 2024)

  Changed paths:
M Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm

  Log Message:
  ---
  AX: refactor downcast in setLastPresentedTextPrediction
https://bugs.webkit.org/show_bug.cgi?id=269771
rdar://problem/123289610

Reviewed by Chris Fleizach.

This patch separates out the dynamicDowncast in setLastPresentedTextPrediction 
so that is not inline.
This prevents duplicate is checks, as was the case prior.

* Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm:
(WebCore::AccessibilityObject::setLastPresentedTextPrediction):

Canonical link: https://commits.webkit.org/275051@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] 02029a: AX: Fix failing tests for element-reflection-aria*

2024-02-19 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 02029a362016bacb321a44384a69c06670f57612
  
https://github.com/WebKit/WebKit/commit/02029a362016bacb321a44384a69c06670f57612
  Author: Joshua Hoffman 
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
M LayoutTests/accessibility-isolated-tree/TestExpectations
M LayoutTests/accessibility/element-reflection-ariacontrols-expected.txt
M LayoutTests/accessibility/element-reflection-ariacontrols.html
M LayoutTests/accessibility/element-reflection-ariadetails-expected.txt
M LayoutTests/accessibility/element-reflection-ariadetails.html
M LayoutTests/accessibility/element-reflection-ariaerrormessage-expected.txt
M LayoutTests/accessibility/element-reflection-ariaerrormessage.html
M LayoutTests/accessibility/element-reflection-ariaflowto-expected.txt
M LayoutTests/accessibility/element-reflection-ariaflowto.html
M LayoutTests/accessibility/element-reflection-ariaowns-expected.txt
M LayoutTests/accessibility/element-reflection-ariaowns.html

  Log Message:
  ---
  AX: Fix failing tests for element-reflection-aria*
https://bugs.webkit.org/show_bug.cgi?id=269766
rdar://problem/123282478

Reviewed by Chris Fleizach.

This patch fixes four failing tests that were failing in isolated tree mode due 
to not being
asynchronous. The style for element-reflection-ariaowns.html was also updated, 
but one line
(wrapper.childrenCount) still fails due to bugs in aria-owns.

* LayoutTests/accessibility-isolated-tree/TestExpectations:
* LayoutTests/accessibility/element-reflection-ariacontrols-expected.txt:
* LayoutTests/accessibility/element-reflection-ariacontrols.html:
* LayoutTests/accessibility/element-reflection-ariadetails-expected.txt:
* LayoutTests/accessibility/element-reflection-ariadetails.html:
* LayoutTests/accessibility/element-reflection-ariaerrormessage-expected.txt:
* LayoutTests/accessibility/element-reflection-ariaerrormessage.html:
* LayoutTests/accessibility/element-reflection-ariaflowto-expected.txt:
* LayoutTests/accessibility/element-reflection-ariaflowto.html:
* LayoutTests/accessibility/element-reflection-ariaowns-expected.txt:
* LayoutTests/accessibility/element-reflection-ariaowns.html:

Canonical link: https://commits.webkit.org/275023@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] ed2bfb: AX: Update cached text runs when line layout changes

2024-02-19 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ed2bfb346eb51503269ee148064da49d3e8d5da9
  
https://github.com/WebKit/WebKit/commit/ed2bfb346eb51503269ee148064da49d3e8d5da9
  Author: Joshua Hoffman 
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
A 
LayoutTests/accessibility/ax-thread-text-apis/dynamic-text-line-wrapping-expected.txt
A 
LayoutTests/accessibility/ax-thread-text-apis/dynamic-text-line-wrapping.html
M Source/WebCore/accessibility/AXLogger.cpp
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/AXObjectCache.h
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
M Source/WebCore/rendering/RenderBlockFlow.cpp

  Log Message:
  ---
  AX: Update cached text runs when line layout changes
https://bugs.webkit.org/show_bug.cgi?id=269628
rdar://problem/123122761

Reviewed by Tyler Wilcock.

When AX_THREAD_TEXT_APIS is enabled, we cache textruns when objects are 
initialized. But, when their line layout
updates (for example, when the width of their container changes), we do not 
update the text runs, meaning they
will become stale and the line APIs will return incorrect information to 
clients.

This patch hooks into line layout, and updates the cached runs for objects that 
have changed.

One consideration while exploring this patch was whether we need to debounce 
this caching. But, sampling shows
that this computation is not that expensive, making debouncing excessive.

* 
LayoutTests/accessibility/ax-thread-text-apis/dynamic-text-line-wrapping-expected.txt:
 Added.
* 
LayoutTests/accessibility/ax-thread-text-apis/dynamic-text-line-wrapping.html: 
Added.
* Source/WebCore/accessibility/AXLogger.cpp:
(WebCore::operator<<):
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::onTextRunsChanged):
(WebCore::AXObjectCache::updateIsolatedTree):
* Source/WebCore/accessibility/AXObjectCache.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::updateNodeProperties):
* Source/WebCore/rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutModernLines):

Canonical link: https://commits.webkit.org/274999@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] 322e58: AX: Adopt non-blinking cursor API

2024-02-15 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 322e588ea0da59e5871fc52c3d29f3e0cd77617e
  
https://github.com/WebKit/WebKit/commit/322e588ea0da59e5871fc52c3d29f3e0cd77617e
  Author: Joshua Hoffman 
  Date:   2024-02-15 (Thu, 15 Feb 2024)

  Changed paths:
A LayoutTests/accessibility/mac/prefers-non-blinking-cursor-expected.txt
A LayoutTests/accessibility/mac/prefers-non-blinking-cursor.html
M LayoutTests/platform/mac/TestExpectations
M Source/WTF/wtf/PlatformEnable.h
M Source/WebCore/editing/FrameSelection.cpp
M Source/WebCore/editing/FrameSelection.h
M Source/WebCore/page/Page.cpp
M Source/WebCore/page/Page.h
M Source/WebCore/platform/CaretAnimator.cpp
M Source/WebCore/platform/CaretAnimator.h
M Source/WebCore/platform/DictationCaretAnimator.cpp
M Source/WebCore/testing/Internals.cpp
M Source/WebCore/testing/Internals.h
M Source/WebCore/testing/Internals.idl
M Source/WebKit/Platform/spi/Cocoa/AccessibilitySupportSPI.h
M Source/WebKit/Shared/AccessibilityPreferences.h
M Source/WebKit/Shared/AccessibilityPreferences.serialization.in
M Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.h
M Source/WebKit/WebProcess/WebProcess.h
M Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm

  Log Message:
  ---
  AX: Adopt non-blinking cursor API
https://bugs.webkit.org/show_bug.cgi?id=268920
rdar://118550285

Reviewed by Tyler Wilcock.

This patch adopts a new accessibility API, 
_AXSPrefersNonBlinkingCursorIndicator, to
turns off caret blinking animations when enabled.

A new test was also added to verify this behavior.

* LayoutTests/accessibility/mac/prefers-non-blinking-cursor-expected.txt: Added.
* LayoutTests/accessibility/mac/prefers-non-blinking-cursor.html: Added.
* LayoutTests/platform/mac/TestExpectations:
* Source/WTF/wtf/PlatformEnable.h:
* Source/WebCore/editing/FrameSelection.cpp:
(WebCore::FrameSelection::setPrefersNonBlinkingCursor):
* Source/WebCore/editing/FrameSelection.h:
* Source/WebCore/page/Page.cpp:
(WebCore::Page::setPrefersNonBlinkingCursor):
* Source/WebCore/page/Page.h:
(WebCore::Page::prefersNonBlinkingCursor const):
* Source/WebCore/platform/CaretAnimator.cpp:
(WebCore::CaretAnimator::isBlinkingSuspended const):
* Source/WebCore/platform/CaretAnimator.h:
(WebCore::CaretAnimator::setPrefersNonBlinkingCursor):
(WebCore::CaretAnimator::prefersNonBlinkingCursor const):
(WebCore::CaretAnimator::CaretAnimator):
(WebCore::CaretAnimator::isBlinkingSuspended const): Deleted.
* Source/WebCore/platform/DictationCaretAnimator.cpp:
(WebCore::DictationCaretAnimator::expandedCaretRect const):
* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::setPrefersNonBlinkingCursor):
(WebCore::Internals::isCaretBlinkingSuspended):
* Source/WebCore/testing/Internals.h:
* Source/WebCore/testing/Internals.idl:
* Source/WebKit/Platform/spi/Cocoa/AccessibilitySupportSPI.h:
* Source/WebKit/Shared/AccessibilityPreferences.h:
* Source/WebKit/Shared/AccessibilityPreferences.serialization.in:
* Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::accessibilityPreferences):
(WebKit::WebProcessPool::registerNotificationObservers):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::m_unifiedTextReplacementController):
(WebKit::WebPage::updatePrefersNonBlinkingCursor):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebProcess.h:
(WebKit::WebProcess::prefersNonBlinkingCursor const):
* Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::accessibilityPreferencesDidChange):
(WebKit::WebProcess::updatePageAccessibilitySettings):

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 58895e: AX: Missing _prepareAccessibilityCall in accessibi...

2024-02-12 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 58895edc47c1a103654ee80d9d5a389cbb9fd619
  
https://github.com/WebKit/WebKit/commit/58895edc47c1a103654ee80d9d5a389cbb9fd619
  Author: Joshua Hoffman 
  Date:   2024-02-12 (Mon, 12 Feb 2024)

  Changed paths:
M Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm

  Log Message:
  ---
  AX: Missing _prepareAccessibilityCall in accessibilityIsInNonNativeTextControl
https://bugs.webkit.org/show_bug.cgi?id=269214
rdar://122778867

Reviewed by Andres Gonzalez.

We need to add a _prepareAccessibilityCall to avoid a nullptr dereference.

* Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityIsInNonNativeTextControl]):

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] fcc36e: AX: Backing object can be destroyed in _accessibil...

2024-02-12 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: fcc36e12e4cb6230daa40e08a9930ac98accbf5c
  
https://github.com/WebKit/WebKit/commit/fcc36e12e4cb6230daa40e08a9930ac98accbf5c
  Author: Joshua Hoffman 
  Date:   2024-02-12 (Mon, 12 Feb 2024)

  Changed paths:
A LayoutTests/accessibility/ios-simulator/destroy-on-press-expected.txt
A LayoutTests/accessibility/ios-simulator/destroy-on-press.html
M Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm

  Log Message:
  ---
  AX: Backing object can be destroyed in _accessibilityActivate
https://bugs.webkit.org/show_bug.cgi?id=268997
rdar://122491194

Reviewed by Chris Fleizach.

Calling AccessibilityObject::press() on the backing object is non-trivial, and 
could cause
the object to be destroyed, resulting a null dereference in 
_accessibilityActivate when
calling `isStaticText`. This patch protects that backing object with a RefPtr.

* LayoutTests/accessibility/ios-simulator/destroy-on-press-expected.txt: Added.
* LayoutTests/accessibility/ios-simulator/destroy-on-press.html: Added.
* Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper _accessibilityActivate]):

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] e6c6fd: AX: Serve initial AXRelativeFrame for elements wit...

2024-02-12 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e6c6fde680601443f7797f6f66eba8453da7a76a
  
https://github.com/WebKit/WebKit/commit/e6c6fde680601443f7797f6f66eba8453da7a76a
  Author: Joshua Hoffman 
  Date:   2024-02-12 (Mon, 12 Feb 2024)

  Changed paths:
A LayoutTests/accessibility/mac/initial-relative-frame-cached-expected.txt
A LayoutTests/accessibility/mac/initial-relative-frame-cached.html
M LayoutTests/platform/mac-wk1/TestExpectations
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/AXObjectCache.h
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
M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h
M Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp
M Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h
M Tools/WebKitTestRunner/InjectedBundle/AccessibilityController.cpp
M Tools/WebKitTestRunner/InjectedBundle/AccessibilityController.h
M Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl

  Log Message:
  ---
  AX: Serve initial AXRelativeFrame for elements without cached frames off of 
the main thread
https://bugs.webkit.org/show_bug.cgi?id=268035
rdar://120764228

Reviewed by Tyler Wilcock.

We only serve relative frames for objects on the secondary thread once they are 
cached during
the Accessibility paint phase. This means that when we move to objects that 
were offscreen or
haven't been painted, we have to use the main thread to serve the relative 
frame.

This patch instead serves a rough frame from the AX thread initally, until the 
object's frame
is cached during painting. This rough frame is constructed by using the frame 
rect of the element
for its size, and it's closest painted ancestor for its position. As soon as 
the element's
precise frame is cached duiring paint, this is updated.

* LayoutTests/accessibility/mac/initial-relative-frame-cached-expected.txt: 
Added.
* LayoutTests/accessibility/mac/initial-relative-frame-cached.html: Added.
* LayoutTests/platform/mac-wk1/TestExpectations:
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::setForceInitialFrameCaching):
(WebCore::AXObjectCache::shouldServeInitialCachedFrame):
* Source/WebCore/accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::forceInitialFrameCaching):
* Source/WebCore/accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::frameRect const):
(WebCore::AccessibilityObject::isNonLayerSVGObject const):
* Source/WebCore/accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::isNonLayerSVGObject const):
(WebCore::AccessibilityRenderObject::frameRect const):
* Source/WebCore/accessibility/AccessibilityRenderObject.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeProperties):
(WebCore::AXIsolatedObject::relativeFrame const):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::updateFrame):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:
* Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKAccessibilitySetForceInitialFrameCaching):
* Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
* Tools/WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:
(WTR::AccessibilityController::setForceInitialFrameCaching):
* Tools/WebKitTestRunner/InjectedBundle/AccessibilityController.h:
* Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl:

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 05842e: AX: Revert 272323@main: unsafe calls to addUnconne...

2024-02-05 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 05842e7686500455c98398d6d218cde1104b613f
  
https://github.com/WebKit/WebKit/commit/05842e7686500455c98398d6d218cde1104b613f
  Author: Joshua Hoffman 
  Date:   2024-02-05 (Mon, 05 Feb 2024)

  Changed paths:
M LayoutTests/accessibility/mac/aria-errormessage-expected.txt
M LayoutTests/accessibility/mac/aria-errormessage.html
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h

  Log Message:
  ---
  AX: Revert 272323@main: unsafe calls to addUnconnectedNode (edit)
https://bugs.webkit.org/show_bug.cgi?id=268785
rdar://problem/122344819

Reviewed by Tyler Wilcock.

Bug https://bugs.webkit.org/show_bug.cgi?id=266608 introduced a new behavior
where we create isolated nodes for ignored objects in relations via
addUnconnectedNode. However, this call can be unsafe, particularly if
relations are updated (and unconnected nodes are added) as a result of
accessibilityIsIgnored.

This patch reverts that change and restores the behavior to retrieve
objects off of the main thread when they have no isolated object.

The behavior from https://bugs.webkit.org/show_bug.cgi?id=266608 will be
reintroduced once a mechanism to safely resolve nodes in addUnconnectedNode
is determined.

* LayoutTests/accessibility/mac/aria-errormessage-expected.txt:
* LayoutTests/accessibility/mac/aria-errormessage.html:
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::addRelation):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::create):
(WebCore::AXIsolatedTree::objectsForIDs):
(WebCore::AXIsolatedTree::addUnconnectedNode):
(WebCore::AXIsolatedTree::removeSubtreeFromNodeMap):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:
(WebCore::AXIsolatedTree::objectsForIDs const): Deleted.

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] cfe51e: AX: Comboboxes don't expose their linked objects c...

2024-01-25 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: cfe51e0a34f03d8db9e573f6ea104160f5208549
  
https://github.com/WebKit/WebKit/commit/cfe51e0a34f03d8db9e573f6ea104160f5208549
  Author: Joshua Hoffman 
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
A LayoutTests/accessibility/combobox-linked-listbox-destroyed-expected.txt
A LayoutTests/accessibility/combobox-linked-listbox-destroyed.html
M LayoutTests/platform/glib/TestExpectations
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/AccessibilityNodeObject.cpp
M Source/WebCore/accessibility/AccessibilityNodeObject.h
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

  Log Message:
  ---
  AX: Comboboxes don't expose their linked objects correctly
https://bugs.webkit.org/show_bug.cgi?id=267754
rdar://problem/121242926

Reviewed by Chris Fleizach.

This patch resolves a bug that would cause comboboxes to not expose their 
linked objects
correctly.

That bug prevented ATs from properly navigating common combox patterns like the 
demos
provided on sites like the following:
* 
https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/combobox-autocomplete-list/
* https://webkit.org/blog-files/aria1.0/combobox_with_live_region_status.html

One reason that these comboboxes were "losing" their linked objects was due to 
the way we
currently handle replaced objects. After an object is replaced once, we 
wouldn't update the
m_nodeObjectMapping with the last AXID associated with a given node. This 
information is
critical to how we decide whether to update relations or not, so we were 
missing out on
critical relations updates, and not establishing controller/owner relationships 
properly.
To address this, we now update the m_nodeObjectMapping when new AX render 
objects are
created for the same node. We also now keep track of recently deleted 
relations, since
objects may be removed from relations due to their renderer being destroyed, 
and use this
to determine if a replaced object should result in re-calculating relations.

A test was added to verify that this behavior works for both aria-owns and 
aria-controls.

This patch also unifies several methods (linkedObjects, 
addRadioButtonGroupChildren, and
addRadioButtonGroupMembers) between live and isolated objects by moving them to 
AXCoreObject.
This not only permits constructing linkedObjects on the secondary thread from 
our cached
relations, but also allows linkedObjects to be more accurate, as it will be in 
lockstep
with the isolated tree's relations and not a separate property to update.

* LayoutTests/accessibility/combobox-linked-listbox-destroyed-expected.txt: 
Added.
* LayoutTests/accessibility/combobox-linked-listbox-destroyed.html: Added.
* LayoutTests/platform/glib/TestExpectations:
* Source/WebCore/accessibility/AXCoreObject.cpp:
(WebCore::AXCoreObject::linkedObjects const):
(WebCore::AXCoreObject::appendRadioButtonDescendants const):
(WebCore::AXCoreObject::appendRadioButtonGroupMembers const):
* Source/WebCore/accessibility/AXCoreObject.h:
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::cacheAndInitializeWrapper):
(WebCore::AXObjectCache::performDeferredCacheUpdate):
(WebCore::AXObjectCache::updateIsolatedTree):
(WebCore::AXObjectCache::removeRelations):
(WebCore::AXObjectCache::updateRelationsIfNeeded):
* Source/WebCore/accessibility/AXObjectCache.h:
* Source/WebCore/accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::radioButtonGroup const):
(WebCore::AccessibilityNodeObject::isRadioInput const):
(WebCore::AccessibilityNodeObject::internalLinkElement const):
(WebCore::AccessibilityNodeObject::addRadioButtonGroupChildren const): Deleted.
(WebCore::AccessibilityNodeObject::addRadioButtonGroupMembers const): Deleted.
(WebCore::AccessibilityNodeObject::linkedObjects const): Deleted.
* Source/WebCore/accessibility/AccessibilityNodeObject.h:
* Source/WebCore/accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::observableObject const):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeProperties):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::updateNodeProperties):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:

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


_

[webkit-changes] [WebKit/WebKit] ec4f49: AX: Relative frames for RenderTables aren't being ...

2024-01-23 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ec4f4923b19d0ed56921d6b5b0aadb69ada735eb
  
https://github.com/WebKit/WebKit/commit/ec4f4923b19d0ed56921d6b5b0aadb69ada735eb
  Author: Joshua Hoffman 
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
M LayoutTests/accessibility-isolated-tree/TestExpectations
M Source/WebCore/rendering/RenderTable.cpp

  Log Message:
  ---
  AX: Relative frames for RenderTables aren't being cached
https://bugs.webkit.org/show_bug.cgi?id=267913
rdar://problem/121417745

Reviewed by Tyler Wilcock.

We had not been caching the relative frame of RenderTables on paint since they 
override RenderBlock::paintObject.

This starts caching those frames on paint.

* LayoutTests/accessibility-isolated-tree/TestExpectations:
* Source/WebCore/rendering/RenderTable.cpp:
(WebCore::RenderTable::paintObject):

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 0c3392: AX: ASSERTION FAILED: m_table inside of AXIsolated...

2024-01-11 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0c339289de3709d9364926b0480ceb11875478a6
  
https://github.com/WebKit/WebKit/commit/0c339289de3709d9364926b0480ceb11875478a6
  Author: Joshua Hoffman 
  Date:   2024-01-11 (Thu, 11 Jan 2024)

  Changed paths:
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp

  Log Message:
  ---
  AX: ASSERTION FAILED: m_table inside of AXIsolatedTree::create
https://bugs.webkit.org/show_bug.cgi?id=267348
rdar://120788145

Reviewed by Andres Gonzalez.

We cannot rely on using axObjectCache.relations() to iterate the new relations 
during the creation of the
isolated tree, as that HashMap may be modified or in the process of being 
updated. This patch creates a
copy of these relations instead, to prevent this issue.

This change also prevents the need to call AXObjectCache::relations() 
twice—which could subsequently call
updateRelationsIfNeeded() downstream.

* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::create):

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 51f836: AX: Tables with one row of all header cells should...

2024-01-05 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 51f8361485f6936bad9dd41d6028a9b1b43d3fde
  
https://github.com/WebKit/WebKit/commit/51f8361485f6936bad9dd41d6028a9b1b43d3fde
  Author: Joshua Hoffman 
  Date:   2024-01-05 (Fri, 05 Jan 2024)

  Changed paths:
A LayoutTests/accessibility/single-th-layout-table-expected.txt
A LayoutTests/accessibility/single-th-layout-table.html
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/AccessibilityTable.cpp

  Log Message:
  ---
  AX: Tables with one row of all header cells should not be exposed as data 
tables
https://bugs.webkit.org/show_bug.cgi?id=267056
rdar://119941473

Reviewed by Tyler Wilcock.

Due to logic in isDataTable, we currently expose tables with one row of all 
header
cells as data tables. But, most other single-row tables are considered layout 
tables.

This patch updates out logic to consider this markup a layout table.

AXObjectCache::childrenChanged was also updated to recompute a tables 
exposability when
rows change outside of table sections (tbody, thead, tfoot).

* LayoutTests/accessibility/single-th-layout-table-expected.txt: Added.
* LayoutTests/accessibility/single-th-layout-table.html: Added.
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::childrenChanged):
* Source/WebCore/accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::isDataTable const):

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 1a8243: AX: Grids/tables are not resilient to invalid Row-...

2023-12-21 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1a8243f4e81e0c14d5d032cf42037eafea856b67
  
https://github.com/WebKit/WebKit/commit/1a8243f4e81e0c14d5d032cf42037eafea856b67
  Author: Joshua Hoffman 
  Date:   2023-12-21 (Thu, 21 Dec 2023)

  Changed paths:
A LayoutTests/accessibility/grid-row-authoring-error-ignored.html
A 
LayoutTests/platform/glib/accessibility/grid-row-authoring-error-ignored-expected.txt
A 
LayoutTests/platform/mac/accessibility/grid-row-authoring-error-ignored-expected.txt
M Source/WebCore/accessibility/AXCoreObject.h
M Source/WebCore/accessibility/AccessibilityObject.cpp
M Source/WebCore/accessibility/AccessibilityObject.h
M Source/WebCore/accessibility/AccessibilityRenderObject.cpp

  Log Message:
  ---
  AX: Grids/tables are not resilient to invalid Row->Cell hierarchy
https://bugs.webkit.org/show_bug.cgi?id=266680
rdar://118938262

Reviewed by Chris Fleizach.

Our AX tree structure for tables is not resilient for a common authoring error 
where
table rows are not the direct unignored parent of table cells. This markdown 
does
not follow the spec (https://www.w3.org/TR/wai-aria-1.1/#gridcell), but is used
by authors regardless. This has shown be the cause of missing content in a 
variety
of tables.

To be more resilient to these errors, this patch makes all objects that are 
between
cells and their parent rows ignored. A new test was added to verify this 
behavior.

* LayoutTests/accessibility/grid-row-authoring-error-ignored.html: Added.
* 
LayoutTests/platform/glib/accessibility/grid-row-authoring-error-ignored-expected.txt:
 Added.
* 
LayoutTests/platform/mac/accessibility/grid-row-authoring-error-ignored-expected.txt:
 Added.
* Source/WebCore/accessibility/AXCoreObject.h:
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::computeAncestorFlags const):
(WebCore::AccessibilityObject::matchesAncestorFlag const):
(WebCore::AccessibilityObject::isInRow const):
(WebCore::AccessibilityObject::ignoredByRowAncestor const):
* Source/WebCore/accessibility/AccessibilityObject.h:
* Source/WebCore/accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const):

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] e4ad61: AX: Move objectsForIds off of the main thread

2023-12-19 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e4ad61660d18fb4c6ea566f697dc59bfa0229ae3
  
https://github.com/WebKit/WebKit/commit/e4ad61660d18fb4c6ea566f697dc59bfa0229ae3
  Author: Joshua Hoffman 
  Date:   2023-12-19 (Tue, 19 Dec 2023)

  Changed paths:
M LayoutTests/accessibility/mac/aria-errormessage-expected.txt
M LayoutTests/accessibility/mac/aria-errormessage.html
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h

  Log Message:
  ---
  AX: Move objectsForIds off of the main thread
https://bugs.webkit.org/show_bug.cgi?id=266608
rdar://116133586

Reviewed by Tyler Wilcock.

This patch moves objectsForIDs completely off of the main thread by eagerly
caching ignored objects that are origins/targets of relationships. This allows
all potentially requested AX objects to be served from the AX thread.

These objects are being added as unconnected in two spots: (1) when the isolated
tree is initialized and (2) when a new relation is being added.

* LayoutTests/accessibility/mac/aria-errormessage-expected.txt:
* LayoutTests/accessibility/mac/aria-errormessage.html:
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::addRelation):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::create):
(WebCore::AXIsolatedTree::objectsForIDs):
(WebCore::AXIsolatedTree::addUnconnectedNode):
(WebCore::AXIsolatedTree::removeSubtreeFromNodeMap):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 260dbd: AX: Serve relatedObjectIdsFor off of the main thread

2023-12-14 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 260dbd54ddc991eb4da22ade56c40a850e31fe81
  
https://github.com/WebKit/WebKit/commit/260dbd54ddc991eb4da22ade56c40a850e31fe81
  Author: Joshua Hoffman 
  Date:   2023-12-14 (Thu, 14 Dec 2023)

  Changed paths:
M LayoutTests/accessibility/mac/table-headers-attribute.html
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h

  Log Message:
  ---
  AX: Serve relatedObjectIdsFor off of the main thread
https://bugs.webkit.org/show_bug.cgi?id=266268
rdar://116133758

Reviewed by Tyler Wilcock.

Before this patch, we would have to go to the main thread to retrieve relations 
from the cache
whenever they were dirty inside AXIsolatedTree::relatedObjectIdsFor. This patch 
removes that
necessity by caching relations, which is performed only when they are dirty.

Taking advantage of the new deferred node updates logic, we now cache relations 
from the
AXObjectCache only if the m_relationsNeedUpdate flag is set when 
processQueuedNodeUpdates
is fired, rather than caching lazily in relatedObjectIdsFor. This allows
AXIsolatedTree::relatedObjectIdsFor to use the cached m_relations.

One test was made async to reflect this change.

* LayoutTests/accessibility/mac/table-headers-attribute.html:
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::relationsNeedUpdate):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::create):
(WebCore::AXIsolatedTree::updateRelations):
(WebCore::AXIsolatedTree::relatedObjectIDsFor):
(WebCore::AXIsolatedTree::processQueuedNodeUpdates):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 0b4b1f: AX: Update hoffmanjoshua committer status

2023-12-11 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0b4b1f7fa771ca1c4f8b55f0dbe9b15d6034e641
  
https://github.com/WebKit/WebKit/commit/0b4b1f7fa771ca1c4f8b55f0dbe9b15d6034e641
  Author: Joshua Hoffman 
  Date:   2023-12-11 (Mon, 11 Dec 2023)

  Changed paths:
M metadata/contributors.json

  Log Message:
  ---
  AX: Update hoffmanjoshua committer status
https://bugs.webkit.org/show_bug.cgi?id=266270
rdar://119534277

Reviewed by Tyler Wilcock.

Update Josh Hoffman's (hoffmanjoshua) status to committer.

* metadata/contributors.json:

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] d39e84: AX: De-duplicate node changes

2023-12-11 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d39e84f7bea75d5494ef9929e78d32b93f1ddb72
  
https://github.com/WebKit/WebKit/commit/d39e84f7bea75d5494ef9929e78d32b93f1ddb72
  Author: Joshua Hoffman 
  Date:   2023-12-11 (Mon, 11 Dec 2023)

  Changed paths:
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/AXObjectCache.h
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h
M Source/WebCore/accessibility/mac/AXObjectCacheMac.mm

  Log Message:
  ---
  AX: De-duplicate node changes
https://bugs.webkit.org/show_bug.cgi?id=265702
rdar://problem/119052949

Reviewed by Andres Gonzalez.

By nature of deferring some node changes while handling others eagerly, we end 
up doing duplicate work.
For example, we may queue up both a property change and a node change for the 
same node, which results
in unnecessary work.

To resolve this, this patch creates a new route for all queued node changes to 
go through,
AXIsolatedTree::queueNodeUpdate, and a new place to process those queued 
changes,
AXIsolatedTree::processQueuedNodeUpdates. Inside this mechanism, we queue up 
three types
of node changes (in three sets/arrays):
(1) Node changes
(2) Children changes
(3) Property changes

When we are queuing nodes, we add property updates only for nodes that aren't 
already queued for a
node change. When processing queued updates, for children and property changes, 
we prevent duplicates
by checking if a node is already present in m_unresolvedPendingAppends.

We process these queued changes in two cases:
(1) After a timer that fires 100ms after a node change has been queued up.
(2) Before we post a platform notification.

This patch does *not* include the work to defer updateChildren. That work will 
come in a follow up patch.

* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::AXObjectCache):
(WebCore::AXObjectCache::~AXObjectCache):
(WebCore::AXObjectCache::updateIsolatedTree):
(WebCore::AXObjectCache::updateIsolatedTree const):
(WebCore::AXObjectCache::startUpdateTreeSnapshotTimer):
(WebCore::AXObjectCache::updateTreeSnapshotTimerFired):
(WebCore::AXObjectCache::processQueuedIsolatedNodeUpdates):
* Source/WebCore/accessibility/AXObjectCache.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::updatePropertiesForSelfAndDescendants):
(WebCore::AXIsolatedTree::updateNodeProperties):
(WebCore::AXIsolatedTree::updateNodeAndDependentProperties):
(WebCore::AXIsolatedTree::labelCreated):
(WebCore::AXIsolatedTree::queueNodeUpdate):
(WebCore::AXIsolatedTree::processQueuedNodeUpdates):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:
(WebCore::NodeUpdateOptions::NodeUpdateOptions):
(WebCore::NodeUpdateOptions::nodeUpdate):
(WebCore::NodeUpdateOptions::childrenUpdate):
* Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::postPlatformNotification):
(WebCore::AXObjectCache::postPlatformAnnouncementNotification):
(WebCore::AXObjectCache::postTextStateChangePlatformNotification):
(WebCore::AXObjectCache::postTextReplacementPlatformNotification):
(WebCore::AXObjectCache::postTextReplacementPlatformNotificationForTextControl):

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] a61b53: AX: Roll back a retracted ARIA change: default ari...

2023-12-04 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a61b5328717137fe8cae16b24355504c75326a00
  
https://github.com/WebKit/WebKit/commit/a61b5328717137fe8cae16b24355504c75326a00
  Author: Joshua Hoffman 
  Date:   2023-12-04 (Mon, 04 Dec 2023)

  Changed paths:
M LayoutTests/accessibility/gtk/xml-roles-exposed-expected.txt
M LayoutTests/accessibility/heading-level-expected.txt
M LayoutTests/accessibility/heading-level.html
M LayoutTests/accessibility/ios-simulator/heading-text-updates-expected.txt
M LayoutTests/accessibility/mac/heading-text-updates-expected.txt
M LayoutTests/inspector/dom/getAccessibilityPropertiesForNode-expected.txt
M LayoutTests/platform/gtk/accessibility/gtk/xml-roles-exposed-expected.txt
M 
LayoutTests/platform/gtk/inspector/dom/getAccessibilityPropertiesForNode-expected.txt
M Source/WebCore/accessibility/AccessibilityNodeObject.cpp

  Log Message:
  ---
  AX: Roll back a retracted ARIA change: default aria-level for heading role 
should not randomly be 2.
https://bugs.webkit.org/show_bug.cgi?id=265713
rdar://119059172

Reviewed by Chris Fleizach.

This patch rolls back a change that made the default aria-level for headings = 
2. This default value
was removed in ARIA 1.2 https://www.w3.org/TR/wai-aria-1.2/#heading.

The expectation for mac/heading-text-updates.html was also updated as a result 
of this revert.

* LayoutTests/accessibility/gtk/xml-roles-exposed-expected.txt:
* LayoutTests/accessibility/heading-level-expected.txt:
* LayoutTests/accessibility/heading-level.html:
* LayoutTests/accessibility/ios-simulator/heading-text-updates-expected.txt:
* LayoutTests/accessibility/mac/heading-text-updates-expected.txt:
* LayoutTests/inspector/dom/getAccessibilityPropertiesForNode-expected.txt:
* LayoutTests/platform/gtk/accessibility/gtk/xml-roles-exposed-expected.txt:
* 
LayoutTests/platform/gtk/inspector/dom/getAccessibilityPropertiesForNode-expected.txt:
* Source/WebCore/accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::headingLevel const):

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 5965a5: AX: TextInputMarkedTextMarkerRange should be cache...

2023-11-28 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5965a5a92e802141a8ec48b1a83c9bb88069f1e1
  
https://github.com/WebKit/WebKit/commit/5965a5a92e802141a8ec48b1a83c9bb88069f1e1
  Author: Joshua Hoffman 
  Date:   2023-11-28 (Tue, 28 Nov 2023)

  Changed paths:
M LayoutTests/accessibility/mac/text-input-marked-range-expected.txt
M LayoutTests/accessibility/mac/text-input-marked-range.html
M 
LayoutTests/accessibility/mac/text-input-marked-text-marker-range-expected.txt
M LayoutTests/accessibility/mac/text-input-marked-text-marker-range.html
M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp

  Log Message:
  ---
  AX: TextInputMarkedTextMarkerRange should be cached during initialization
https://bugs.webkit.org/show_bug.cgi?id=265434
rdar://problem/118866640

Reviewed by Tyler Wilcock.

When isolated objects are created for text controls, we do not cache the 
initial TextInputMarkedTextMarkerRange
value. This becomes an issue when an object is initialized while there is 
already marked text. In that case, not
caching that value initially will return a null text marker range, which is 
incorrect.

This patch caches that value when initializing the object, as well as updates 
related tests to (1) verify this
behavior and (2) retrieve that range asynchronously.

* LayoutTests/accessibility/mac/text-input-marked-range-expected.txt:
* LayoutTests/accessibility/mac/text-input-marked-range.html:
* 
LayoutTests/accessibility/mac/text-input-marked-text-marker-range-expected.txt:
* LayoutTests/accessibility/mac/text-input-marked-text-marker-range.html:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeProperties):

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 1cf46f: AX: Cache AccessibilityText eagerly

2023-11-27 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1cf46fbe9b7ba69427e34638f12ff1489dace7ce
  
https://github.com/WebKit/WebKit/commit/1cf46fbe9b7ba69427e34638f12ff1489dace7ce
  Author: Joshua Hoffman 
  Date:   2023-11-27 (Mon, 27 Nov 2023)

  Changed paths:
M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp

  Log Message:
  ---
  AX: Cache AccessibilityText eagerly
https://bugs.webkit.org/show_bug.cgi?id=265056
rdar://118574320

Reviewed by Chris Fleizach.

We cache accessibilityText lazily at present. This patch eagerly caches
that value on the AX thread, preventing main thread hits.

* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeProperties):
(WebCore::AXIsolatedObject::accessibilityText const):

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] ef43e4: accAX: Cache accessibilityText to serve Title, Des...

2023-11-16 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ef43e42c5970c6e8ee6423edf077d79829b00867
  
https://github.com/WebKit/WebKit/commit/ef43e42c5970c6e8ee6423edf077d79829b00867
  Author: Joshua Hoffman 
  Date:   2023-11-16 (Thu, 16 Nov 2023)

  Changed paths:
M Source/WebCore/accessibility/AXCoreObject.cpp
M Source/WebCore/accessibility/AXCoreObject.h
M Source/WebCore/accessibility/AccessibilityNodeObject.cpp
M Source/WebCore/accessibility/AccessibilityObject.h
M Source/WebCore/accessibility/cocoa/AccessibilityObjectCocoa.mm
M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h
M Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm

  Log Message:
  ---
  accAX: Cache accessibilityText to serve Title, Description, Help Text 
attributes off of the main thread
https://bugs.webkit.org/show_bug.cgi?id=264642
rdar://118255218

Reviewed by Tyler Wilcock.

When the title, description, or help text attributes are requested for an AX 
element for the first time,
they are currently served on the main thread. To reduce this main thread 
dependency, this patch lazily
caches accessibilityText instead of the three attributes individually.

Caching accessibilityText allows us to compute the values for title, 
description, and help text on the
AX thread. This also allows us to move the implementations for these methods to 
AXCoreObject, so that
they can be shared between the live and isolated trees. We also benefit from 
caching AccessibilityText
by eliminating the redundant work within title, description, and help text 
separately.

Our old implementation of titleAttributeValue used textUnderElement() for 
calculating the title
of summary elements. We do not cache this, so instead, the implementation of 
visibleText was
modified to expose summary's visible text.

* Source/WebCore/accessibility/AXCoreObject.cpp:
(WebCore::isVisibleText):
(WebCore::isDescriptiveText):
(WebCore::AXCoreObject::descriptionAttributeValue const):
(WebCore::AXCoreObject::titleAttributeValue const):
(WebCore::AXCoreObject::helpTextAttributeValue const):
* Source/WebCore/accessibility/AXCoreObject.h:
(WebCore::AccessibilityText::AccessibilityText):
* Source/WebCore/accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::visibleText const):
* Source/WebCore/accessibility/AccessibilityObject.h:
(WebCore::AccessibilityText::AccessibilityText): Deleted.
* Source/WebCore/accessibility/cocoa/AccessibilityObjectCocoa.mm:
(WebCore::isVisibleText): Deleted.
(WebCore::isDescriptiveText): Deleted.
(WebCore::AccessibilityObject::descriptionAttributeValue const): Deleted.
(WebCore::AccessibilityObject::titleAttributeValue const): Deleted.
(WebCore::AccessibilityObject::helpTextAttributeValue const): Deleted.
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeProperties):
(WebCore::AXIsolatedObject::fileUploadButtonReturnsValueInTitle const):
(WebCore::AXIsolatedObject::getOrRetrievePropertyValue):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:
* Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm:
(WebCore::AXIsolatedObject::descriptionAttributeValue const): Deleted.
(WebCore::AXIsolatedObject::helpTextAttributeValue const): Deleted.
(WebCore::AXIsolatedObject::titleAttributeValue const): Deleted.

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] d084df: AX: Move isMatchingPlugin off of the main thread

2023-11-15 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d084dfdc80b668ae9b7ae5c185e1f74fd6cfe52e
  
https://github.com/WebKit/WebKit/commit/d084dfdc80b668ae9b7ae5c185e1f74fd6cfe52e
  Author: Joshua Hoffman 
  Date:   2023-11-15 (Wed, 15 Nov 2023)

  Changed paths:
A LayoutTests/accessibility/mac/widget-visibility-expected.txt
A LayoutTests/accessibility/mac/widget-visibility.html
M LayoutTests/platform/mac-wk1/TestExpectations
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/AccessibilityObject.h
M Source/WebCore/accessibility/AccessibilityRenderObject.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
M Source/WebCore/rendering/RenderWidget.cpp

  Log Message:
  ---
  AX: Move isMatchingPlugin off of the main thread
https://bugs.webkit.org/show_bug.cgi?id=264262
rdar://problem/118001876

Reviewed by Tyler Wilcock.

The attribute isMatchingPlugin currently hits the main thread every time it is 
requested, so in our efforts
to move all properties to the AX thread, we need to address this case. To 
calculate this on the AX thread,
this patch caches a new property: isPlugin. We also update the cached property 
of IsVisible via the
AXObject cache as necessary.

The added test confirms that the cached value for isVisible is updated when the 
widget is shown or
hidden as the style of the embed element changes.

* LayoutTests/accessibility/mac/widget-visibility-expected.txt: Added.
* LayoutTests/accessibility/mac/widget-visibility.html: Added.
* LayoutTests/platform/mac-wk1/TestExpectations:
* Source/WebCore/accessibility/AXCoreObject.h:
* Source/WebCore/accessibility/AXLogger.cpp:
(WebCore::operator<<):
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::updateIsolatedTree):
(WebCore::AXObjectCache::onWidgetVisibilityChanged):
* Source/WebCore/accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::onWidgetVisibilityChanged):
* Source/WebCore/accessibility/AccessibilityObject.h:
* Source/WebCore/accessibility/AccessibilityRenderObject.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeProperties):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::updateNodeProperties):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:
* Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(isMatchingPlugin):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
* Source/WebCore/rendering/RenderWidget.cpp:
(WebCore::RenderWidget::setWidget):
(WebCore::RenderWidget::styleDidChange):

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] ecb40f: AX: VoiceOver does not announce button in text if ...

2023-11-10 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ecb40fdcddf864c54b8bd70b37a8713241e9b846
  
https://github.com/WebKit/WebKit/commit/ecb40fdcddf864c54b8bd70b37a8713241e9b846
  Author: Joshua Hoffman 
  Date:   2023-11-10 (Fri, 10 Nov 2023)

  Changed paths:
A LayoutTests/accessibility/custom-elements/shadow-element-text-expected.txt
A LayoutTests/accessibility/custom-elements/shadow-element-text.html
A 
LayoutTests/platform/glib/accessibility/custom-elements/shadow-element-text-expected.txt
M Source/WebCore/accessibility/AccessibilityNodeObject.cpp

  Log Message:
  ---
  AX: VoiceOver does not announce button in text if button is in shadow root
https://bugs.webkit.org/show_bug.cgi?id=264410
rdar://118118138

Reviewed by Tyler Wilcock.

In shadow DOM elements, if text was within nested elements, textUnderElement 
would not include it.

This patch resolves that by adding to our logic for when we decide whether or 
not to skip a child's
text. Instead of just checking whether the child's parent and the current node 
match, we also check
that the elements are either both in the DOM or Shadow DOM.

* LayoutTests/accessibility/custom-elements/shadow-element-text-expected.txt: 
Added.
* LayoutTests/accessibility/custom-elements/shadow-element-text.html: Added.
* 
LayoutTests/platform/glib/accessibility/custom-elements/shadow-element-text-expected.txt:
 Added.
* Source/WebCore/accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::textUnderElement const):

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] ae0dcb: y nAX: Move selectedTextRange off of the main-thread

2023-11-07 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ae0dcb554a690c71b5b5943e4d6467f9bf40c004
  
https://github.com/WebKit/WebKit/commit/ae0dcb554a690c71b5b5943e4d6467f9bf40c004
  Author: Joshua Hoffman 
  Date:   2023-11-07 (Tue, 07 Nov 2023)

  Changed paths:
M LayoutTests/accessibility/content-editable-as-textarea.html
M LayoutTests/accessibility/textbox-role-reports-selection.html
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/AXObjectCache.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

  Log Message:
  ---
  y nAX: Move selectedTextRange off of the main-thread
https://bugs.webkit.org/show_bug.cgi?id=263940
rdar://117568720

Reviewed by Andres Gonzalez.

We currently use the main thread to get the selectedTextRange when in isolated 
tree mode. In the
effort to completely sever ITM, this should be cached to be served on the AX 
thread.

This patch caches that value on text input objects, and updates the property 
every time text
selection changes. This update is debounced to account for text selection 
in-progress and
minimize computation.

* LayoutTests/accessibility/content-editable-as-textarea.html:
* LayoutTests/accessibility/textbox-role-reports-selection.html:
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::AXObjectCache):
(WebCore::AXObjectCache::~AXObjectCache):
(WebCore::AXObjectCache::postTextStateChangeNotification):
(WebCore::AXObjectCache::updateIsolatedTree):
(WebCore::AXObjectCache::selectedTextRangeTimerFired):
* Source/WebCore/accessibility/AXObjectCache.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeProperties):
(WebCore::AXIsolatedObject::selectedTextRange const): Deleted.
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::updateNodeProperties):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:
* Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::platformSelectedTextRangeDebounceInterval const):

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] bb55be: Expose element role as AXDisclosureTrian...

2023-11-04 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: bb55be859f7793e25dc9bcc330b0ca32de28bfbe
  
https://github.com/WebKit/WebKit/commit/bb55be859f7793e25dc9bcc330b0ca32de28bfbe
  Author: Joshua Hoffman 
  Date:   2023-11-04 (Sat, 04 Nov 2023)

  Changed paths:
M LayoutTests/accessibility/display-contents/element-roles-expected.txt
M LayoutTests/accessibility/mac/details-summary-expected.txt
M 
LayoutTests/accessibility/mac/details-summary-role-description-expected.txt
M LayoutTests/accessibility/mac/details-summary-role-description.html
M LayoutTests/accessibility/mac/details-summary.html
M LayoutTests/accessibility/mac/search-predicate-summary-expected.txt
M 
LayoutTests/platform/mac-wk1/accessibility/aria-visible-element-roles-expected.txt
M 
LayoutTests/platform/mac-wk2/accessibility/aria-visible-element-roles-expected.txt
M Source/WebCore/accessibility/AXCoreObject.cpp
M Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm

  Log Message:
  ---
  Expose  element role as AXDisclosureTriangle to match AX API
https://bugs.webkit.org/show_bug.cgi?id=108979
rdar://13661104

Reviewed by Chris Fleizach.

We had been exposing  with an AXButton role in the past, but it should 
have an
AXDisclosureTriangle role to be aligned with the Accessibility API Mappings:
https://www.w3.org/TR/html-aam-1.0/#el-summary

* LayoutTests/accessibility/display-contents/element-roles-expected.txt:
* LayoutTests/accessibility/mac/details-summary-expected.txt:
* LayoutTests/accessibility/mac/details-summary-role-description-expected.txt:
* LayoutTests/accessibility/mac/details-summary-role-description.html:
* LayoutTests/accessibility/mac/details-summary.html:
* LayoutTests/accessibility/mac/search-predicate-summary-expected.txt:
* 
LayoutTests/platform/mac-wk1/accessibility/aria-visible-element-roles-expected.txt:
* 
LayoutTests/platform/mac-wk2/accessibility/aria-visible-element-roles-expected.txt:
* Source/WebCore/accessibility/AXCoreObject.cpp:
(WebCore::AXCoreObject::value):
* Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm:
(WebCore::Accessibility::createPlatformRoleMap):

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 3e8a39: AX: Fix thread safety issue in AXIsolatedTree::set...

2023-11-02 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3e8a39cebd79433c45e1c4878fd017cd39545479
  
https://github.com/WebKit/WebKit/commit/3e8a39cebd79433c45e1c4878fd017cd39545479
  Author: Joshua Hoffman 
  Date:   2023-11-02 (Thu, 02 Nov 2023)

  Changed paths:
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h

  Log Message:
  ---
  AX: Fix thread safety issue in AXIsolatedTree::setSelectedTextMarkerRange
https://bugs.webkit.org/show_bug.cgi?id=264045
rdar://117803232

Reviewed by Andres Gonzalez.

We need to hold a lock when modifying m_selectedTextMarkerRange since it is 
accessed on both
the main and AX thread.

* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::selectedTextMarkerRange):
(WebCore::AXIsolatedTree::setSelectedTextMarkerRange):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:
(WebCore::AXIsolatedTree::selectedTextMarkerRange): Deleted.
(WebCore::AXIsolatedTree::setSelectedTextMarkerRange): Deleted.

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] aa6898: AX: Extremely long textareas/contenteditable field...

2023-11-01 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: aa6898f2464d872d4e8e64c01b046f8fd04390c0
  
https://github.com/WebKit/WebKit/commit/aa6898f2464d872d4e8e64c01b046f8fd04390c0
  Author: Joshua Hoffman 
  Date:   2023-11-01 (Wed, 01 Nov 2023)

  Changed paths:
A LayoutTests/accessibility/mac/large-text-area-expected.txt
A LayoutTests/accessibility/mac/large-text-area.html
A LayoutTests/accessibility/mac/spellcheck-with-voiceover-expected.txt
A LayoutTests/accessibility/mac/spellcheck-with-voiceover.html
M LayoutTests/platform/mac-wk1/TestExpectations
M Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm
M Source/WebCore/accessibility/mac/AXObjectCacheMac.mm
M Source/WebCore/editing/Editor.cpp
M Source/WebCore/editing/TextCheckingHelper.cpp
M Source/WebCore/editing/TextCheckingHelper.h
M Tools/WebKitTestRunner/InjectedBundle/AccessibilityController.h
M Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl
M 
Tools/WebKitTestRunner/InjectedBundle/atspi/AccessibilityControllerAtspi.cpp
M Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityControllerIOS.mm
M Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityControllerMac.mm
M Tools/WebKitTestRunner/InjectedBundle/win/AccessibilityControllerWin.cpp

  Log Message:
  ---
  AX: Extremely long textareas/contenteditable fields are slow with Voiceover
https://bugs.webkit.org/show_bug.cgi?id=263303
rdar://problem/117114220

Reviewed by Tyler Wilcock.

Very long textareas/contenteditable fields can be slow with AT due to two 
expensive operations in WebKit:
(1) Spellchecking long text & drawing misspellings.
(2) Caching text using rangeForCharacterRange on the isolated tree.

This patch addresses those two causes by:
(1) Not spellchecking on the WebKit side when Voiceover is the AX client.
(2) Only caching textarea/contenteditable values with fewer than 12,500 
characters.

There are also two tests included in this patch. The first verifies that not 
caching input values greater
than 12,500 does not change behavior and the second confirms that we do not 
spellcheck within WebKit when
VoiceOver is the AX client.

* LayoutTests/accessibility/mac/large-text-area-expected.txt: Added.
* LayoutTests/accessibility/mac/large-text-area.html: Added.
* LayoutTests/accessibility/mac/spellcheck-with-voiceover-expected.txt: Added.
* LayoutTests/accessibility/mac/spellcheck-with-voiceover.html: Added.
* LayoutTests/platform/mac-wk1/TestExpectations:
* Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm:
(WebCore::AXIsolatedObject::initializePlatformProperties):
* Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::shouldSpellCheck):
* Source/WebCore/editing/Editor.cpp:
(WebCore::Editor::markMisspellingsAfterTypingToWord):
(WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
(WebCore::Editor::markMisspellingsAndBadGrammar):
* Source/WebCore/editing/TextCheckingHelper.cpp:
(WebCore::TextCheckingHelper::findFirstMisspelledWordOrUngrammaticalPhrase 
const):
(WebCore::TextCheckingHelper::guessesForMisspelledWordOrUngrammaticalPhrase 
const):
(WebCore::platformOrClientDrivenTextCheckerEnabled):
* Source/WebCore/editing/TextCheckingHelper.h:
* Tools/WebKitTestRunner/InjectedBundle/AccessibilityController.h:
* Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl:
* Tools/WebKitTestRunner/InjectedBundle/atspi/AccessibilityControllerAtspi.cpp:
(WTR::AccessibilityController::overrideClient):
* Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityControllerIOS.mm:
(WTR::AccessibilityController::overrideClient):
* Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityControllerMac.mm:
(WTR::AccessibilityController::overrideClient):
* Tools/WebKitTestRunner/InjectedBundle/win/AccessibilityControllerWin.cpp:
(WTR::AccessibilityController::overrideClient):

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 383986: AX: Sometimes unable to see play/pause animation c...

2023-10-27 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 38398649280b12506c8e9423f05bd6e0c3861226
  
https://github.com/WebKit/WebKit/commit/38398649280b12506c8e9423f05bd6e0c3861226
  Author: Joshua Hoffman 
  Date:   2023-10-27 (Fri, 27 Oct 2023)

  Changed paths:
M Source/WebCore/page/ContextMenuController.cpp
M Source/WebCore/page/Page.cpp
M Source/WebCore/page/Page.h
M Source/WebKit/WebProcess/WebPage/WebPage.cpp

  Log Message:
  ---
  AX: Sometimes unable to see play/pause animation context menu item when 
setting is toggled
https://bugs.webkit.org/show_bug.cgi?id=263735
rdar://117215059

Reviewed by Tyler Wilcock.

When deciding whether to add the "Play/Pause all animations" or "Play/Pause 
animation" context menu item, we had previously
used a softlink to reference _AXSReduceMotionAutoplayAnimatedImagesEnabled. The 
issue with using this from the web content
process, however, is that distributed notifications are not permitted as per 
the sandbox, so updates to this setting were
not reaching that process.

To resolve this, this patch now piggybacks onto our existing cross-process 
update for the animation setting using the
AccessibilityPreferencesChanged notification and 
WebPage::updateImageAnimationEnabled. A new flag, 
m_systemAllowsAnimationControls,
now maintains the state of this setting, and allows the Page to have an 
up-to-date view of the setting without relying on the
softlink.

* Source/WebCore/page/ContextMenuController.cpp:
(WebCore::ContextMenuController::populate):
* Source/WebCore/page/Page.cpp:
(WebCore::Page::setSystemAllowsAnimationControls):
* Source/WebCore/page/Page.h:
(WebCore::Page::systemAllowsAnimationControls const):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updateImageAnimationEnabled):

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] c24f05: AX: optimize accessibilityIsIgnored computation

2023-10-13 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c24f056ed7c169e94457c1d267131a42790a29a4
  
https://github.com/WebKit/WebKit/commit/c24f056ed7c169e94457c1d267131a42790a29a4
  Author: Joshua Hoffman 
  Date:   2023-10-13 (Fri, 13 Oct 2023)

  Changed paths:
M Source/WebCore/accessibility/AccessibilityNodeObject.cpp
M Source/WebCore/accessibility/AccessibilityObject.cpp
M Source/WebCore/accessibility/AccessibilityObject.h
M Source/WebCore/accessibility/AccessibilityRenderObject.cpp

  Log Message:
  ---
  AX: optimize accessibilityIsIgnored computation
https://bugs.webkit.org/show_bug.cgi?id=262733
rdar://problem/116541936

Reviewed by Tyler Wilcock.

We currently traverse the ancestor hierarchy three times to compute each of
isAXHidden, isPresentationalChildOfAriaRole, and isDescendantOfBarrenParent
—all of which we gather to compute accessibility is ignored.

This patch combines those ancestor traversals into one, using
generateIsIgnoredFromParentData. This saves up to roughly 20% of samples for
accessibilityIsIgnored across various sites.

* Source/WebCore/accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::canHaveChildren const):
(WebCore::AccessibilityNodeObject::computeAccessibilityIsIgnored const):
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isARIAHidden const):
(WebCore::AccessibilityObject::isAXHidden const):
(WebCore::AccessibilityObject::defaultObjectInclusion const):
(WebCore::AccessibilityObject::setIsIgnoredFromParentDataForChild):
(WebCore::AccessibilityObject::isPresentationalChildOfAriaRole const): Deleted.
* Source/WebCore/accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::hasImplicitGenericRole const):
* Source/WebCore/accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const):

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 7d4e7a: AX: Attribute cache is not enabled in traverseToOf...

2023-10-10 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7d4e7afc92b350aa310645b7704a42672b41d29a
  
https://github.com/WebKit/WebKit/commit/7d4e7afc92b350aa310645b7704a42672b41d29a
  Author: Joshua Hoffman 
  Date:   2023-10-10 (Tue, 10 Oct 2023)

  Changed paths:
M Source/WebCore/accessibility/AXObjectCache.cpp

  Log Message:
  ---
  AX: Attribute cache is not enabled in traverseToOffsetInRange
https://bugs.webkit.org/show_bug.cgi?id=262929
rdar://problem/116703599

Reviewed by Chris Fleizach.

This patch enables the AXObjectAttributeCache in the scope of
AXObjectCache::traverseToOffsetInRange. By doing this, we save
unnecessary accessibilityIsIgnored calls on the main thread.

* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::traverseToOffsetInRange):

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] c6e379: AX: accessibilityIsIgnored cache is not enabled at...

2023-10-07 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c6e3790b95dce89d1332cdf978d12608ce5626dd
  
https://github.com/WebKit/WebKit/commit/c6e3790b95dce89d1332cdf978d12608ce5626dd
  Author: Joshua Hoffman 
  Date:   2023-10-07 (Sat, 07 Oct 2023)

  Changed paths:
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp

  Log Message:
  ---
  AX: accessibilityIsIgnored cache is not enabled at updateChildrenForObjects 
level
https://bugs.webkit.org/show_bug.cgi?id=262800
rdar://problem/116589024

Reviewed by Tyler Wilcock.

We utilize the AXComputedObjectAttributeCache to cache the isIgnored value of 
objects
across certain scopes. Right now, it is enabled in the scope of
AXIsolatedTree::updateChildren.

This patch enables the cache in AXIsolatedTree::updateChildrenForObjects, 
allowing all
of the appends downstream to take advantage of the caching. In testing, this 
can save
up to 20% of samples of accessibilityIsIgnored.

* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::updateChildrenForObjects):

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] a1746d: AX: Move AXSelectedTextMarkerRange off of the main...

2023-10-03 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a1746d78059d34a48dbe6ac54f4e0487d1259772
  
https://github.com/WebKit/WebKit/commit/a1746d78059d34a48dbe6ac54f4e0487d1259772
  Author: Joshua Hoffman 
  Date:   2023-10-03 (Tue, 03 Oct 2023)

  Changed paths:
M 
LayoutTests/accessibility/mac/doctype-node-in-text-marker-crash-expected.txt
M LayoutTests/accessibility/mac/doctype-node-in-text-marker-crash.html
M LayoutTests/accessibility/mac/replace-text-with-range-expected.txt
M 
LayoutTests/accessibility/mac/replace-text-with-range-value-change-notification.html
M LayoutTests/accessibility/mac/replace-text-with-range.html
M LayoutTests/accessibility/mac/text-marker-p-tags-expected.txt
M LayoutTests/accessibility/mac/text-marker-p-tags.html
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/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.mm

  Log Message:
  ---
  AX: Move AXSelectedTextMarkerRange off of the main thread
https://bugs.webkit.org/show_bug.cgi?id=262433
rdar://116128660

Reviewed by Chris Fleizach.

This patch moves the AXSelectedTextMarkerRange attribute off of the main thread 
in
isolated tree mode, by caching the relevant text marker data.

When selection changes on the web, the AXObjectCache is notified through a call 
to
postTextStateChangeNotification from 
FrameSelection::notifyAccessibilityForSelectionChange.
>From there, a new method, onSelectedTextChanged, handles updating the isolated 
>tree's
m_selectedTextMarkerRange with the relevant text markers for the start and end 
of the
selection. These are stored in a pair of TextMarkerData structs.

An important piece of this is that we need the nodes of the start and end text 
markers
to exist in the isolated tree. So, if one or both of these nodes are ignored, 
they are added
to the isolated tree as unconnected nodes. This is handled in 
onSelectedTextChanged.

Finally, when the range is requested via 
AXIsolatedObject::selectedTextMarkerRange(),
an AXTextMarkerRange is constructed from the cached TextMarkerData pair.

This patch also modifies previous tests to make them asynchronous for this new 
behavior.

* LayoutTests/accessibility/mac/doctype-node-in-text-marker-crash-expected.txt:
* LayoutTests/accessibility/mac/doctype-node-in-text-marker-crash.html:
* LayoutTests/accessibility/mac/replace-text-with-range-expected.txt:
* 
LayoutTests/accessibility/mac/replace-text-with-range-value-change-notification.html:
* LayoutTests/accessibility/mac/replace-text-with-range.html:
* LayoutTests/accessibility/mac/text-marker-p-tags-expected.txt:
* LayoutTests/accessibility/mac/text-marker-p-tags.html:
* Source/WebCore/accessibility/AXCoreObject.h:
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::postTextStateChangeNotification):
* Source/WebCore/accessibility/AXObjectCache.h:
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::selectedTextMarkerRange):
* Source/WebCore/accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::selectedVisiblePositionRange const):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::selectedTextMarkerRange):
(WebCore::AXIsolatedObject::selectedVisiblePositionRange const): Deleted.
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:
(WebCore::AXIsolatedTree::selectedTextMarkerRange):
(WebCore::AXIsolatedTree::setSelectedTextMarkerRange):
* Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::onSelectedTextChanged):
* Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper selectedTextMarkerRange]):

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 52cc65: AX: properties using getOrRetrievePropertyValue ar...

2023-09-28 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 52cc65198e6415eebeb901a8317d897560e59abb
  
https://github.com/WebKit/WebKit/commit/52cc65198e6415eebeb901a8317d897560e59abb
  Author: Joshua Hoffman 
  Date:   2023-09-28 (Thu, 28 Sep 2023)

  Changed paths:
M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp

  Log Message:
  ---
  AX: properties using getOrRetrievePropertyValue are not stored in sparse 
property map when empty
https://bugs.webkit.org/show_bug.cgi?id=262195
rdar://problem/116126895

Reviewed by Tyler Wilcock.

In https://bugs.webkit.org/show_bug.cgi?id=261968 (AX: 
AXIsolatedObject::m_propertyMap is not
sparse), all attributes that have a value that is the default for its type are 
not stored in the
property map. However, for properties that hit the main thread in 
getOrRetrievePropertyValue,
this change means that we will not cache empty values, and could access the 
main thread more
frequently as a result of a missing cache entry.

This patch resolves this by always caching the value for properties retrieved 
in that method,
regardless of their value.

* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeProperties):
(WebCore::AXIsolatedObject::getOrRetrievePropertyValue):

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 8a06d3: AX: AXIsolatedObject::m_propertyMap is not sparse

2023-09-26 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 8a06d352a4ab1206a339458a225a90a5927564f9
  
https://github.com/WebKit/WebKit/commit/8a06d352a4ab1206a339458a225a90a5927564f9
  Author: Joshua Hoffman 
  Date:   2023-09-26 (Tue, 26 Sep 2023)

  Changed paths:
M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h

  Log Message:
  ---
  AX: AXIsolatedObject::m_propertyMap is not sparse
https://bugs.webkit.org/show_bug.cgi?id=261968
rdar://115907545

Reviewed by Andres Gonzalez.

This patch makes the AXIsolatedObject::m_propertyMap, where AXIsolatedObject 
properties are cached,
sparse. This is accomplished through conditionally adding properties to the 
map, based on whether
their values are the default for their given type. If a value is the default, 
we don't add it to
the map (or if it changes to be the default, we remove it). Our existing logic 
handles these cases
by returning the type's default value when it does not exist in the property 
map.

The initial size allocation for the propertyMap was brought down to 22 from 92 
after running
this change on several sites and finding the minimum number of properties 
stored.

With this patch applied, on average it reduces the memory footprint of the web 
process (with AX
enabled) by ~33%. This analysis was performed using VoiceOver on an academic 
journal page.

* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::AXIsolatedObject):
(WebCore::AXIsolatedObject::setProperty):
(WebCore::AXIsolatedObject::indexRangePairAttributeValue const):
(WebCore::AXIsolatedObject::pairAttributeValue const): Deleted.
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] ad8070: AX: columnHeaders() and rowHeaders() are performed...

2023-09-22 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ad80707652bd43810f5b3b67c314d0818d195a53
  
https://github.com/WebKit/WebKit/commit/ad80707652bd43810f5b3b67c314d0818d195a53
  Author: Joshua Hoffman 
  Date:   2023-09-22 (Fri, 22 Sep 2023)

  Changed paths:
A LayoutTests/accessibility/column-header-scope-expected.txt
A LayoutTests/accessibility/column-header-scope.html
A LayoutTests/accessibility/table-headers-changing-expected.txt
A LayoutTests/accessibility/table-headers-changing.html
M Source/WebCore/accessibility/AXCoreObject.cpp
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/AccessibilityARIAGridRow.cpp
M Source/WebCore/accessibility/AccessibilityARIAGridRow.h
M Source/WebCore/accessibility/AccessibilityObject.h
M Source/WebCore/accessibility/AccessibilityTable.cpp
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/isolatedtree/AXIsolatedObject.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h

  Log Message:
  ---
  AX: columnHeaders() and rowHeaders() are performed on the main thread in ITM
https://bugs.webkit.org/show_bug.cgi?id=261680
rdar://115661951

Reviewed by Andres Gonzalez.

This patch uses a combination of caching attributes and sharing code to allow 
the calculation for rowHeaders() and columnHeaders()
to be performed on the secondary AX thread. Previously, we had to jump to the 
main thread each time these attributes were requested,
which can show up significantly on samples of pages that have very dynamic 
tables.

Calculating these values is now accomplished through five newly cached 
attributes in AXIsolatedObjects: Scope, IsColumnHeaderCell,
IsRowHeaderCell, HeaderObject, and RowGroupAncestorID. By caching these 
attributes, we are able to calculate the row and column headers for a table or
cell within the isolated object. Thus, we are able to remove the row- and 
column-header properties from
AXIsolatedObject::getOrRetrievePropertyValue.

The methods isTableCellInSameRowGroup and isTableCellInSameColGroup, which were 
originally part of the AccessibilityTableCell class,
were moved to AXCoreObject so that this code could be shared between the live 
and isolated objects.

Two new tests have been added to make sure that these cached values work as 
expected, and to check that we update the scope properly
when it changes.

* LayoutTests/accessibility/column-header-scope-expected.txt: Added.
* LayoutTests/accessibility/column-header-scope.html: Added.
* LayoutTests/accessibility/table-headers-changing-expected.txt: Added.
* LayoutTests/accessibility/table-headers-changing.html: Added.
* Source/WebCore/accessibility/AXCoreObject.cpp:
(WebCore::AXCoreObject::isTableCellInSameRowGroup):
(WebCore::AXCoreObject::isTableCellInSameColGroup):
* Source/WebCore/accessibility/AXCoreObject.h:
(WebCore::AXCoreObject::isColumnHeader const):
(WebCore::AXCoreObject::isRowHeader const):
(WebCore::AXCoreObject::rowGroupAncestorID const):
(WebCore::AXCoreObject::cellScope const):
(WebCore::AXCoreObject::rowHeader):
* 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/AccessibilityARIAGridRow.cpp:
(WebCore::AccessibilityARIAGridRow::rowHeader):
(WebCore::AccessibilityARIAGridRow::headerObject): Deleted.
* Source/WebCore/accessibility/AccessibilityARIAGridRow.h:
* Source/WebCore/accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isColumnHeaderCell const): Deleted.
(WebCore::AccessibilityObject::isRowHeaderCell const): Deleted.
* Source/WebCore/accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::rowHeaders):
* Source/WebCore/accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::determineAccessibilityRole):
(WebCore::AccessibilityTableCell::isColumnHeader const):
(WebCore::AccessibilityTableCell::isRowHeader const):
(WebCore::AccessibilityTableCell::rowGroupAncestorID const):
(WebCore::AccessibilityTableCell::columnHeaders):
(WebCore::AccessibilityTableCell::rowHeaders):
(WebCore::AccessibilityTableCell::isColumnHeaderCell const): Deleted.
(WebCore::AccessibilityTableCell::isRowHeaderCell const): Deleted.
(WebCore::AccessibilityTableCell::isTableCellInSameRowGroup): Deleted.
(W

[webkit-changes] [WebKit/WebKit] dea5d8: Add hoffmanjoshua to contributors.json

2023-09-18 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: dea5d83f27b0e5db78dae9dad4ddcea5b868d58a
  
https://github.com/WebKit/WebKit/commit/dea5d83f27b0e5db78dae9dad4ddcea5b868d58a
  Author: Joshua Hoffman 
  Date:   2023-09-18 (Mon, 18 Sep 2023)

  Changed paths:
M metadata/contributors.json

  Log Message:
  ---
  Add hoffmanjoshua to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=261696
rdar://115676662

Reviewed by Tyler Wilcock.

Add Joshua Hoffman (hoffmanjoshua) to contributors.json.

* metadata/contributors.json:

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 4d7674: AX: Expose accessibility attributes for inline tex...

2023-09-14 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 4d7674e3b99d52397632cd994afb20b7e7da5371
  
https://github.com/WebKit/WebKit/commit/4d7674e3b99d52397632cd994afb20b7e7da5371
  Author: Joshua Hoffman 
  Date:   2023-09-14 (Thu, 14 Sep 2023)

  Changed paths:
A 
LayoutTests/accessibility/ios-simulator/inline-prediction-attributed-string-expected.txt
A 
LayoutTests/accessibility/ios-simulator/inline-prediction-attributed-string.html
M LayoutTests/platform/ios-16/TestExpectations
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/AXObjectCache.h
M Source/WebCore/accessibility/AccessibilityObject.h
M Source/WebCore/accessibility/AccessibilityObjectInterface.h
M Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm
M Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.h
M Source/WebCore/editing/Editor.cpp

  Log Message:
  ---
  AX: Expose accessibility attributes for inline text predictions
https://bugs.webkit.org/show_bug.cgi?id=261056
rdar://114844079

Reviewed by Andres Gonzalez.

At present, WebKit does not expose inline predictions to AX clients on iOS. 
This patch addresses that by adding the attributes
UIAccessibilityInlineTextCompletion and 
UIAccessibilityAcceptedInlineTextCompletion to the attributed string provided 
to ATs.

This is accomplished through two new member variables in accessibility objects, 
which are updated in
AccessibilityObject::setLastPresentedTextPrediction (iOS only):
- m_lastPresentedTextPrediction: the "rest" of the word being predicted. For 
example, if the text "opportun" had been typed, and
"ity" was presented as a prediction, we would store "ity".
- m_lastPresentedTextPredictionComplete: the whole word being predicted. Using 
the previous example, we would store the whole word,
"opportunity".

In both cases, we store the string value and the position, offset to the start 
of the editor. LastPresentedTextPrediction is reset
once a prediction is "accepted", and m_lastPresentedTextPredictionComplete is 
reset once we start a new composition.

In the iOS accessibility wrapper, we access these values and apply them to the 
resulting attributed string, if applicable. The
attributedStringSetCompositionAttributes method handles this work, and checks 
the location and range of the values to ensure
that they are valid.

This patch also includes a new test that simulates inline predictions and 
checks that the correct attributes are exposed.

* 
LayoutTests/accessibility/ios-simulator/inline-prediction-attributed-string-expected.txt:
 Added.
* 
LayoutTests/accessibility/ios-simulator/inline-prediction-attributed-string.html:
 Added.
* LayoutTests/platform/ios-16/TestExpectations:
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::onTextCompositionChange):
* Source/WebCore/accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::onTextCompositionChange):
* Source/WebCore/accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::InlineTextPrediction::reset):
(WebCore::AccessibilityObject::lastPresentedTextPrediction const):
(WebCore::AccessibilityObject::lastPresentedTextPredictionComplete const):
* Source/WebCore/accessibility/AccessibilityObjectInterface.h:
* Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm:
(WebCore::AccessibilityObject::setLastPresentedTextPrediction):
(WebCore::attributedStringSetCompositionAttributes):
(WebCore::attributedStringCreate):
* Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
* Source/WebCore/editing/Editor.cpp:
(WebCore::Editor::setComposition):

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 93abe6: AX: title-attribute-used-as-last-resort fails in ITM

2023-09-07 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 93abe637e9084b310afbf6bf5cfbf4200ef02852
  
https://github.com/WebKit/WebKit/commit/93abe637e9084b310afbf6bf5cfbf4200ef02852
  Author: Joshua Hoffman 
  Date:   2023-09-07 (Thu, 07 Sep 2023)

  Changed paths:
M LayoutTests/accessibility-isolated-tree/TestExpectations
M 
LayoutTests/accessibility/mac/title-attribute-used-as-last-resort-expected.txt
M LayoutTests/accessibility/mac/title-attribute-used-as-last-resort.html

  Log Message:
  ---
  AX: title-attribute-used-as-last-resort fails in ITM
https://bugs.webkit.org/show_bug.cgi?id=261237
rdar://problem/115079675

Reviewed by Tyler Wilcock.

This patch fixes accessibility/mac/title-attribute-used-as-last-resort.html 
when run in ITM mode by waiting for the attributes
to be updated asynchronously.

Isolated tree test expectations were also updated for 
accessibility/mac/combobox-activedescendant-notifications.html and
accessibility/mac/relationships-in-frames.html.

* LayoutTests/accessibility-isolated-tree/TestExpectations:
* 
LayoutTests/accessibility/mac/title-attribute-used-as-last-resort-expected.txt:
* LayoutTests/accessibility/mac/title-attribute-used-as-last-resort.html:

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 2bd294: AX: iOS VO+Safari does not read role or ...

2023-09-05 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 2bd294b771860b5d15509839303571e70246a1d4
  
https://github.com/WebKit/WebKit/commit/2bd294b771860b5d15509839303571e70246a1d4
  Author: hoffmanjoshua 
  Date:   2023-09-05 (Tue, 05 Sep 2023)

  Changed paths:
A 
LayoutTests/accessibility/ios-simulator/aria-details-toggle-summary-expected.txt
A LayoutTests/accessibility/ios-simulator/aria-details-toggle-summary.html
M Source/WebCore/accessibility/AccessibilityObject.cpp
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: iOS VO+Safari does not read  role or state
https://bugs.webkit.org/show_bug.cgi?id=257162
rdar://109684906

Reviewed by Chris Fleizach.

This patch fixes the calculation for AccessibilityObject::supportsExpanded() so 
that  elements
describe their state when using iOS voiceover. For  elements, we 
cannot rely on checking the
aria-expanded attribute since that does not exist on details elements (the 
attribute 'open' is used instead).
This affects  elements as they use their  parents to calculate 
accessibilitySupportsARIAExpanded().

iOS AX tests were also added to confirm that this is the case.

* Source/WebCore/accessibility/AccessibilityObject.cpp:
Update AccessibilityObject::supportsExpanded().

* Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
* Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
* Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
* Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
Expose method for testing.

* 
LayoutTests/accessibility/ios-simulator/aria-details-toggle-summary-expected.txt:
* LayoutTests/accessibility/ios-simulator/aria-details-toggle-summary.html:
New test for checking isExpanded, supportsExpanded.

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] b10496: AX: aria-controls-with-tabs fails in ITM

2023-08-28 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b1049697ce8bd42217ddb507e245aad309847ec4
  
https://github.com/WebKit/WebKit/commit/b1049697ce8bd42217ddb507e245aad309847ec4
  Author: hoffmanjoshua 
  Date:   2023-08-28 (Mon, 28 Aug 2023)

  Changed paths:
M LayoutTests/accessibility-isolated-tree/TestExpectations
M LayoutTests/accessibility/aria-controls-with-tabs.html
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/AXObjectCache.h

  Log Message:
  ---
  AX: aria-controls-with-tabs fails in ITM
https://bugs.webkit.org/show_bug.cgi?id=260621
rdar://problem/114334241

Reviewed by Tyler Wilcock.

This patch addresses an issue where tabpanels with focus do not update the tabs 
that aria-control them.
This is addressed by adding a new method to traverse upwards in the tree to 
find a tabpanel ancestor
and recompute isSelected for its associated tab when the focus changes. This 
traversal happens twice:
once for the newly focused node and once for the previously focused node.

* LayoutTests/accessibility-isolated-tree/TestExpectations:
* LayoutTests/accessibility/aria-controls-with-tabs.html:
Test updated to use expectAsync rather than expect.

* Source/WebCore/accessibility/AXObjectCache.cpp:
* Source/WebCore/accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::handleTabPanelSelected):
New method to handle tabpanels gaining focus, called when the focus changes.

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 7378cf: AX: dialog-showModal fails in ITM

2023-08-28 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7378cf3a2fd2c653477f6d58d9fdbbe4a3e1216a
  
https://github.com/WebKit/WebKit/commit/7378cf3a2fd2c653477f6d58d9fdbbe4a3e1216a
  Author: hoffmanjoshua 
  Date:   2023-08-28 (Mon, 28 Aug 2023)

  Changed paths:
M LayoutTests/accessibility-isolated-tree/TestExpectations
M LayoutTests/accessibility/dialog-showModal-expected.txt
M LayoutTests/accessibility/dialog-showModal.html

  Log Message:
  ---
  AX: dialog-showModal fails in ITM
https://bugs.webkit.org/show_bug.cgi?id=260727
rdar://problem/114463793

Reviewed by Chris Fleizach.

This fixes accessibility/dialog-showModal.html in isolated tree mode by waiting 
for async updates to the "ok"
button before querying. The test was also modified to follow updated patterns 
in test outputs.

* LayoutTests/accessibility/dialog-showModal.html:
* LayoutTests/accessibility/dialog-showModal-expected.txt:

Changes dialog-ShowModal to wait for the ok button to update asynchronously. 
Also replaced debug() and
description() usage with concatenating output string pattern.

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 5e54c0: AX: aria-selected-menu-items test is flaky in ITM ...

2023-08-24 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5e54c0b0e654c190747995a9eb69b9fe8aff90ee
  
https://github.com/WebKit/WebKit/commit/5e54c0b0e654c190747995a9eb69b9fe8aff90ee
  Author: hoffmanjoshua 
  Date:   2023-08-24 (Thu, 24 Aug 2023)

  Changed paths:
M LayoutTests/accessibility-isolated-tree/TestExpectations
M LayoutTests/accessibility/aria-selected-menu-items.html
M 
LayoutTests/platform/glib/accessibility/aria-selected-menu-items-expected.txt
M 
LayoutTests/platform/mac/accessibility/aria-selected-menu-items-expected.txt
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp

  Log Message:
  ---
  AX: aria-selected-menu-items test is flaky in ITM mode
https://bugs.webkit.org/show_bug.cgi?id=260278
rdar://113979223

Reviewed by Chris Fleizach.

This change fixes aria-selected-menu-items in isolated tree mode by adding a 
traversal up for the newly selected child so that its ancestor
also updates its SelectedChildren property.
The traversal happens during a new case in AXObjectCache::updateIsolatedTree 
where the notification AXMenuListItemSelected is now handled.

* LayoutTests/accessibility-isolated-tree/TestExpectations

* LayoutTests/accessibility/aria-selected-menu-items.html
* LayoutTests/platform/mac/accessibility/aria-selected-menu-items-expected.txt
* LayoutTests/platform/glib/accessibility/aria-selected-menu-items-expected.txt

Tests updated to be async for ITM.

* Source/WebCore/accessibility/AXObjectCache.cpp
(WebCore::AXObjectCache::updateIsolatedTree):

Logic to handle AXMenuListItemSelected notifications.

* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp

Handle AXPropertyName::SelectedChildren in updateNodeProperties.

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] d15d7a: AX: aria-labelledby-on-password-input fails in ITM

2023-08-21 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d15d7af722dcc95a4245508c7f41cb84edaf3d11
  
https://github.com/WebKit/WebKit/commit/d15d7af722dcc95a4245508c7f41cb84edaf3d11
  Author: hoffmanjoshua 
  Date:   2023-08-21 (Mon, 21 Aug 2023)

  Changed paths:
M LayoutTests/accessibility-isolated-tree/TestExpectations
M LayoutTests/accessibility/aria-labelledby-on-password-input.html
A LayoutTests/accessibility/aria-labelledby-text-expected.txt
A LayoutTests/accessibility/aria-labelledby-text.html
M LayoutTests/platform/glib/TestExpectations
M Source/WebCore/accessibility/AXObjectCache.cpp

  Log Message:
  ---
  AX: aria-labelledby-on-password-input fails in ITM
https://bugs.webkit.org/show_bug.cgi?id=260190
rdar://113885331

Reviewed by Andres Gonzalez.

Previously in ITM, if an element had `aria-labelledby`, changes to the labeling 
element would not update the node of the labeled element. This patch adds logic 
inside the `handleChildrenChanged` method to notify the labeled elements when 
the value of a labeling element changes.

* LayoutTests/accessibility-isolated-tree/TestExpectations
* LayoutTests/accessibility/aria-labelledby-on-password-input.html:

Update layout tests to wait for async value change.

* LayoutTests/platform/glib/TestExpectations

Skip on GTK/WPE.

* Source/WebCore/accessibility/AXObjectCache.cpp
(WebCore::AXObjectCache::handleChildrenChanged):

Checks if self or ancestors label other elements, and updats the labeled 
(related) elements.

* LayoutTests/accessibility/aria-labelledby-text-expected.txt: Added.
* LayoutTests/accessibility/aria-labelledby-text.html: Added.

New tests to check that text changes, attribute changes, for labelledby 
elements update properly.

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 4e6fd1: AX: Improve smart pointer usage in AXObjectCache

2023-08-18 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 4e6fd1fb546159e206da017789dde1841886e177
  
https://github.com/WebKit/WebKit/commit/4e6fd1fb546159e206da017789dde1841886e177
  Author: hoffmanjoshua 
  Date:   2023-08-18 (Fri, 18 Aug 2023)

  Changed paths:
M Source/WebCore/accessibility/AXObjectCache.cpp

  Log Message:
  ---
  AX: Improve smart pointer usage in AXObjectCache
https://bugs.webkit.org/show_bug.cgi?id=260389
rdar://problem/114090467

Reviewed by Tyler Wilcock.

Improve the usage of smart pointers in AXObjectCache in accordance with WebKit 
guidelines https://github.com/WebKit/WebKit/wiki/Smart-Pointer-Usage-Guidelines.

* Source/WebCore/accessibility/AXObjectCache.cpp:

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 28bfc9: AX: Fix multiple-label-input test in ITM mode

2023-08-15 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 28bfc960f4a128c6a21f54c9a950edcb5b09f544
  
https://github.com/WebKit/WebKit/commit/28bfc960f4a128c6a21f54c9a950edcb5b09f544
  Author: hoffmanjoshua 
  Date:   2023-08-15 (Tue, 15 Aug 2023)

  Changed paths:
M LayoutTests/accessibility-isolated-tree/TestExpectations
M LayoutTests/accessibility/multiple-label-input-expected.txt
M LayoutTests/accessibility/multiple-label-input.html
M LayoutTests/platform/glib/accessibility/multiple-label-input-expected.txt
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp

  Log Message:
  ---
  AX: Fix multiple-label-input test in ITM mode
https://bugs.webkit.org/show_bug.cgi?id=260174
rdar://113872525

Reviewed by Andres Gonzalez.

This patch resolves an issue where innerHTML and innerText changes to labels 
were not updating their corresponding input element's AX title.

* LayoutTests/accessibility-isolated-tree/TestExpectations
* LayoutTests/platform/glib/accessibility/multiple-label-input-expected.txt

* LayoutTests/accessibility/multiple-label-input.html
* LayoutTests/accessibility/multiple-label-input-expected.txt:

Added check for using innerHTML—only checked for innerText functionality 
previously.

* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::updateIsolatedTree):

If static text changes and its parent is a , update the corresponding 
control.

* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::updateNodeAndDependentProperties):

Check if a label is being modified (using innerText). If it is, update the 
corresponding control.

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] bb3bc0: AX: Test style cleanup for aria-current.html

2023-08-15 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: bb3bc0cc27779ea17a27768441e2a1ce69c49733
  
https://github.com/WebKit/WebKit/commit/bb3bc0cc27779ea17a27768441e2a1ce69c49733
  Author: hoffmanjoshua 
  Date:   2023-08-15 (Tue, 15 Aug 2023)

  Changed paths:
M LayoutTests/accessibility/aria-current-expected.txt
M LayoutTests/accessibility/aria-current.html

  Log Message:
  ---
  AX: Test style cleanup for aria-current.html
https://bugs.webkit.org/show_bug.cgi?id=260104
rdar://113775205

Reviewed by Andres Gonzalez.

This patch includes style cleanup for the aria-current.html test, and updates 
the expected result accordingly.

* modified:   LayoutTests/accessibility/aria-current-expected.txt
* modified:   LayoutTests/accessibility/aria-current.html
Canonical link: https://commits.webkit.org/266913@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] a5ea28: AX: aria-current.html fails in isolated tree mode

2023-08-10 Thread Joshua Hoffman
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a5ea28813307f7a458ea3e7303a685ddfbe4fbd3
  
https://github.com/WebKit/WebKit/commit/a5ea28813307f7a458ea3e7303a685ddfbe4fbd3
  Author: hoffmanjoshua 
  Date:   2023-08-10 (Thu, 10 Aug 2023)

  Changed paths:
M LayoutTests/accessibility-isolated-tree/TestExpectations
M LayoutTests/accessibility/aria-current.html

  Log Message:
  ---
  AX: aria-current.html fails in isolated tree mode
https://bugs.webkit.org/show_bug.cgi?id=260026
rdar://113698662

Reviewed by Tyler Wilcock.

Fixes aria-current test in isolated tree mode by directly accessing the 
accessibility element, rather than using the focused element. This prevents an 
async issue that occurs when accessing the focused element.

Also contains cleanup, querying elements by anchor tag rather than class.

* LayoutTests/accessibility-isolated-tree/TestExpectations
* LayoutTests/accessibility/aria-current.html

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


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes