Matterhorn 01-004 · PDF/UA-1 UA1:7.1-1

Tagged content inside an artifact, where readers skip it

BlockerCheckpoint 01: Real content taggedWCAG 1.3.1 (A)

A marked-content sequence for real content has been opened inside an open artifact sequence. The artifact swallows the real content.

The condition, as the protocol states it. “Tagged content is present inside content marked as Artifact.”

Matterhorn Protocol 1.1, checkpoint 01, index 01-004, section UA1:7.1-1. Software can decide this one on its own.

How PAC reports it

If you came here from another checker's report, these are its lines for this condition.

  • PAC 2024, PDF/UA › Content: “No tagged content in artifact”
  • PAC 2024, detailed results: “Tagged content present inside an Artifact”

What a screen reader actually does

The tagged content inside the artifact is typically skipped entirely.

What is in the file

Page content is a sequence of marked-content operators. Real content opens with BDC, names a tag and carries an MCID that a structure element claims. An artifact opens with /Artifact. Both close with EMC. They may follow each other; they may not contain each other.

This is the condition:

/Artifact <</Type /Pagination /Subtype /Header>> BDC
  BT /F1 8 Tf 1 0 0 1 72 810 Tm (Annual report 2026) Tj ET
  /P <</MCID 1>> BDC                         ← opened inside the artifact
    BT /F1 11 Tf 1 0 0 1 72 730 Tm (Revenue rose 14% over the year.) Tj ET
  EMC
  BT /F1 8 Tf 1 0 0 1 480 810 Tm (Page 1) Tj ET
EMC

The structure tree has a <P> claiming MCID 1, so the tree says the sentence is content. The content stream says it is inside a running head. Its opposite — an artifact opened inside a paragraph — is 01-003.

The nesting does not have to be visible in one stream. If a page draws a Form XObject inside an artifact, everything tagged in the form’s own stream is inside that artifact too:

/Artifact BMC  /Fm0 Do  EMC          % the page
/P <</MCID 1>> BDC … EMC             % inside Fm0

What the user hears

A reader that honours the artifact marking discards everything the artifact encloses, and the sentence goes with it — no announcement, no gap. A reader that goes by the tree reads it. The file supports both, and which one a given reader does is not something you can see from the document.

Nothing about this is visible to a sighted reviewer. The page renders identically either way, and the Tags panel shows a correct <P> with the right text under it, because the Tags panel shows the tree.

Where it comes from

Wrapping finished pages. Any process that takes an existing page, turns its content into a Form XObject and draws it again — placing a page as a background, imposing pages, overlaying a letterhead — and marks that drawing as an artifact puts every tagged thing on the original page inside an artifact.

Edits inside a header or footer. Somebody tags a link or a title that sits in a running head without first taking it out of the header’s artifact sequence.

Generators that track the marked-content stack badly. One missing EMC before a body paragraph is enough, and a bug of that kind repeats on every page the generator writes.

How to check it free

veraPDF reports it under clause 7.1.

Acrobat Pro’s Content panel (Show/Hide → Side Panels → Content) lists containers and objects in page order. An artifact container with tagged content inside it is this condition. It is visible, not flagged.

Acrobat’s Accessibility Checker is the wrong tool. Its Tagged content rule asks whether content is in the tree or marked as an artifact, and this content is both; nothing in Adobe’s published rule list looks at how marked-content sequences nest.

By hand: qpdf --qdf --object-streams=disable in.pdf out.pdf makes the streams readable. Look for a BDC carrying an MCID between /Artifact … BDC (or BMC) and its EMC.

How to fix it free, in Acrobat Pro

There is no command for this. It is below the structure tree, and the Tags panel cannot reach it.

The Content panel is where Acrobat exposes this level. Adobe’s Content and Tags panel documentation describes two commands there: Remove Artifact, which “removes the artifact definition from the selected object”, and Create Artifact, which defines selected objects as artifacts. In principle, removing the artifact definition from the outer container leaves the tagged paragraph as tagged content, and you then select the header text and page number and make those artifacts again with Create Artifact. Whether that works depends on how the producer built the container, and Adobe warns that editing content objects can damage a PDF. Save a copy first, and check the result with veraPDF.

