A description that repeats the page

docx.alt-text-onpage

A picture's alt text says only what the document already prints, so nothing is concealed from anybody.

How the text is hidden

The same fields as docx.alt-textwp:docPr/@descr, @title and the pic:cNvPr copy. A logo's description naming the organisation set beside it, or a classification banner's description naming the banner, is text the reader already met in ink.

Why a model still reads it

The string still reaches a model through the same attribute read, which is why the fact is reported at all. It is separated because a caller's canonical text is not carrying anything the reader did not see.

What we do about it

The parser builds the document's printed text from every visible run in every non-alt-text block, case-folded and whitespace-collapsed, then sets an altTextOnPage flag when the whole normalised description is contained in it. Containment of the whole value, not word overlap — a description that shares a word with the page and adds a sentence is not twinned and keeps reporting as docx.alt-text. Values shorter than a small floor are excluded as coincidence. The rule fires at informational with action disclose; the finding is still made and its words still come back, and it never enters summary.concealedRetained.

How often it fires

11.3% of open-data portal DOCX — 150 real government publications, written in Word (genre: government, NOT contracts), measured 2026-08-18.

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