NVDA and PDF table accessibility
11 November 2012
It's no exaggeration to say that the recently released NVDA upgrade is a huge step forward for PDF accessibility. With respect to tables, NVDA now matches JAWS in almost every way that matters, and in some respects it is significantly better. NVDA is now a realistic alternative to JAWS.
Most significantly, NVDA now associates column and row headers with their respective data cells. As in JAWS, if you press Ctrl + Alt + left or right arrow to move along a row, NVDA will read the column header(s), the column number and then the cell contents. Likewise, if you press Ctrl + Alt + down or up arrow, NVDA will read the row header(s), the row number and then the cell contents.
Column and row spans
NVDA now also handles column and row spans correctly so that (provided everything is tagged properly) the contents of each data cell will always be associated with the appropriate headers.
IDs and headers
In addition, NVDA now supports IDs and headers. To what extent it does so needs more testing than this short summary will allow, but the initial signs are good (I've already uncovered one use-case in which it works better than JAWS). However, it does need more investigation. Watch this space …
Why this all matters
Given that tables were previously the main stumbling block against NVDA's being suitable for reading or testing PDFs, it's hard to overstate the significance of these changes (think price tag).
But the good news doesn't end there.
What else is new?
I am a big fan of table summaries. A few well drafted lines outlining any trends or patterns in the data can be of great benefit to screen reader users. Although Acrobat Professional has for many years provided the facility to add table summaries, until now no screen reader (including the recently released JAWS 14) has been able to read them.
One technique for getting round the problem is to publish a graph or chart of the data next to each table, tagging the table properly of course, and then adding the summary to the graph as alt text (see Design and build accessible PDF tables for more details).
But, stop press! NVDA now reads table summaries. When you press T with NVDA running, it will go to the next table and automatically read its summary, if present.
If a summary is present, pressing the down arrow will take you to the caption. However, if a table has no summary, when you press T, NVDA goes to the next table and automatically reads the caption (provided it has been tagged correctly). Pressing the down arrow again will take you to the first data cell. If no caption is present (shame!), NVDA simply goes to the first cell.
Although the ability to read a caption correctly is not new to this particular NVDA update, it is still noteworthy. It too is significantly superior to the way JAWS handles captions. In JAWS, when you press T it goes to the first cell and announces its content. In order to find the caption you have to use the up arrow key.
Still on the wish list
The one table reading function that JAWS has, but I don't believe yet exists in NVDA, is a command to read the current cell, along with its column and/or row headers. The command for this in JAWS is Ctrl + Alt + Num Pad 5, or just Num Pad 5 in the tables layer (JAWS 13 and upwards). For spot checking large tables this command is almost indispensable.