PDF Assessments - How-To

To assess PDFs for accessibility, one must use the PDF Techniques for WCAG 2.0. First I describe the steps taken to do the assessment. Then, below, each technique is described.

Assessment Process

  1. Open the PDF document in Adobe Acrobat Pro, and open the Tools tab.
  2. In the Accessibility tab, run the Full Check. This will check a few things, such as if elements have a language associated with them, if images have alternate text associated with them. (Good (accessfinal-sc-isp-1618) / Bad (HRSDC-EMP5534))
  3. Check document title (PDF 18) (Good (access-final-sc-is-1618) / Bad (inaccessiblePDF.pdf))
  4. Check document language (PDF 16). (Good (access-final-sc-is-1618) / Bad (inaccessiblePDF.pdf))
  5. Check text in alternate language for appropriate /Lang entry. (PDF 19) (Good (accessfinal-sc-isp1618) / Bad (SC-ISP5055A-SWE))
  6. Manually check for meaninful alternate text. (Good (access-final-sc-is-1618) / Bad (inaccessiblePDF.pdf))
  7. Check headers and footers.
  8. Check the tab order of the form. (PDF 3) (Good (access-sc-isp1011(2011-11-15)e.pdf) / Bad (Master-SC-ISP-3025))
  9. Check Tag Order and Reading Order. Make sure they match. (PDF 3). (Good (SC-ISP5055A-LVA) / Bad (SC-ISP5055A-MEXI))
  10. Check form field labels. (PDF 10 and PDF 12) (Good (accessfinal-sc-isp-1618) / Bad (inaccessiblePDF.pdf))
  11. Check the document headers. (PDF 9) (Good (SC-ISP5005) / Bad (inaccessiblePDF.pdf))
  12. Check Lists. (PDF 21) (Bad (SC-ISP5054A-SWE_F (any, but the one on page 4)) / Bad (SC-ISP5054A-SWE_F (page 4)))
  13. Look for tables. (PDF 6) (Good (accessiblePDF.pdf) / Bad (HRSDC-5543))

Checkpoint Description

PDF1 - Applying text alternatives to images with the Alt entry in PDF documents

Run a Full Check in the Accessibility tab in the Tools toolbar. (Step 2). The Full Accessibility check will check for alternate text of the images it finds. However it won’t check for meaningful alternate text. Nor will it distinguish between information-conveying images and decorative ones.

To check for alternate text, find information-conveying images and either mouse-over the images and check the appearing text, or check the Figure tag properties in the tag tree.

PDF2 - Creating bookmarks in PDF documents

Only applies if document has bookmarks. Check that they work.

PDF3 - Ensuring correct tab and reading order in PDF documents (W3C Sufficient Techniques)
  1. If the document contains a form, select the first form field, keep hitting the Tab key until you get to the end of the form. (Step 8).
  2. Go to View -> Zoom -> Reflow (Ctrl + 4). This puts the document into reading order. Ensure it's meaningful and logical. So far this has only worked in about 5% of documents.
  3. If the preceeding step didn't work (ie: if Reflow was greyed out) To ensure correct reading order, ensure the Tag Order is functionally matches the visual order. The Tag Order is how an entire document is processed by AT (Assistive Technology). If there's any confusion, use the Read Out Loud feature in Adobe Acrobat Pro. For further clarification, use a screen reader, such as NVDA or JAWS. If the reading order does not match the visual order, fail the document, send it back suggesting the author use the Touch Up Reading Order tool. See conversation on a W3C mailing list forum.

    A screenshot of reading order in Adobe Acrobat Pro.
PDF4 - Hiding decorative images with the Artifact tag in PDF documents

This should show up in the Full Accessibility Check in Step 2. In fact, it rarely comes up. It's usually an arrow or something.

To check for alternate text, find information-conveying images and either mouse-over the images and check the appearing text, or check the Figure tag properties in the tag tree.

PDF5 - Indicating required form controls in PDF forms

Assume a pass. None of our forms are submitted so a form can't be rejected (by a computer) due to not being filled completely.

PDF6 - Making tables accessible in PDF documents by using table elements

A table should be marked up as such. A table is full of <TR> (table row) elements. A table row will have either <TH> table headers, and/or <TD> data cell elements. It's pretty much the same as HTML. <TH> should not be empty. Empty cells should always be <TD> cells. And the whole thing should be encase in a <TABLE> tag. (Step 13)


  Cost Per Year
