Summary
This page summarizes WCAG 2.1 AA standards for creating accessible PDFs. If any conflict exists, follow the WCAG documentation.
Best Practices
Create your document in Microsoft Word, using built-in features for lists, headings, tables, etc, then export to PDF.
Simplify charts, tables and graphs to the best of your ability. Only use built-in features to create these items, and provide alternative methods of accessing the content where possible.
Details
All PDF Types
Using a PDF editor, check that a text alternative is displayed for each image.
For an image that is purely decorative, make sure the decorative image is marked as an artifact.
Check that the Bookmarks panel displays bookmarks.
Check that the bookmarks link to the correct sections in the document.
Verify that the content is in the correct reading order
For each table, confirm that the appropriate TR, TH, and TD tags are in the proper reading order and hierarchy in the table tree.
For each page converted to text using OCR, ensure that the resulting PDF has been converted correctly, via manual review in ABBYY Finereader.
Verify that the first occurrence of abbreviations that require expansion text have /E entries on an enclosing tag by one of the following and that both the abbreviation and the expansion text are provided:
In Windows, use Microsoft's Inspect.exe tool, or some other tool that allows inspection of the MSAA interface, to locate the text of the abbreviation in the document tree and ensure that the value of the abbreviation is in the expansion text.
In a PDF editor, locate the tag for the text that is the abbreviation, and check that an expansion or definition is provided for each abbreviation in the Expansion Text field in the corresponding tag's properties.
For all PDF content that is divided into separate sections, use a PDF editor to make sure the headings are tagged correctly.
For each hyperlink, verify that the link is correctly tagged and the link text is properly exposed.
For the hyperlink, verify that the alternate link text is properly coded.
Check that running headers and/or footers are provided and contain information to help users locate themselves within the document (such as page numbers or chapter numbers).
If section headers are used in the running header or footer, check that the section header and the running header or footer are consistent.
Verify that the default language for the document is correctly specified.
Verify that the language of a passage, phrase, or word that differs from the language of the surrounding text is correctly specified by a /Lang entry on an enclosing tag or container.
For every section in the document that uses a different pagination format, check that the page navigation feature uses the same format used on the document pages.
Verify that the title for the document is correctly specified and displayed in the title bar.
For a table that has been repaired with the Table Editor, confirm one of the following:
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.
Inspect the tag tree to verify that the list is structured correctly.
PDF Forms
Forms require additional attention to accessibility measures. Incorporate all of the above content, plus the following.
Procedure
For each form field that is required, verify that validation information and instructions are provided by applying the following:
Check that the required status is indicated in the form control's label.
Leave the field blank and submit the form. Check that an alert describing the error is provided.
Use a tool that exposes the document through the accessibility API, and verify that the required property is indicated.
Procedure
For each form control, verify visually that the label is positioned correctly in relation to the control.
For each form control, verify that the name is programmatically associated with the control by one of the following:
Open the PDF document with a tool that is capable of showing the name associated with the control and verify that the name is associated correctly with the control.
Use a tool that exposes the document through the accessibility API, and verify that the name is associated correctly with the control.
Procedure
For the form control, verify that name, role, and value/state are specified by one of the following:
Use a screen reader to navigate to the form control and check that it can be activated or that its value can be changed. Verify that the name (tooltip) and role are announced.
Use a tool capable of showing the form field information to open the PDF document and verify that the form control has the correct name, role, value, and state (if appropriate) information.
Use a tool that exposes the document through the accessibility API, and verify that the form control has the correct name, role, value, and state (if appropriate) information.
Procedure
For each page that submits a form, visually verify that the form contains a submit button and check one of the following:
Tab to the button and check that it submits the form in response to user action to select the button.
Open the PDF document with a tool that is capable of showing the submit-form action and check that the button action is to submit the form.
Procedure
For each form field that requires specific input, verify that validation information and instructions are provided by applying the following:
Check that the format or value that is required is indicated in the form control's label.
Use an erroneous format or value and move off the field: make sure that an alert describing the error is provided.
Procedure
For each form control, verify that it is properly implemented by tabbing to each form control and checking that it can be activated or that its value can be changed from the keyboard.
Add Comment