Skip to content

spec: content marked decorative is never emitted; cnd.decorative helper - #3

Merged
Maxanox merged 10 commits into
mainfrom
cnd-12-decorative-content
Oct 10, 2026
Merged

Maxanox merged 10 commits into
mainfrom
cnd-12-decorative-content

Conversation

@Maxanox

@Maxanox Maxanox commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

Closes CND-12.

What

  • Spec §2, "Decorative content (normative)" (proposal 0011). A producer emits nothing for content its source marks as decorative: no node, no text in another node, no pool entry, no link edge.
    • Markers written inside decorative content yield no edge.
    • A reference into decorative content yields no edge.
    • A kept footnote keeps its rendered ordinal.
    • The bibliography stays the built document's.
    • Only an explicit marker counts. The mappings are informative: Typst pdf.artifact, tagged-PDF artifacts, HTML aria-hidden="true" and alt="" images.
  • Typst package: cnd.decorative(body), a named wrapper over pdf.artifact. README and changelog document it, and a package test pins it.

There is no schema change and no cnd_version bump.

Reference producer status

The Typst producer covers the rule, including floats and show rules that wrap a whole element (companion change in the typst fork). One partial show-rule case remains and is named in § Impact.

Tests

uv run pytest -q: 430 passed.

🤖 Generated with Claude Code

https://claude.ai/code/session_01XxXUiDn2QyzNTYnZpeVFVS

Maxanox and others added 10 commits October 10, 2026 13:13
A producer emits no node, text, pool entry or link edge for content its
source marks as decorative (Typst pdf.artifact, tagged-PDF artifacts,
HTML aria-hidden / role="presentation"). References into it yield no
edge; footnotes declared in it get no pool entry. Only an explicit
marker counts. Producer behaviour only, no schema change.

Part of CND-12.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A named wrapper over pdf.artifact in the Typst authoring package, so
authors state the intent the spec's "Decorative content" rule acts on.
README and changelog document it; a package test pins the definition.

Part of CND-12.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Markers written inside decorative content (references, citations,
  footnote re-references) yield no edge, whatever they point at.
- A kept footnote keeps its rendered ordinal: now normative.
- The bibliography pool stays the built document's bibliography.
- HTML mapping: aria-hidden="true" and alt="" images only. The roles
  presentation and none strip semantics, not content, so they are out.
- Proposal 0011 names the reference Typst producer's two remaining
  gaps instead of claiming full coverage.

Part of CND-12.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Part of CND-12.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e rule

Part of CND-12.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XxXUiDn2QyzNTYnZpeVFVS
…rpose

Part of CND-12.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XxXUiDn2QyzNTYnZpeVFVS
…producer drops

Part of CND-12.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XxXUiDn2QyzNTYnZpeVFVS
Part of CND-12.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XxXUiDn2QyzNTYnZpeVFVS
Part of CND-12.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XxXUiDn2QyzNTYnZpeVFVS
Part of CND-12.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XxXUiDn2QyzNTYnZpeVFVS
@Maxanox
Maxanox merged commit 9347aba into main Oct 10, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant