data:text/html,<table><tr><th>class</th><th>credits</th><th aria-hidden="true">Hidden column for spacing</th><th>Grade</th></tr><tr aria-hidden="true"><td colspan=4>Fancy-image-spacing-icon goes-here</td></tr><tr><th>Fairy tales and their societal ramifications</th><td>3</td><td aria-hidden="true">I'm only used for spacing</td><td>B</td></tr><tr><th>HTML table hand-coding, and why it's painful</th><td>3</td><td aria-hidden="true"> Hidden column</td><td>A</td></tr></table>
NVDA reports the edge of the table if you try to move past row 1, and jumps out of the table at column 3. It jumps back in at col 4, but moving left jumps out at col 3, and you can't try to table navigate again.
Both column and row report "edge of table" when they should skip hidden columns.
The text was updated successfully, but these errors were encountered:
The whole idea of hidden columns seems kinda broken to me. The space is still present; it still looks like a column visually. You can argue that the space is purely for layout, but this argument is flawed because it still affects the semantics. In this example, the column after the hidden column gets reported as column 4, not column 3. That's going to cause confusion for some users at least. I'm inclined to argue the author should at least use aria-colindex in this case. (NVDA doesn't support aria-colindex yet, but that's planned.)
That said, if this is occurring a lot in the wild, the chances of getting authors to fix things are probably limited and we'll need to work around this.
@jcsteh I've seen this a few times in the wild, but usually it's things like We have an icon in this column that is useless to you and we'd like to hide the column from you, how can we do this. Most times, we put alt text on the icon, but sometimes, its just a useless pretty decoration, or even an real blank column for (Purely visual spacing), but hidden in table nav (And bureaucracy problems prevent me from saying hey, just do this correctly and put the icon in the same column or specify the column width to be twice as wide).
Also, skipping the column would be the correct behavior. Leaving the table or reporting we hit the edge is wrong, because the other stuff is still the same table, and shouldn't trap the user. It would be correct to say "Column 4" however.