WCAG best practices - print templates (low-code)
Free tools for verifying print accessibility
PAC
PAC - https://pac.pdf-accessibility.org/en (Windows) - a tool used to check whether PDF files comply with accessibility requirements. It can be used to verify whether our PDF meets PDF/UA and WCAG standards and generate a report based on that. It also allows you to preview the document structure for a screen reader.
It should be noted that PAC is not an official tool created by the ISO committee, but by a third-party company; therefore, the results of its reports and analyses are not the only ones to rely on completely, because they are not the only available tool of this type, and other solutions may offer information and analyses that may differ to some extent.



Axes4
Axes4 - https://check.axes4.com/en/ - an online tool that generates an accessibility report. It is more limited than the PAC tool in terms of more detailed analysis with error indication, and it does not allow previewing the PDF structure.

Screen readers
Information is available here
Print metadata declarations
In the context of accessibility <fo:declarations> we can declare metadata or other additional information that do not directly affect the visual formatting.
<fo:declarations> for proper operation in the document structure, it must be placed between the tag <fo:layout-master-set>, and the first <fo:page-sequence>
Screen readers can interpret these values. According to UA and WCAG assumptions, the metadata should include the document title, language, and the DisplayDocTitle setting. Example declaration:
Assigning the correct tag to email addresses and links
Email addresses and links to external addresses should be contained within the context of the tag <fo:basic-link>
Example:
Modifying the role of elements
By default, elements are automatically assigned their corresponding types in the generated PDF structure. (H1 to H6 for headings, L for lists, etc.). However, it is possible to override the default roles if we want to improve the default structure using the "role" attribute.
The default <fo:block> is assigned the role <p>.
To omit some elements in the PDF structure so that they are not visible to the screen reader, we can use role="artifact". This is useful for skipping elements such as <fo:static-content> such as page headers and footers, which are unhelpful for blind users when read by a screen reader.
Example of use for a header:
It is also possible to "wrap" content that we would like to omit in the PDF structure using the <fo:wrapper> element with the role "artifact" assigned.
Example for presenting the date format dd-mm-yyyy under the field:
Presentation of empty cells
When creating elements that do not need to present a value and may be empty, you should not use a non-breaking space or characters in the same color as the print background.
Example of a template for an unchecked checkbox causing an accessibility report error due to the use of color="white", which results in a white character displayed on a white background:
Instead, it is better to create an empty cell with an assigned style padding-top and padding-bottom, which will visually give us the same appearance of the cell without the need for any unnecessary character inside it.
Spacing between elements - avoiding empty rows
It is bad practice to use elements such as fo:block with non-breaking spaces to increase the spacing between elements in the printout. The same effect can be achieved by using styles such as margin-top and margin-bottom. This way we avoid unnecessary empty elements in the document structure.
If you want to increase the spacing between rows <fo:table-row> you can use the table property border-collapse="separate" and border-spacing="...".
For example:
Accessibility in PDF (Consdata blog article)
Last updated
Was this helpful?
