Skip to content

Accessible Tables in PDFs — Complete Guide

DodaTech Updated 2026-06-28 5 min read

In this tutorial, you will learn about Accessible Tables in PDFs. We cover key concepts, practical examples, and best practices to help you master this topic.

Accessible tables in PDFs require proper table tags — Table, TR (table row), TH (table header), and TD (table data) — arranged in a logical structure tree so that screen readers can announce cell positions and header associations.

What You'll Learn

You will learn how tables are represented in the PDF tag tree, how to create correctly tagged tables from authoring tools, how to fix complex tables with merged cells, and how to verify that screen readers can navigate your tables.

Why It Matters

Tables are the most frequently broken structure in PDF Accessibility. When tables are untagged, screen readers read all cell content as a single text blob, making it impossible to understand which value belongs to which column or row.

Real-World Use

A financial analyst receives a PDF containing a 50-row table of stock prices. Before tagging, NVDA reads "AAPL 175.43 MSFT 390.12 GOOG 185.67" as a single string. After proper table tagging, the user presses T to jump to the table, then Ctrl+Alt+Arrow keys to navigate cell by cell with column headers announced.

Table Tag Structure

flowchart TD
  A[""] --> B[" (Header Row)"]
  B --> C[" (Data Row 1)"]
  F --> G[" (Data Row 2)"]
  J --> K["
Symbol"] B --> D[" Price"] B --> E[" Change"] A --> F["
AAPL"] F --> H[" 175.43"] F --> I[" +1.2%"] A --> J["
MSFT"] J --> L[" 390.12"] J --> M[" -0.5%"]

Creating Tables

From Microsoft Word

Use the Insert > Table tool, not tabs or manual spacing to create visual tables. Ensure the first row is formatted as a header row (check "Header Row" in Table Design > Header Row).

Word table structure:
- Table → <Table>
- Header row (checked "Header Row") → <TR> with <TH> cells
- Data rows → <TR> with <TD> cells

Fixing Tables in Acrobat

If auto-tagging produces a flat table (all <TD> with no <TH>):

  1. Open the Tags panel and find the table.
  2. For each header cell, right-click > Properties > Type > change to TH.
  3. Set the Scope attribute to "Column" or "Row" from the Attributes panel.
// Acrobat JavaScript to convert first row from TD to TH
var table = this.getTags().findTag("Table", 0);
if (table) {
    var firstRow = table.getChildren()[0]; // First TR
    if (firstRow) {
        var cells = firstRow.getChildren();
        for (var i = 0; i < cells.length; i++) {
            cells[i].structType = "TH";
            cells[i].scope = "Column";
        }
        console.println("First row cells converted to TH");
    }
}

Complex Tables

For tables with merged headers (rowspan/colspan), use the RowSpan and ColSpan attributes on TH and TD tags.

Complex header example:
           | Q1 2026          | Q2 2026          |
           | Revenue | Profit | Revenue | Profit |
           |---------|--------|---------|--------|
           
TH tag attributes:
- "Q1 2026": ColSpan=2, Scope=Column
- "Revenue": Scope=Column (under Q1)
- "Profit": Scope=Column (under Q1)
- "Q2 2026": ColSpan=2, Scope=Column
- "Revenue": Scope=Column (under Q2)
- "Profit": Scope=Column (under Q2)

Common Mistakes

  1. Using tabs or spaces instead of a table — Visual tables created with tabs and spaces are not tables in the tag tree. They are just text placeholders. Always use the table authoring tool.

  2. Missing header row — Every data table should have at least one header row with <TH> tags. Tables without headers force users to guess column meanings.

  3. Nested tables — Screen readers struggle with nested tables. Avoid nesting a table inside a table cell unless absolutely necessary.

  4. Tables used for layout only — Layout tables (for visual alignment) should be marked as artifacts or have a role of "Layout Table". Do not tag them as data tables.

  5. Split tables across pages — A table that spans pages may have rows split across the tag tree. Check that the header row is repeated or that the header scope carries across.

Practice and Challenge

  1. What is the difference between TH and TD in a PDF table?
  2. How do you mark a header row in Word before exporting to PDF?
  3. What attributes should a TH cell have when it spans two columns?
  4. Why should layout tables be marked as artifacts?
  5. How does a screen reader announce cell position in a tagged table?

Challenge: Create a PDF with a 5-column by 8-row table (with headers) and a complex table with a multi-level header (2 header rows with merged cells). Tag both tables correctly, verify with a screen reader, and document the scope attributes used.

FAQ

Can I make a table accessible after the PDF is created?

Yes. Acrobat Pro allows you to retag cells, change TD to TH, and set scope attributes. However, recreating the table from the source document is often faster for complex tables.

What if my table has no header row visually?

Add a header row even if it is visually hidden. Place it off-screen or use an invisible row with header text. Screen readers need the header association even if sighted users do not see it.

Do merged cells break table accessibility?

Not if the RowSpan and ColSpan attributes are set correctly. Without these attributes, merged cells cause incorrect row and column counts.

How do I add summary text to a table?

PDF does not have a native table summary attribute like HTML. Add a preceding paragraph or caption <Caption> tag that describes the table content.

Can screen readers sort table data?

No. PDF tables are static. Screen readers can navigate cell by cell but cannot sort or filter. For sortable data, provide an interactive HTML alternative.

Mini Project

Create a 2-page PDF with three tables: a simple 3x4 data table with headers, a table with a merged header row (colspan on years), and a layout table used for page design. Tag the data tables correctly and mark the layout table as an artifact. Verify table navigation with NVDA.

What's Next

Proceed to Form Fields in PDFs to learn about accessible forms, then continue to Language Tagging in PDFs.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro