Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0b3aac159d97ed8ae6907c2bfa8db46120070feb
      
https://github.com/WebKit/WebKit/commit/0b3aac159d97ed8ae6907c2bfa8db46120070feb
  Author: Jack Wiig <[email protected]>
  Date:   2023-07-18 (Tue, 18 Jul 2023)

  Changed paths:
    M 
LayoutTests/accessibility/mac/attributed-string/attributed-string-has-completion-annotation.html
    M LayoutTests/accessibility/mac/text-input-marked-range-expected.txt
    M LayoutTests/accessibility/mac/text-input-marked-range.html
    A 
LayoutTests/accessibility/mac/text-input-marked-text-marker-range-expected.txt
    A LayoutTests/accessibility/mac/text-input-marked-text-marker-range.html
    A 
LayoutTests/accessibility/mac/text-input-session-notifications-expected.txt
    A LayoutTests/accessibility/mac/text-input-session-notifications.html
    M LayoutTests/platform/mac/TestExpectations
    M Source/WebCore/accessibility/AXLogger.cpp
    M Source/WebCore/accessibility/AXObjectCache.cpp
    M Source/WebCore/accessibility/AXObjectCache.h
    M Source/WebCore/accessibility/AXTextMarker.cpp
    M Source/WebCore/accessibility/AXTextMarker.h
    M Source/WebCore/accessibility/AccessibilityObject.cpp
    M Source/WebCore/accessibility/AccessibilityObject.h
    M Source/WebCore/accessibility/AccessibilityObjectInterface.h
    M Source/WebCore/accessibility/cocoa/AXTextMarkerCocoa.mm
    M Source/WebCore/accessibility/cocoa/AccessibilityObjectCocoa.mm
    M Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h
    M Source/WebCore/accessibility/mac/AXObjectCacheMac.mm
    M Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm
    M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.h
    M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm
    M Source/WebCore/editing/Editor.cpp
    M Source/WebCore/editing/TypingCommand.cpp
    M Tools/DumpRenderTree/AccessibilityUIElement.cpp
    M Tools/DumpRenderTree/AccessibilityUIElement.h
    M Tools/DumpRenderTree/ios/AccessibilityUIElementIOS.mm
    M Tools/DumpRenderTree/mac/AccessibilityUIElementMac.mm
    M Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp
    M Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h
    M Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl
    M Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm

  Log Message:
  -----------
  Post Accessibility notifications during composition contexts indicating 
start, end, and value change.
https://bugs.webkit.org/show_bug.cgi?id=258228
rdar://problem/110925384

Reviewed by Andres Gonzalez.

To align ourselves with AppKit, WebKit should post a notification when a 
composition starts so that assistive technologies know to process any future 
value changes for that ui element as incomplete composition changes. When a 
composition ends, post a notification to indicate that the composition session 
has ended.

This model does not convey any information in the text notifications (unlike 
what my past comment indicates) and posts the notification from the text 
control containing the text information. This aligns us closer with how other 
UI frameworks behave.

Other changes:
- Added an AXTextMarkerRange variant to support the 
AXTextInputMarkedTextMarkerRange attribute
- Fixed the logic for adding composition attributes to an attributed string 
request

* 
LayoutTests/accessibility/mac/attributed-string/attributed-string-has-completion-annotation.html:
* 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: 
Added.
* LayoutTests/accessibility/mac/text-input-marked-text-marker-range.html: Added.
* LayoutTests/accessibility/mac/text-input-session-notifications-expected.txt: 
Added.
* LayoutTests/accessibility/mac/text-input-session-notifications.html: Added.
* Source/WebCore/accessibility/AXLogger.cpp:
(WebCore::operator<<):
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::onTextCompositionChange):
(WebCore::AXObjectCache::updateIsolatedTree):
(WebCore::AXObjectCache::textCompositionObjectForNode): Deleted.
* Source/WebCore/accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::onTextCompositionChange):
(WebCore::AXObjectCache::updateRelations):
(WebCore::AXObjectCache::textCompositionObjectForNode): Deleted.
* Source/WebCore/accessibility/AXTextMarker.cpp:
(WebCore::AXTextMarkerRange::characterRange const):
(WebCore::AXIsolatedTextMarkerRange::AXIsolatedTextMarkerRange):
* Source/WebCore/accessibility/AXTextMarker.h:
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::textInputMarkedRange const):
(WebCore::AccessibilityObject::textInputMarkedTextMarkerRange const):
(WebCore::AccessibilityObject::isNodeForComposition const): Deleted.
* Source/WebCore/accessibility/AccessibilityObject.h:
* Source/WebCore/accessibility/AccessibilityObjectInterface.h:
* Source/WebCore/accessibility/cocoa/AXTextMarkerCocoa.mm:
(WebCore::AXTextMarkerRange::nsRange const):
* Source/WebCore/accessibility/cocoa/AccessibilityObjectCocoa.mm:
(WebCore::AccessibilityObject::contentForRange const):
* Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm:
(WebCore::attributedStringCreate):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::textInputMarkedRange const):
(WebCore::AXIsolatedObject::textInputMarkedTextMarkerRange const):
* 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::postPlatformNotification):
* Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm:
(WebCore::attributedStringSetCompositionAttributes):
(WebCore::attributedStringCreate):
* Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.h:
* Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
* Source/WebCore/editing/Editor.cpp:
(WebCore::Editor::setComposition):
* Source/WebCore/editing/TypingCommand.cpp:
(WebCore::TypingCommand::insertText):
* Tools/DumpRenderTree/AccessibilityUIElement.cpp:
(textInputMarkedTextMarkerRangeCallback):
(AccessibilityUIElement::textInputMarkedTextMarkerRange const):
(AccessibilityUIElement::getJSClass):
* Tools/DumpRenderTree/AccessibilityUIElement.h:
* Tools/DumpRenderTree/ios/AccessibilityUIElementIOS.mm:
(AccessibilityUIElement::textInputMarkedTextMarkerRange const):
* Tools/DumpRenderTree/mac/AccessibilityUIElementMac.mm:
(attributesOfElement):
(AccessibilityUIElement::textInputMarkedTextMarkerRange const):
* Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
(WTR::AccessibilityUIElement::textInputMarkedTextMarkerRange const):
* Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
* Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
* Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::AccessibilityUIElement::allAttributes):
(WTR::AccessibilityUIElement::textInputMarkedTextMarkerRange const):

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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to