A shape marked not displayed

docx.shape-hidden

A floating shape's own properties say it is not drawn, and every run inside it goes with it.

How the text is hidden

Two spellings under one name. VML writes visibility:hidden, display:none or mso-hide:all in a v:shape style attribute. DrawingML writes hidden="1" on the shape's non-visual properties — wp:docPr, wps:cNvPr or wpg:cNvPr — which Word exposes directly through Home → Select → Selection Pane. Neither touches the text: the shape's w:txbxContent keeps its runs verbatim.

Why a model still reads it

Anything walking //w:t reads the text box's contents whether or not the container is drawn. This hides the container, not the text.

What we do about it

The parser collects VML shape ranges whose style carries one of the three hiding declarations, and DrawingML container ranges whose own properties element sets hidden. The DrawingML list covers the anchor, the inline wrapper, the shape and the shape group, because the attribute is defined once on the shared non-visual properties type — reading only the outermost was a bypass by relocation, and there is a regression test for it. The reason is container-hidden; the rule fires at high, action flag.

How often it fires

0% 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