Item 2010 2011
Coffee $500 $550
Donuts $300 $230

Should be coded as:

Empty <td> <th>Cost Per Year
<th>Item <th>2010 <th>2011
<th>Coffee <td>$500 <td>$550
<th>Donuts <td>$300 <td>$230
PDF7 - Performing OCR on a scanned PDF document to provide actual text

Assume a pass. Never have seen this.

PDF8 - Providing definitions for abbreviations via an E entry for a structure element

AAA requirement. We look for AA. Assume a Pass.

PDF9 - Providing headings by marking content with heading tags in PDF documents

Find headings. Select each one, "Find Tag From Selection" in the Tags menu. The headings should be marked as <h#> headings. The heading level (ie: the "#") should start at 1, and increment by 1 level at a time. There should also be content between two headings at the same level.

So, <h1> content <h2> content <h2> content <h3> content <h2> content is fine.

<h1> content <h3> <h3> content <h5> content is not because it skips levels 2 and 4. Also, there's no content between the two <h3> headings.

Think of Headings as the hierarchical layout of the document. Headings act like chapters and sections in a textbook. On the Cover Page of the book is usually a page with the title in big, bold letters. That would be marked as <H1>. A textbook is generally divided into a small number of general sections. Each of those general section titles would be marked as <H2>. Each of those general sections will have a few chapters. Each chapter title would be <H3>. Each chapter is often divided up into sub-sections. Each of those sub-section titles would be marked up as <H4>. If those sub-sections had their own sub-sections (or chapter sub-sub-sections), the titles of those sub-sub-sections would be marked as <H5>.

Note that in the textbook analogy, each sub-sub-section relates to the first sub-section that comes above it. Each sub-section relates to the chapter it's in. Each chapter relates to its general section. And everything relates to the book as a whole.

PDF10 - Providing labels for interactive form controls in PDF documents

Mouse-over form elements and check for a pop-up. (Step 9)

PDF11 - Providing links and link text using the /Link structure element in PDF documents

Only have seen this once. If a document has a link in it, check that's it's tagged as such. Assume a Pass. If links do exist, check the properties for the link tags.

PDF12 - Providing name, role, value information for form fields in PDF documents

Ensure the labels are meaningful. ie: Are they what they're supposed to be? (Step 9)

PDF13 - Providing replacement text using the /Alt entry for links in PDF documents

AAA requirement. We check for AA compliance. Assume a Pass.

PDF14 - Providing running headers and footers in PDF documents

On the main toolbar, click the Headers/Footers menu, and select "Update...". 99% of the time, Acrobat will tell you it couldn't find headers. Assume a pass. (Step 6)

PDF15 - Providing submit buttons with the submit-form action in PDF forms

Assume a pass because our forms do not have submit buttons.

PDF16 - Setting the default language using the /Lang entry in the document catalog of a PDF document

Go to Document Properties (Ctrl+D) -> for the Advanced tab for the Language property.(Step 4).

PDF17 - Specifying consistent page numbering for PDF documents

The page numbers that appear in the page should match the page numbers shown in Adobe's page count.

PDF18 - Specifying the document title using the Title entry in the document information dictionary of a PDF document

Go to Document Properties (Ctrl+D) to check for the document title in the Description tab. (Step 3)

PDF19 - Specifying the language for a passage or phrase with the Lang entry in PDF documents

If you see any text on the page that's in another language, select that text, and click "Find Tag From Selection" in the Tags menu. Get the properties of that tag, on the Tag tab, click "View Tag...". Keep clicking on the top-most "+" boxes looking for a /Lang entry. Ensure it's correct. (Step 4)

PDF20 - Using Adobe Acrobat Pro's Table Editor to repair mistagged tables

Check to make sure the table semantic markup is correct. PDF6 ensures that tables are marked up as tables, not figures, or <div>s. PDF20 ensures tables are marked up correctly.

PDF21 - Using List tags for lists in PDF documents

Look for lists. Check to see all items are encoded with <li> tags, and they're all included in one <L> tag. The list heading should not be included in the <L> tag. That's the most common failure for this checkpoint. (Step 11)

PDF22 - Indicating when user input falls outside the required format or values in PDF forms

Applies to submittable forms. Assume a Pass.

PDF23 - Providing interactive form controls in PDF documents

Make sure you can actually fill in form fields.

As an aside, note SDE-0003-05-12(E).pdf on the last page, the red. That pure red-on-white is too low of a contrast, and doesn't pass general WCAG guidelines.