Concept study · declarative visual binding

Visual Binding Study

Concept study

An expressive visual can stand in for a semantic element without stealing its meaning. Mark the visual with data-field-visual-for and a data-field-visual-role, call platform.visuals.scan(), and the field binds, lints, and inspects the pairing. The text remains real HTML. The SVG is a bound representation. The visual can be expressive, but the semantic source remains inspectable and accessible.

Data honesty

Data source
A real HTML heading (the semantic source of truth) plus one hand-authored SVG bound to it as a representation. The SVG is drawn by hand — not extracted from a font or generated from data.
Snapshot
Static content defined in-page; no external data, no snapshot, no snapshot script.
Live refresh
No live refresh. The platform scans, lints, and inspects the binding once in the browser; the inspector read-out updates live from that scan.
Not claimed
The platform verifies the accessibility contract (a representation must be aria-hidden, bound to a real source). It does not read or interpret the SVG's content — meaning lives in the semantic HTML, not the visual.

Semantic source real HTML

Fields read the page

This <h3 id="vb-source"> is the source of truth. Screen readers and search engines read this, not the SVG.

Bound representation hand-authored SVG

Expressive, but carries no independent meaning — so it is aria-hidden.

Inspector

scan
binding
lint

Toggle aria-hidden off and the lint flips to visual-not-hidden (the representation would double-expose the heading). Break the target and it flips to visual-orphan (a representation must bind a real source).