Accessibility and structure / Artifacts and real content
PDF artifacts: page furniture that is not content
The distinction between content that belongs in the reading order and page furniture that does not, marked in the content stream so a screen reader can skip the furniture.
Where this API stands
This API does not produce this standard, and there is no option that would. What follows is what the requirement actually is and where a rendered document stands against it. This API writes no marked content operators, so nothing in its output is distinguished as an artifact. This one is worth being precise about because the API has features that produce exactly the content in question: the `header_html` and `footer_html` fragments draw running content on every page, and those fragments substitute the pageNumber, totalPages, date, title and url tokens, which is page furniture by definition. Any watermark you draw as a background is the same category. None of that is marked as an artifact today, so a later tagging pass has to be told which parts of the page are furniture, and the fragments are the easiest possible thing to point at when that conversation happens.
What the standard requires
The requirements as a checker enforces them, rather than as a procurement document paraphrases them. A file satisfies all of these or it satisfies none of them.
- Page furniture is wrapped in the /Artifact marked content operator rather than given a structure element, which is what removes it from the reading order.
- Artifacts carry a subtype: /Pagination for running headers, footers and page numbers, /Layout for rules and decorative boxes, /Page for cut marks and similar, /Background for watermarks and background fills.
- Every mark on the page is either real content in the structure tree or an artifact, and PDF/UA treats anything that is neither as a failure.
- A repeated running header is an artifact on every page it appears on, and the content it repeats appears once in the tree at the point it actually belongs.
- A decorative image is an artifact, which is a different mechanism from giving it empty alternative text, and PDF/UA cares which one you used.
Who asks for this
Accessibility audits, and the symptom that sends people looking is a screen reader announcing "Page 4 of 12" in the middle of a sentence, once per page, through a whole document. It is one of the more visible failures because it is audible on the first page.
What it looks like in a file
The concrete form of the thing being described, so you can recognise it in a document you have been handed rather than only in a specification.
<!-- Page furniture belongs in the footer fragment, not repeated in the
body. These five class names are substituted at render time.
Styles must be inline: the fragment does not inherit the document
stylesheet, and the default size is very small. -->
{
"options": {
"footer_html": "<div style=\"font-size:8pt;width:100%;text-align:center;color:#666\">Page <span class=\"pageNumber\"></span> of <span class=\"totalPages\"></span></div>"
}
}What to do about it
Keep page furniture out of the flowed content and produce it through the header and footer fragments rather than by repeating markup in the body. That is worth doing for its own sake, and it also means that when a remediation pass runs, the furniture is visually and structurally separable from the content instead of interleaved with it. Where a watermark is required, draw it as a background rather than as an inline element for the same reason.
How to check a file rather than assume
PAC 2024 reports untagged content, which is where anything that is neither structure nor artifact shows up. Acrobat's Content panel shows the marked content sequences on each page and lets you convert an item to an artifact. The audible test is faster than either: have a screen reader read two consecutive pages and listen for the footer.
The mistake people make here
Tagging the running header as a heading. Auto-tagging often does this, because a bold line at the top of every page looks exactly like an /H1, and the result is a document whose outline contains the same heading twelve times. It is worse than leaving it untagged, because it corrupts the navigation control a screen reader user relies on.
Frequently asked
Does this API produce Artifacts and real content?
Not produced by this API. This API writes no marked content operators, so nothing in its output is distinguished as an artifact. This one is worth being precise about because the API has features that produce exactly the content in question: the `header_html` and `footer_html` fragments draw running content on every page, and those fragments substitute the pageNumber, totalPages, date, title and url tokens, which is page furniture by definition. Any watermark you draw as a background is the same category. None of that is marked as an artifact today, so a later tagging pass has to be told which parts of the page are furniture, and the fragments are the easiest possible thing to point at when that conversation happens.
Can I turn on the pdf_a option and be done?
No. The option writes an XMP packet declaring PDF/A-1b into the document catalogue, and the render response comes back carrying a warning that says in as many words that this is best-effort and that full conformance requires tagged structure and an embedded ICC profile. It is a claim written into the file, not a certificate earned by it, and a validator checks the claim against the bytes. Read the warning array in the response rather than taking the absence of an error as a pass.
Should I convert before rendering or after?
After, always. A conformance converter rewrites colour, embeds profiles, sets boxes and stamps metadata on a finished PDF. Trying to satisfy a conformance target from the source side means guessing at what the converter would have done, and the guesses that go wrong are expensive: flattening transparency you did not need to flatten changes what the page looks like.
Standards this one is confused with
The neighbours that matter are the ones people mistake for this, not the ones that sort next to it.
Reading order in an accessible PDF
The sequence a screen reader speaks the document in, which comes from the order of elements in the structure tree and not from where anything sits on the page.
Alt text on images in a PDF
A text description attached to a figure structure element, which is what a screen reader speaks in place of an image it cannot see.
PDF/UA-1 compliance for a generated PDF
ISO 14289-1: the standard that says a PDF is usable by assistive technology, which in practice means it carries a complete and correct structure tree.
How to tell if a PDF is tagged
A tagged PDF carries a second, invisible copy of itself: a tree of headings, paragraphs, lists and cells that says what the content is, rather than where the ink goes.
Setting the document language in a PDF
A language tag in the catalogue that tells a screen reader which voice and pronunciation rules to use for the document, and per-element tags for passages that differ.
Every standard, with what this API does about it
The full list, grouped by what the requirement is for, each marked with how far this API gets.
What this API actually does
One page per option and endpoint that exists, with nothing that does not.
Conformance is decided after a file exists. Render the document, then check it, then convert only what the checker actually flags.