Add support for accessible tables with missing/bad data.
Previously we relied on Blink to correctly fill in the row and column index of every cell in a table. This tends to be expensive to do in Blink because it requires invalidating and reserializing the entire table if any cell changes. Instead, try to defer as much of those calculations to downstream to be computed when AT actually requests table attributes. This is more efficient, because Blink accessibility code needs to run any time the page is updated, like when a table is being built dynamically using JS - whereas AT typically only queries table attributes when users explore a table explicitly, so it makes sense to defer computation until then. This is also more accurate and less error-prone, as it allows us to completely validate the table in a single pass and fix any errors in table indexes. Finally, a potential added benefit is that this makes it easier to handle tables from Views or Arc++ that don't have all of the table attributes set, we can compute them automatically. A follow-up change will remove the code that computes some of these table attributes from Blink. Bug: 832289 Change-Id: I252a592c854e47cf6d6e5bd6b7c4bc5d51775e72 Reviewed-on: https://chromium-review.googlesource.com/c/1307840Reviewed-by:Aaron Leventhal <aleventhal@chromium.org> Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org> Cr-Commit-Position: refs/heads/master@{#606940}
Showing
This diff is collapsed.
This diff is collapsed.
Please register or sign in to comment