Translating the Body
Zone Markers
Section titled “Zone Markers”Every structural container in the source page produces a zone marker in the translated body. A marker takes one of two forms:
The second form carries a zone-level permission override. Markers use CommonMark link-label syntax and are invisible when the Markdown is rendered; they are read by machines, not displayed to readers.
A zone name consists only of lowercase letters, digits, and hyphens, matching [a-z0-9-]+. A name derived from an element tag conforms automatically. A data-ames value must already conform; a nonconforming value is normalized by the consuming system, which preserves the marker but not necessarily the label. Supplying conformant data-ames values is the publisher’s burden.
Element Targeting in a Flat Sequence
Section titled “Element Targeting in a Flat Sequence”AMES translates the nested HTML document tree into a linear sequence of structural markers and content.
When the parser encounters a structural element, it emits the applicable marker for that element. Content following the marker is associated with that point in the sequence until another structural marker is emitted. An annotation placed on an outer container therefore does not necessarily govern content carried by later inner structural elements.
For that reason, data-ames and data-ames-policy must be applied to the structural elements whose content they are intended to describe.
Web developers are accustomed to reasoning about nested DOM containment and CSS inheritance and cascade. AMES uses a different model. Zone and permission markers function as waypoints in the translated sequence rather than wrappers around all descendant content.
Substantive Content Zones
Section titled “Substantive Content Zones”Content selection under content.zone is evaluated against the source page: every element matching the declared zone name is selected, together with the content it contains, including content inside nested structural elements.
The translated body works differently. Content in the body sits under the innermost structural marker that contains it. A zone declared on an outer wrapper produces a marker with little or no content of its own; the substantive text appears under the markers of the inner elements. Placing data-ames on the element that directly carries the substantive content keeps the declared zone and the body content aligned.
Valid, but the body content sits under the inner marker
Recommended
The zone designation belongs on the element that directly carries the substantive content.
Permission Overrides
Section titled “Permission Overrides”The same rule applies to permission overrides.
A policy applied only to a parent wrapper does not automatically carry forward through structural elements emitted later in the sequence. Where a repeated component contains separately marked structural elements, each qualifying element must carry the intended override.
For example, a restrictive policy applied to user-generated comments should be placed on each comment element rather than only on the surrounding section.
Incorrect
Correct
This element-level targeting keeps zone and permission declarations attached to the content they describe, even where the source HTML contains deeply nested layouts, repeated components, extensive wrapper markup, or a DOM altered after initial page load.
Manipulated DOMs
Section titled “Manipulated DOMs”AMES may be generated from a page whose rendered DOM differs from the original server response because of client-side rendering, injected content, personalization, widgets, or other post-load processing.
When client-side scripts alter the structural container sequence of the declared content zone after the initial server response, set:
The optional content.dynamic_dom field is a Boolean value and defaults to false.
This field is advisory. It signals that the rendered page may differ structurally from its static HTML source. It does not determine what the translated body represents or modify the structural-parity requirements that apply to the translation.
Implementations should ensure that injected or dynamically generated structural elements receive the same direct data-ames and data-ames-policy treatment as elements present in the initial markup. Post-load DOM changes should not detach content from its intended zone or permission state.
Changes that do not alter the structural container sequence of the declared content zone do not require dynamic_dom: true.
A worked page is in the Dynamic DOM Declaration example.
Tooling and CMS Implementations
Section titled “Tooling and CMS Implementations”CMS plugins and generation tools should apply AMES attributes directly to each qualifying structural element in the rendered output.
For repeated components such as comments, cards, widgets, media items, or search results, the implementation should stamp the applicable data-ames or data-ames-policy attribute onto each rendered element that requires the designation.
The tool does not need to reproduce CSS-style inheritance or calculate a separate cascade through the DOM. It must instead ensure that each relevant waypoint in the translated sequence carries the publisher’s intended zone or permission state.
The resulting sequence should remain correct even when the source page contains nested containers, dynamically generated components, irregular HTML structure, or post-load DOM manipulation.
Worked pages are in the Non-Semantic Nested Markup and Zone-Level Permission Override examples.