Annotation flagged not to display

pdf.hidden-annotation

A comment or form-field value carrying text that the annotation's own flags tell the viewer not to show.

How the text is hidden

Annotations live on the page dictionary, not in the content stream, so nothing a content-stream interpreter does can see them. Their /F flag bits include Hidden (do not render at all) and NoView (do not show on screen, but still print). Text rides in /Contents on a comment, or in /V on a form field — a value that is inherited through /Parent, so it may not sit on the annotation itself.

Why a model still reads it

Whether it reaches a given model is consumer-dependent, and that is stated rather than predicted: pdftotext, PyPDF2, Textract and Azure Document Intelligence all read annotations, while an integrator measured that a hidden /Widget value does not arrive at one document API where a visible one does.

What we do about it

annotationBlocks walks /Annots, decodes /Contents and the inherited field value, and when either the Hidden or the NoView bit is set marks the run hiddenAttr with invisibleReason: 'hidden-attr' and visible: false; the block is filed with role comment. The rule pdf-hidden-annotation requires both block.role == 'comment' and that reason, so an ordinary unflagged annotation produces no finding at all. It fires at medium, action flag.

How often it fires

0% of 630 real PDFs — 510 SEC-sourced contracts plus 120 Common Crawl web PDFs (35 producers), measured 2026-08-21.

This is an alert-volume number and nothing else. It says how often the alarm sounds on documents as found — not how often it is right, and not whether what it found was harmless. Documents as found may themselves carry concealment. Read it against the population named above rather than as a property of documents in general.

next

Check your own file

Three commands: a key, credit, a verdict.

Start with the API