[webkit-changes] [WebKit/WebKit] f172d9: AX: Assistive technologies report the wrong row an...

Tyler Wilcock noreply at github.com
Sat Jan 11 16:41:17 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f172d9ef0d9efd1bd9462ff801ce9bb8bcf54c5e
      https://github.com/WebKit/WebKit/commit/f172d9ef0d9efd1bd9462ff801ce9bb8bcf54c5e
  Author: Tyler Wilcock <tyler_w at apple.com>
  Date:   2025-01-11 (Sat, 11 Jan 2025)

  Changed paths:
    A LayoutTests/accessibility/rowspan-zero-table-expected.txt
    A LayoutTests/accessibility/rowspan-zero-table.html
    A LayoutTests/platform/glib/accessibility/rowspan-zero-table-expected.txt
    M LayoutTests/platform/ios/TestExpectations
    A LayoutTests/platform/ios/accessibility/rowspan-zero-table-expected.txt
    M Source/WebCore/accessibility/AccessibilityTable.cpp
    M Source/WebCore/accessibility/AccessibilityTableCell.cpp

  Log Message:
  -----------
  AX: Assistive technologies report the wrong row and column information for tables who have cells with rowspan="0"
https://bugs.webkit.org/show_bug.cgi?id=285802
rdar://142747830

Reviewed by Chris Fleizach.

Accessibility implements the "Forming a table" algorithm for computing its cell slots:

https://html.spec.whatwg.org/multipage/tables.html#forming-a-table

In this model, rowspan="0" is a special value that states the cell should span all remaining rows.

Prior to recent change https://bugs.webkit.org/show_bug.cgi?id=185341, the visual rendering for rowspan="0" was not
correct — it equated the zero value to rowspan=1. So we did the same in the accessibility implementation, ensuring we
match what is visually rendered.

But with the change from bug 185341, the visual rendering now spans all remaining rows as is specified. This commit
updates the accessibility implementation of the algorithm to match. Fortunately this was pretty easy, since we already
implemented the algorithm for growing downwards cells (https://html.spec.whatwg.org/multipage/tables.html#algorithm-for-growing-downward-growing-cells)
for anything with a rowspan greater than 1. For rowspan=0, we just create a new `DownwardGrowingCell` with `remainingRowsToSpan`
equal to that of the max possible rowspan, allowing the cell to extend for as long as the table does.

* LayoutTests/accessibility/rowspan-zero-table-expected.txt: Added.
* LayoutTests/accessibility/rowspan-zero-table.html: Added.
* LayoutTests/platform/ios/TestExpectations: Enable new test.
* LayoutTests/platform/ios/accessibility/rowspan-zero-table-expected.txt: Added.
* Source/WebCore/accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::computeCellSlots):
* Source/WebCore/accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::rowSpan const):

Canonical link: https://commits.webkit.org/288769@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