I have an HTML data table that I am trying to make accessible. It works well enough with NVDA and Jaws. But the context of the data is such that it makes more sense to be read column by column rather than row by row as screen readers default to.
Is there a way to make sure the table is read column by column?
You don’t have to do anything, except marking it up correctly (i.e., what the headers are, and possibly what their scope is).
Just like sighted users don’t read the whole content strictly from left-to-right, top-to-bottom, screen reader users don’t let the page read out to them from the beginning to the end -- all users scan the content and jump on the page.
Inside a table, screen readers typically allow moving from cell to cell, to beginnings and ends of columns and rows, etc. See for example the commands for reading tables with JAWS.
If you think it’s not easily understood how the data is organized, consider adding a description in the
caption
element, e.g., something like "The first row gives the dates, each column contains the data for a day".