[webkit-changes] [WebKit/WebKit] 6e896e: AX: AXPropertyName::{ColumnIndexRange, RowIndexRan...
Tyler Wilcock
noreply at github.com
Tue Mar 5 14:21:33 PST 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 6e896e7e4003b348fe2ec155f70b986d057d099d
https://github.com/WebKit/WebKit/commit/6e896e7e4003b348fe2ec155f70b986d057d099d
Author: Tyler Wilcock <tyler_w at apple.com>
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
More information about the webkit-changes
mailing list