Matterhorn 26-001 · PDF/UA-1 UA1:7.16-1

A secured PDF that never granted permission to read it aloud

Blocker Checkpoint 26: Security WCAG 1.3.1 (A)

Without a /P permissions entry there is no declaration that content may be extracted for accessibility.

The condition, as the protocol states it. “The file is encrypted but does not contain a P entry in its encryption dictionary.”

Matterhorn Protocol 1.1, checkpoint 26, index 26-001, section UA1:7.16-1. Software can decide this one on its own.

What a screen reader actually does

Conforming readers may refuse to extract text from the document at all.

What is in the file

An encrypted PDF has an encryption dictionary in its trailer. Among its entries is /P — a signed integer whose bits are permissions:

/Encrypt << /Filter /Standard /V 4 /R 4 /P -1340 ... >>

Bit 5 is copy or extract text and graphics. Bit 10 is extract text and graphics for accessibility. They are deliberately separate: the format’s authors intended a document to be able to forbid casual copying while still permitting assistive technology.

This condition fires when the file is encrypted and /P is absent altogether. There is no statement either way, and a conforming processor that looks for permission and finds no grant has been given nothing to rely on.

What the user hears

Possibly everything. Possibly nothing. The variation is the problem.

Most desktop screen readers ignore the permission bits. JAWS and NVDA on Windows, VoiceOver on macOS — all generally read a document the user has legitimately opened. On those, the file works.

Conforming processors behave differently, and so do a number of things that are not screen readers but matter just as much: enterprise document conversion pipelines, some mobile readers, text-extraction libraries used by downstream systems, and the accessibility validators that decide whether the document passes. Those honour the declaration, and with no declaration they decline.

The result is a document that works on the machine it was tested on and silently fails in the place it was sent to — which is the worst shape a defect can take, because nobody can reproduce it and the person reporting it is not believed.

Where it comes from

Protection applied as a habit. A great deal of PDF security exists because a menu item was there, not because anyone decided the document needed it. Somebody applied Restrict Editing years ago and the setting has been inherited through every revision since.

Old encryption written by older tools. /P has been part of the standard encryption handler for a long time, but tools that assembled encryption dictionaries by hand, or copied one from another file, sometimes omitted it.

Pipelines that re-encrypt. A document that passes through a rights-management or watermarking step and comes out encrypted by something other than the tool that made it.

How to check it free

Acrobat. File → Properties → Security tab. The Document Restrictions Summary lists each permission; look for Content Copying for Accessibility. Not Allowed is the related condition 26-002; a file with no /P at all usually shows the whole panel in an unhelpfully permissive state.

Command line, and this is the clearer answer:

qpdf --show-encryption document.pdf

It prints the permission bits it finds, including whether accessibility extraction is allowed, and says plainly when the file is not encrypted at all.

veraPDF reports it against clause 7.16.

How to fix it free, in Acrobat Pro

If the protection is not doing anything — and check this before anything else, because it usually is not:

  1. File → Properties → Security.
  2. Security Method → No Security.
  3. Save.

If the protection is deliberate, keep it and grant the permission:

  1. File → Properties → Security → Security Method → Password Security.
  2. Under permissions, set Changes Allowed as you need it.
  3. Tick Enable text access for screen reader devices for the visually impaired.
  4. Save.

That checkbox is the one that matters, it is distinct from Enable copying of text, and it is off by default in some workflows. A document can forbid copying and permit reading aloud, which is exactly what most people who apply protection actually want.

qpdf, free and scriptable, for a backlog:

qpdf --decrypt in.pdf out.pdf

Where Taggart differs

It distinguishes this from 26-002, which is the file that forbids extraction, and the distinction is harder than it looks: the usual library answer reports a default when /P is absent, so “not permitted” and “nothing was said” come back identical. Taggart reads the encryption dictionary rather than the library’s interpretation of it, because those are two different documents to hold and two different conversations to have with whoever produced them.

accessibility-permissions is a safe fix and runs in the batch, and what it does is worth stating precisely because “we changed your document’s security” deserves no ambiguity.

Taggart writes the output unencrypted, and says so in the change log rather than leaving it to be discovered. That is the only repair that can honestly promise what this fix promises: an output that no longer carries a restriction blocking extraction. Re-encrypting with a corrected /P would require a password Taggart does not have and must never invent.

So the remediation report records it as a change to the document’s security, in those words:

removed encryption; the source file was encrypted with no /P entry, so no accessibility-extraction permission was declared

If that is not acceptable for a particular document — and for some it will not be — the finding stays open and the file keeps its encryption. Taggart will not quietly strip protection from a document and report it as a metadata fix.

How Taggart handles it

Taggart detects this condition automatically. It is reported as a blocker, with the page, the structure path and the object id of every occurrence.

The fix is Grant accessibility extraction permission. It changes what the document means, so Taggart proposes it and waits for your approval rather than applying it unattended.

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

My protected PDF works with NVDA. Is this real?

It is real and it is inconsistent, which is the awkward part. Most mainstream readers on the desktop ignore the permission bits, on the reasonable view that a document you can legally open is a document you can legally read. Conforming processors, enterprise document pipelines and several mobile readers honour them. So the file works where you tested it and fails somewhere you did not.

Is turning off protection the fix?

It is the honest fix when the protection is not doing anything — and a great deal of PDF protection is a habit rather than a decision. Where it is deliberate, the fix is to keep the encryption and grant the accessibility-extraction permission, which is a separate bit from copying.

Which bit is it?

In the /P integer, bit 10 is extraction for accessibility and bit 5 is copying generally. They are separate precisely so that a document can forbid copying and still permit a screen reader. PDF 2.0 deprecated bit 10 and treats content as always extractable for accessibility, but files and readers in the field still predate that.

Does password-protecting a file break accessibility on its own?

No. An open password stops the file being opened at all, which is a different conversation. This condition is about a file that opens for everyone and then declines to say whether its text may be read out.

Where this sits in the standards

Standards this condition maps to
StandardReference
Matterhorn Protocol 1.1 Checkpoint 26 (Security), index 26-001
PDF/UA-1 (ISO 14289-1) Clause 7.16-1
WCAG 2.1 1.3.1 Info and Relationships — Level A
EN 301 549 / Section 508 / ADA Title II All 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 26

Checkpoint 26 covers security. 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 — every machine-checkable Matterhorn condition, no watermark, no expiry, and no account needed up to 60 pages.

Check a PDF free

Verified against a real document on . Last updated .