Complex Tables in PDFs

As with HTML tables, you can make tables more clear by giving each header an ID so you can specify which headers go with each data cell.

Why Complex Tables Matter

Tables with merged cells can be hard to decipher with a screen reader. Tables with multiple layers of merged cells can be really hard, if they aren’t given extra attention in Acrobat.

First Simplify

Before you try to make a complex table accessible, see if the table can be simplified. For example, if the table has a series of sections, would it reduce confusion to divide it into a series of tables, one for each section?

Define Span and Scope

If you run an accessibility check on a table with merged cells, you may get a “regularity” error. That means not all rows have the same number of cells, or not all columns have the same number of rows. To fix that, define each merged cell’s “span,” which is the number of columns or rows the cell crosses. If the cell is a header, you may also define it’s scope, as you would with a simple table.

  1. Click the “Order” icon on the navigation bar on the left of your document. The Order icon has a Z-shaped zig zag on it.

    Order Pane
    Another way to open the Order pane is from the “View” menu. Go to “Show/Hide, ” then to “Navigation Panes,” then click “Order.”
  2. Click the “Options” icon near the top of the Order pane.
  3. Select “Show reading order panel.”
  4. Click any of the cells to select it, then click the “Table Editor” button on the reading order panel. (If the Table Editor button is still gray, try clicking in the table again to select a cell.)
  5. After you click the “Table Editor” button, the reading order panel disappears and the table will show its cells.
  6. Right click a merged cell and choose “Table Cell Properties.”
  7. Select “Header cell” and choose a “Scope” if you are marking up a header. Then indicate how many rows or columns the merged cells span. click “OK” and repeat steps 6 and 7 for other merged cells in the table.

Assign Each Header an ID and Associate those with Data Cells

The one sure way to associate header and data cells can be pretty time consuming, as you have to work on each cell in the table.

Add IDs to Headers

  1. In the Table Editor, right click a header cell and choose “Table Cell Properties” as shown above.
  2. In the “ID” box, give the header a short, unique identifier. Each header needs a different ID.
  3. Click “OK” to set the ID.

It doesn’t matter what ID names you use. A screen reader won’t read an ID out loud. It’s good to have a naming system, though, to help you match the headers and cells. One approach is to make each ID a short version of the header text. Or you could use cell position. For example, you might use rh1, rh2, rh3 for row headers and ch1, ch2, ch3 for column headers. Any system will work as long as it helps you tell which header is which when you associate the IDs with the data cells.

Associate Headers with Data Cells

Once you have added an ID to each header cell, go to the “Table Cell Properties” of each data cell and add the headers:

  1. Click the “+” button to the right of the box labeled “Associate Header Cell IDs.”
  2. From the list of available IDs, choose the one that would make the most sense to be read first.
  3. Add the ID for each remaining header in the order that you want them to be read. (A screen reader will read each header cell’s contents, not its ID.) This will build a list with the first header at the bottom and the last to be read at the top.
  4. When done, click “OK” and repeat for each data cell.

Video Tutorial on Making Complex Tables Accessible

This Veterans Health Administration shows the process outlined above:

Providing Structure in Complex Tables