lingbot-map's 3D Scene Needs an Accessible Event List Beside the Canvas
Shared Scene Model and Two Views
Robbyant/lingbot-map is an Apache-2.0 feed-forward 3D foundation model for reconstructing scenes from streaming data. A browser visualization is a natural way to explore such output. A canvas can show geometry beautifully. It cannot, by itself, give every user a stable reading order, searchable object history, or keyboard path.
The accessible frontend needs one shared scene model and two views. Shared data, not an afterthought transcript:
type SceneEvent = {
id: string;
frame: number;
kind: "camera" | "surface" | "object" | "warning";
label: string;
confidence?: number;
timestampMs: number;
};
Feed this event stream to both the WebGL renderer and a semantic event list. Do not derive accessibility text by scraping pixels after rendering.
Semantic Companion View
<section aria-labelledby="scene-events-title">
<h2 id="scene-events-title">Scene events</h2>
<p id="scene-status" role="status" aria-live="polite"></p>
<ol id="scene-events"></ol>
</section>
Each list item should expose frame number, event type, label, and confidence when confidence changes the user's decision. Selecting an item should focus the corresponding object in the canvas; selecting an object in the canvas should update the list selection.
Throttling Announcements
Do not announce every frame. Streaming reconstruction may produce many events per second. Announcing each one overwhelms assistive technology. Keep the durable list complete, but throttle the live region to meaningful summaries:
Frame 320: two new surfaces mapped; tracking confidence stable.
Warnings such as tracking loss can use an assertive announcement. Routine geometry updates should not.
Keyboard Contract
- Tab reaches the canvas controls and event list.
- Arrow keys move within the selected event group only when that behavior is documented.
- Enter focuses the corresponding 3D object.
- Escape returns to the event list.
- A βPause updatesβ control stops motion and live announcements without discarding history.
- Respect
prefers-reduced-motion. Camera transitions should be instant or substantially reduced when requested.
Failure States
The semantic view must remain useful when WebGL fails, the model stream disconnects, or reconstruction confidence falls below a threshold. Show the last confirmed frame, connection state, and recovery action.
Test Matrix
| Test | Expected evidence |
|---|---|
| Keyboard-only navigation | Every event and control reachable |
| Screen reader | Ordered events with bounded announcements |
| Reduced motion | No animated camera transition |
| WebGL disabled | Event history and status remain visible |
| Reconnect | No duplicate event IDs |
Limitations
I have not evaluated lingbot-mapβs demo with assistive technologies. This is a proposed frontend architecture for streaming 3D evidence, not a claim about the projectβs current accessibility. The repository description and license were checked; implementation details may change.
A 3D model answers βwhere?β The semantic companion view must also answer βwhat changed, in what order, and what can I do next?β
Comments
No comments yet. Start the discussion.