Class StructureMark
A logical-structure boundary in paint order: the start or end of one structure element.
public sealed class StructureMark : ILayoutPrimitive
- Inheritance
-
StructureMark
- Implements
- Inherited Members
Remarks
Structure lives in the DOM and the ResolvedDocument, but marked content has to be
emitted into the layout's content stream, and the one-way bridge means a renderer can
never ask the DOM. Carrying the answer as a primitive in paint order is what closes that
gap — and paint order is reading order, which is the property tagging actually needs and
page geometry cannot supply for multi-column or floating content.
Marks nest and must balance within a page. An element that spans a page break emits a
start/end pair on each page it touches, with the same ElementId; that is
how one paragraph broken across pages stays one /P with two marked-content
references rather than becoming two paragraphs.
Renderers that have no structure layer ignore this primitive. That is not an oversight to be tidied up later: a raster image has nowhere to put a structure tree, exactly as it has nowhere to put a LinkRegion.
Constructors
- StructureMark(int, int, StructureRole, string?, string?, TableHeaderScope, int, int)
Initializes the start of a structure element.
Properties
- AlternateText
Gets the alternate text for a figure, or null.
- ColumnSpan
Gets the cell column span.
- ElementId
Gets the stable element identity.
- HeaderScope
Gets the header scope; meaningful only for a header cell.
- IsStart
Gets true when this mark opens an element; false when it closes one.
- Language
Gets the BCP 47 language tag where it differs from the document's, or null.
- ParentElementId
Gets the containing element's id, or 0 for a child of the document root.
- Role
Gets the element's semantic role.
- RowSpan
Gets the cell row span.
Methods
- End(int)
Creates the closing mark for an element.