Start with semantics
A scene tree describes visible placement. A semantic tree describes meaning and reading relationships. They often overlap, but a decorative layer should not automatically become an assistive-technology object, and an important relationship should not depend on pixel proximity alone.
Each interactive component should define its role, accessible name, states, properties, relationships, focus behavior and supported input modalities. Document reading order and announcements when they affect understanding.
Names and relationships
An icon-only close control still needs a name such as “Close dialog.” A name can come from visible content, a literal, a reference to another node or a documented derivation. Referenced labels must resolve, and names must be evaluated in the rendered target rather than assumed from the source JSON.
Relationships such as labelled-by, described-by, controls and ownership are semantic links. Adapters must map them using the target platform's accessibility facilities.
Focus is observable behavior
A modal dialog needs a deliberate initial focus target, containment while open, an accessible dismissal mechanism and appropriate focus restoration when it closes. A tabs pattern needs selection and keyboard behavior compatible with its orientation and activation mode. A combobox must preserve editable-text behavior while exposing its popup and active option.
The component catalog records these expectations alongside anatomy and states. Its mappings are informative starting points and still require target-specific verification.
Web mapping
A web adapter should use a native HTML element when it provides the required semantics and behavior, then add valid ARIA only where necessary. Visual Spec's platform-independent contract does not remove the adapter's obligation to obey the target's rules. See WAI-ARIA 1.2 and the informative ARIA Authoring Practices Guide.
Perception and preference
Account for contrast, text scaling, reduced motion and non-color cues. Preserve a meaningful settled state when animation is reduced. Do not announce every frame of a continuous animation. Accessibility conformance requires runtime checks with the actual output; a declared role or a passing JSON Schema check is insufficient.