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