PDF/UA (Accessibility)

PDF/UA (Accessibility)

Introduction

To support accessibility requirements, InterFormNG2 can create PDF documents that are PDF/UA-1 compliant in accordance with ISO standard 14289-1:2014. UA is an abbreviation of Universal Accessibility. In e.g. Germany this is referenced as Barrierefreiheitsstärkungsgesetz (BFSG). Conformance with PDF/UA ensures accessibility for people with disabilities who use assistive technology such as screen readers, screen magnifiers, joysticks and other technologies to navigate and read electronic content.

HTML output also supports the basic accessibility guidelines.
Some of the accessibility requirements have to be handled in the template design and is the responsibility of the person designing the template.

Note that the Advanced PDF module license is required in order to create PDF/UA-1 documents with InterFormNG2.

Notes
PDF/UA is not the default PDF output in InterFormNG2. In order to generate PDF/UA you need select that when the PDF is generated. A preview in the designer is also not PDF/UA, so you will need to setup a workflow in order to generate the PDF/UA output.

Compliance Check for PDF UA

Various tools are available for checking if a document is PDF/UA-1 compliant.
A good free online tool is axesCheck. Note that this does not check all requirements, for instance it is not possible to automatically verify the requirement that all text elements must be in logical reading order. Another application, that is recommended is AxesPDF.


Limitations in PDF/UA-1 Support

  • The template element “Form Field” cannot be used in a PDF/UA-1 compliant document.

  • Compliant lists can only be created by text elements with HTML (<ul> and <ol> tags).

  • Every page of the PDF will be marked as a separate part and section. There is no way for the template design to control the division into parts and sections.

  • All text elements are treated as individual paragraphs.

  • Documents can only have a single language code. If a document contains text in several different languages, then the is no way to set a different language code on individual texts.

  • Only heading levels 1-4 are supported, unnumbered headings are not supported.

  • Table headers are not supported.

  • Image captions are not supported.

  • Mathematical formulas are not supported.

Template Designer’s Responsibility

The person designing the template is responsible for complying with the following rules and best-practices.

  • All elements must be defined in the logical reading order, i.e. their order in the template tree has to be the same as the reading order.

  • All text elements that are meant to be perceived as headers must be identified as headers by using a text style where a header level is set.

  • All header texts must be in a valid order of levels, i.e. Header 1 must be the first header in the reading order and following header texts have to be within one level of the previous header, or restart at level 1.

  • Any files that are embedded into a PDF/UA-1 document must themselves be accessible.

  • Meaningful alternative texts should be provided for image elements

  • Meaningful alternative texts should also be added for hyperlinks setup in images and text elements.

  • For HTML output, the alternative text on text element URLs is not used, it is the normal text of the element that needs to provide a meaningful description for the link.

The PDF target format

After preparing the template for PDF/UA-1 as described above you also need to activate PDF/UA-1 in the workflow, when the PDF is generated. That is setup on the parameter, PDF target format which can be selected on the workflow components, that create an output PDF like: Create PDF file, Create PDF document, Create PDF, Create PDF email and Create EML with PDF.


Example for the Demo invoice template

Let us consider the Demo invoice of InterFormNG2, which looks like below:


The required steps to ensure that the output PDF for this template is PDF/UA compatible are listed below:

Ensure correct order of the design elements

Ensure correct order of the design elements

First we verify, that the elements on the output is generated in the correct reading order i.e. from the top and down and from left to right. You can verify that e.g. by clicking on the elements in the designer. We can e.g. see that in the header here:


The image and the 3 table are marked below:


The positions of these elements are all dynamic, which means that they are placed in the correct reading order (all texts inside the tables are also placed in a dynamic position). If any of your design elements are inserted with a fixed position, then you need to ensure, that they are placed in the correct sequence in the template element tree.


Prepare text styles for all headers

Prepare text styles for all headers

Next we need to consider which text styles are needed for the headers in the document. First we need to identify the headers and starting from the top we see:

INVOICE
Invoice No.
Our Order No.
etc.
 - and in white:
Item number
Description
Quantity
etc.

We need one text style to match each formatting and each text style should also refer to the right header level.
For the headers I have here create these text styles:

Text style, Header 1:


Text style: Header 2:

Text style: Header 2 Size14:


Text style: Header 2 white right adjust:


Text style: Header 2 white:

Notice, that I have chosen Header level 1 for the Header 1 text style and Header level 2 for the others.

Different font settings as alignment (left and right alignment) and color (black or white) require a specific text style.

Assign header text styles to all header texts

Assign header text styles to all header texts

Now we can select a text style to all of the header texts. Here we assign the Header 1 text style to the top INVOICE text:


We continue with the other header texts and e.g. the Quantity header is to be right adjusted and printed in white, so the matching text style is used:


Add alternative text on each image

Add alternative text on each image

For all images we need to add an alternative text to describe the image. In this case we only have the InterForm logo in the top. Here the text 'InterForm logo' is added:



Add alternative text for all hyperlinks
Both texts and image can contain a hyperlink. If this hyperlink is used, then an alternative text must be added. A hyperlink on an image looks like this:


Create a PDF/UA output file

Create a PDF/UA output file

Here is a simple workflow, that creates a PDF/UA output file (provided that all prerequisites above are met):


Here PDF/UA-1 is selected as the PDF target format.

How to validate the output PDF/UA file

How to validate the output PDF/UA file

A good free online tool is axesCheck. Note that this does not check all requirements, for instance it is not possible to automatically verify the requirement that all text elements must be in logical reading order.

    • Related Articles

    • Advanced PDF module

      The Advanced PDF module includes these options: Append a PDF i.e. merge two PDF files together. Encrypt, password protect and restrict the use of output PDF files. With this you can create a password protected PDF file and enable/disable functions ...
    • PDF

      InterFormNG2 can work with PDF files in multiple ways - both as input and as output. PDF is one of the file types/payloads, that can be handled by the InterFormNG2 workflow. PDF as input A workflow can e.g. accept PDF files as the input file type. ...
    • Create PDF

      The Create PDF shortcut create document is used mostly internally. For normal creation of PDF file you should consider the Create PDF file component. The input payload for this component is intermediate. For use of this component: Please refer to the ...
    • PDF Protect/restrict

      You can password protect and restrict a PDF inside the payload of InterFormNG2, that is later saved. The PDF should normally first be created with the component: Create PDF document. When you open a protected PDF file, you will be prompted for a ...
    • PDF input and output

      If you want to create PDF output in InterFormNG2, then you need to setup a workflow in InterFormNG2 to do that. If you want to use the PDF inside of an email, then you should consider to check out the email output options first, as the normal create ...