If a tool wrapped whole pages, fix the order of operations instead: stamp or impose before tagging, or re-export from the source and tag the result.

What Taggart does

The check walks every page’s content stream with the marked-content stack in hand, following Form XObjects, and reports each BDC with an MCID that opens while an artifact is open:

Tagged content (<P>) is opened inside an /Artifact sequence on page 1.

The evidence names the outer and inner tags and, where the nesting runs through a form, the XObject path — ["Fm0"] — which tells you the page drew a form inside an artifact rather than nesting the sequences in its own stream.

The repair, artifact-nesting, is marked safe and runs with Fix All Safe. Only BMC, BDC and EMC operators move, so the page renders identically.

  • It closes the artifact before the tagged sequence and reopens it after. The paragraph is lifted out, and whatever the artifact paints afterwards — the page number in the example above — is still inside an artifact, so it stays out of what a screen reader reads. The stream opens and closes the same number of sequences. When it is the other way round, a decoration inside a paragraph (01-003), the paragraph is reopened under a new MCID linked to the same <P>: an MCID names one sequence in a stream, so the second half cannot reuse the first half’s.
  • It does not rewrite Form XObjects. Where the nesting runs through a form, the repair changes nothing, reports that it did not apply, and the 01-004 finding stays. That case is for Acrobat or the source application.

Earlier versions closed the artifact and never reopened it, so the page number came out with no marking at all and the re-check reported it as 01-005. If you repaired a file before October 2026, check it again.

How Taggart handles it

Taggart checks for this condition automatically and reports it as a blocker, with where in the file it found it.

The fix is Repair artifact / real-content nesting. It is mechanical, so “Fix All Safe” applies it along with the others in one pass and lists what it changed. Your original file is never modified.

Whatever Taggart changes, the page still looks identical. Fixes edit the PDF object model, not the content streams, and every remediation is re-rendered and compared against the original at structural similarity ≥ 0.999 before you get the file back. A tool that quietly reflows your document is worse than no tool.

Frequently asked questions

How is this different from 01-003?

Direction. 01-003 is an artifact opened while real content is open — the page number inside the paragraph. This one is real content opened while an artifact is open — the paragraph inside the running head. Here the artifact is the outer sequence, so it is the content that risks being thrown away with it.

The paragraph is in the Tags panel. How can it be skipped?

The Tags panel shows the structure tree, and the tree is fine: an element claims the paragraph. The content stream says the same text sits inside an artifact. The file contradicts itself, and a reader that honours the artifact marking drops the text. Nothing in the Tags panel shows you that.

Where would I see it in Acrobat?

In the Content panel, which lists the page's containers and objects in the order they are painted. Expand the artifact container and the tagged content is inside it. Nothing highlights it; you are reading the nesting by eye.

Is it ever correct?

No. ISO 32000-1 keeps artifacts out of the logical structure, and PDF/UA-1 requires content to be either an artifact or real content. A sequence that is both has no defined meaning, and the protocol treats it as a failure software can find on its own, not as a judgement.

Where this sits in the standards

Standards this condition maps to
StandardReference
Matterhorn Protocol 1.1Checkpoint 01 (Real content tagged), index 01-004
PDF/UA-1 (ISO 14289-1)Clause 7.1-1
WCAG 2.11.3.1 Info and Relationships — Level A
EN 301 549 / Section 508 / ADA Title IIAll three point at WCAG 2.1 Level AA for non-web documents, so a Level A or AA criterion here is in scope for each of them.

Other conditions in checkpoint 01

Checkpoint 01 covers real content tagged. These are its other failure conditions; the ones without a link are in the rule set but do not have a written page yet.

Check your own file. Taggart’s validator is free and unlimited — 75 of the 87 Matterhorn conditions software can decide, with the other 12 listed for you to confirm; no watermark, no expiry, and no account needed up to 60 pages.

Check a PDF free

Checked with Taggart on a generated file that fails this condition on . The Acrobat steps follow Adobe’s documentation and were not walked through by hand. Last updated .