An invisible searchable text layer
A document that is essentially all page pictures with the extracted text laid invisibly beside them — searchable by machine, unreadable by eye, and not an attack.
How the text is hidden
Conversion pipelines turn a signed or scanned document into a run of <img> page pictures plus the full text at a one-pixel font in white, so the result is searchable. The engine recognises the shape from the container rather than from the markup: it computes what proportion of the document's non-whitespace body text is visible, and how much body text there is in total.
Why a model still reads it
The layer is real text in the DOM — that is its purpose. An extractor returns the entire document, which is exactly what a reviewer does not want reported as a concealment finding on every converted filing they scan.
What we do about it
The rule fires on any invisible run when the container's visible-text ratio is at or below a ceiling AND the container holds more than a floor of text — both written into the rule's when expression in the rule pack. It reports informational with action flag. The six rules that carry the matching inverse guard — html.display-none, html.white-text, html.zero-opacity, html.offscreen, html.clipped-text and html.zero-font — stand down when it engages, so the louder finding does not decide the verdict. A ratio rather than a boolean, because these documents always carry one visible heading above the images and a boolean "has visible text" let the control never engage. The length floor matters too: a short document that is entirely hidden is not a text layer, it is a short document that is entirely hidden.
How often it fires
0.50% of 400 real pages from 400 distinct hosts (Common Crawl) — pages, not documents, 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.
Check your own file
Three commands: a key, credit, a verdict.
Start with the API