Tagged PDF documents with tables
This technique relates to:
See PDF Technology Notes for information on user agent and assistive technology support.
The purpose of this technique is to show how tables in PDF documents can be marked up so that they are recognized by assistive technology. This is typically accomplished by using a tool for authoring PDF.
Tabular information must be presented in a way that preserves relationships within the information even when users cannot see the table or the presentation format is changed. Information is considered tabular when logical relationships among text, numbers, images, or other data exist in two dimensions (vertical and horizontal). These relationships are represented in columns and rows, and the columns and rows must be recognizable in order for the logical relationships to be perceived.
Tagged tables can be created using the Add Tags to Document feature in Adobe Acrobat, using the Object Library in Adobe LiveCycle, or converting tables to PDF from a third-party application, such as Microsoft Word. However, the resulting tables may not be tagged correctly and you should ensure that table tagging issues are resolved.
Within PDF documents, a table uses the following structure types for table elements:
A table element (Table).
One or more table row elements(TR) which define each row of table cells as immediate children of the Table element.
One or more table header elements (TH) or table data elements (TD) as the immediate children of each table row element.
Cells that span two or more rows or columns should use the RowSpan or ColSpan attribute.
For tables that contain blank cells, you may need to add empty TD cells so that each row or column has the same number of cells.
This example is shown with Microsoft Word. There are other software tools that perform similar functions. See the list of other software tools in PDF Authoring Tools that Provide Accessibility Support.
Access the table header row's context menu and select Table Properties...
Select the Row tab.
Check "Repeat as header at the top of each page" as shown in the following image.
This example is shown in operation in the working example of tagged table headings in Word 2007.
Note: Microsoft Word can only mark up cells as column headings, not as row headings. Only the first row can be marked as heading for all table columns. When the table has row headings or a more complex heading structure, this mark-up must be added in a PDF editor such as Acrobat Pro.
This example is shown with OpenOffice.org Writer. There are other software tools that perform similar functions. See the list of other software tools in PDF Authoring Tools that Provide Accessibility Support.
Access the table's context menu and select Table...
Select the Table Format tab.
Check Repeat Heading and select "1" in the First Rows listbox as shown in the following image.
This example is shown in operation in the working example of tagged table headings in OpenOffice Writer.
Note: OpenOffice.org Writer can only mark up cells as column headings, not as row headings. Only the first row can be marked as heading for all table columns. When the table has row headings or a more complex heading structure, this mark-up must be added in a PDF editor such as Acrobat Pro.
This example is shown with Adobe Acrobat Pro. There are other software tools that perform similar functions. See the list of other software tools in PDF Authoring Tools that Provide Accessibility Support.
To check that a converted document with tables has correct table tagging:
In the View menu, select Navigation Panel, then select Tags.
Note that in this case, the table headers were not formatted as illustrated in Examples 1 and 2, and are marked as data cells (TD). To change these to TH tags:
On the Tags tab, open the table row that contains the header cells, as shown on the image above.
Select on the first data cell and select Properties...
On the Tags tab in the Properties dialog, use the Type dropdown to change Table Data Cell to Table Header Cell.
Repeat for all the table header cells in the first table row.
This example is shown in operation in the working example of tagged table headings in Acrobat.
The following code fragment illustrates code that is typical for a simple table (header row and data row) such as shown in Examples 1-3:
95 0 obj %Structure element for a table
<<
/A 39 0 R
/K[96 0 R 101 0 R 106 0 R 111 0 R]
/P 93 0 R
/S/Table %standard structure type is table
>>
endobj
96 0 obj %Structure element for a table row
<<
/K[97 0 R 98 0 R 99 0 R 100 0 R]
/P 95 0 R
/S/TR %standard structure type is table row
>>
endobj
97 0 obj %Structure element for a table header
<</A[23 0 R 120 0 R]
/K 1
/P 96 0 R
/S/TH %standard structure type is table head
/Pg 8 0 R
>>
endobj
104 0 obj %Structure element for table data (cell contents)
<<
/A 29 0 R
/K 7
/P 101 0 R
/S/TD %standard structure type is table data
/Pg 8 0 R
>>
endobj
Resources are for information purposes only, no endorsement implied.
Section 14.8.4.3.4 (Table Elements) in PDF 1.7 (ISO 32000-1)
For each table, confirm one of the following:
Read the PDF document with a screen reader, listening to hear that the tabular information is presented in a way that preserves logical relationships among the table header and data cells.
Using a PDF editor, verify that the appropriate TR, TH, and TD tags are in the proper reading order and hierarchy in the table tree.
Use a tool which is capable of showing the table elements to open the PDF document, view the table structure, and verify that it contains the appropriate TR, TH, and TD structures.
Use a tool that exposes the document through the accessibility API, and verify that the table structure contains the appropriate TR, TH, and TD structures, and that they are in the proper reading order and hierarchy.
#1 is true.
If this is a sufficient technique for a success criterion, failing this test procedure does not necessarily mean that the success criterion has not been satisfied in some other way, only that this technique has not been successfully implemented and can not be used to claim conformance.