Skip to content

Define non-spatial phantom rendering, identifier uniqueness, and unsupported-reader behavior#76

Merged
gvonnessi merged 1 commit into
mainfrom
phase6f-phantoms
Jun 28, 2026
Merged

Define non-spatial phantom rendering, identifier uniqueness, and unsupported-reader behavior#76
gvonnessi merged 1 commit into
mainfrom
phase6f-phantoms

Conversation

@gvonnessi

Copy link
Copy Markdown
Collaborator

Summary

  • Non-spatial / accessible rendering (§4.9): a consumer that cannot render the spatial layer (linear/reflow reader, print/PDF export, text extractor, screen reader) SHOULD surface phantom content by its cluster anchor in a stable order rather than silently dropping it, and SHOULD disclose an omission; a non-supporting consumer MUST ignore the layer.
  • Identifier uniqueness (§4.3): cluster ids unique within the file, phantom ids unique within a cluster; a duplicate takes the same disposition as a broken connection target (§4.7); an ambiguous connection target is handled as broken.
  • Unsupported-reader + manifest coupling (§2): a reader without phantoms support MUST ignore the phantoms/ directory and manifest reference (out-of-hash, so never an integrity error; higher data-file version is a WARNING); a present manifest.phantoms SHOULD also be declared in extensions[].

Test plan

  • Prose-only (one README); all gates green, document ids/projections unchanged.
  • The two related findings (anchor contentHash staleness; inverted range) are already covered by phantoms §5.1 and core Anchors §7.3 respectively — verified, no change needed.

…pported-reader behavior

Add a non-spatial and accessible rendering rule: a consumer that cannot render
the spatial layer (a linear or reflow reader, a print or PDF export, a text
extractor, or a screen reader) SHOULD surface phantom content by its cluster
anchor in a stable order rather than silently dropping it, and SHOULD disclose
an omission.

Require cluster and phantom identifiers to be unique (within the file and within
a cluster respectively), give a duplicate the same disposition as a broken
connection target, and treat an ambiguous connection target as broken.

State that a reader without phantoms support MUST ignore the phantom directory
and manifest reference, that ignoring the out-of-hash layer is never an
integrity error, and that a present phantom reference SHOULD also be declared in
the extensions array.
@gvonnessi gvonnessi merged commit d53fcca into main Jun 28, 2026
2 checks passed
@gvonnessi gvonnessi deleted the phase6f-phantoms branch June 28, 2026 21:28
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