Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6e896e7e4003b348fe2ec155f70b986d057d099d
      
https://github.com/WebKit/WebKit/commit/6e896e7e4003b348fe2ec155f70b986d057d099d
  Author: Tyler Wilcock <[email protected]>
  Date:   2024-03-05 (Tue, 05 Mar 2024)

  Changed paths:
    A LayoutTests/accessibility/dynamic-aria-hidden-cell-expected.txt
    A LayoutTests/accessibility/dynamic-aria-hidden-cell.html
    M Source/WebCore/accessibility/AXLogger.cpp
    M Source/WebCore/accessibility/AXObjectCache.cpp
    M Source/WebCore/accessibility/AXObjectCache.h
    M Source/WebCore/accessibility/AccessibilityObject.cpp
    M Source/WebCore/accessibility/AccessibilityRenderObject.cpp
    M Source/WebCore/accessibility/AccessibilityTable.cpp
    M Source/WebCore/accessibility/AccessibilityTableCell.cpp
    M Source/WebCore/accessibility/AccessibilityTableCell.h

  Log Message:
  -----------
  AX: AXPropertyName::{ColumnIndexRange, RowIndexRange} properties are never 
updated
https://bugs.webkit.org/show_bug.cgi?id=270496
rdar://problem/124046227

Reviewed by Chris Fleizach.

This can cause ATs to miss table content if they use the rowIndexRange and 
columnIndexRange APIs
as inputs to the cellForColumnAndRow API. Fix this by posting a notification 
when table cells
modify their row / column index.

This patch also adds a new postNotification overload to avoid unnecessary 
null-checking and verbosity
of passing a hardcoded `nullptr Document*` argument to 
postNotification(AccessibilityObject*, Document*, AXNotification, PostTarget = 
PostTarget::Element).

Existing notifications AXColumnIndexChanged and AXRowIndexChanged are 
repurposed to report this dynamic change,
and two new notifications (AXARIAColumnIndexChanged and AXARIARowIndexChanged) 
are added to support what the former
two notifications used to do (as they were only fired when aria-colindex and 
aria-rowindex changed).

* LayoutTests/accessibility/dynamic-aria-hidden-cell-expected.txt: Added.
* LayoutTests/accessibility/dynamic-aria-hidden-cell.html: Added.
* Source/WebCore/accessibility/AXLogger.cpp:
(WebCore::operator<<):
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::valueChanged):
(WebCore::AXObjectCache::columnIndexChanged):
(WebCore::AXObjectCache::rowIndexChanged):
(WebCore::AXObjectCache::postNotification):
(WebCore::AXObjectCache::onTextSecurityChanged):
(WebCore::AXObjectCache::onTitleChange):
(WebCore::AXObjectCache::onValidityChange):
(WebCore::AXObjectCache::handleRoleChanged):
Take a reference rather than a pointer as all callsites have access to a
reference.
(WebCore::AXObjectCache::handleAttributeChange):
(WebCore::AXObjectCache::updateIsolatedTree):
(WebCore::AXObjectCache::selectedTextRangeTimerFired):
(WebCore::AXObjectCache::onWidgetVisibilityChanged):
* Source/WebCore/accessibility/AXObjectCache.h:
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::updateRole):
* Source/WebCore/accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::updateRoleAfterChildrenCreation):
* Source/WebCore/accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::recomputeIsExposable):
(WebCore::AccessibilityTable::columnCount):
* Source/WebCore/accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::setRowIndex):
(WebCore::AccessibilityTableCell::setColumnIndex):
* Source/WebCore/accessibility/AccessibilityTableCell.h:
(WebCore::AccessibilityTableCell::setRowIndex): Deleted.
(WebCore::AccessibilityTableCell::setColumnIndex): Deleted.

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to