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;
};
Enter fullscreen mode Exit fullscreen mode
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>
Enter fullscreen mode Exit fullscreen mode
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.
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.
Enter fullscreen mode Exit fullscreen mode
Warnings such as tracking loss can use an assertive announcement. Routine geometry updates should not.
Keyboard contract
-
Tabreaches the canvas controls and event list. - Arrow keys move within the selected event group only when that behavior is documented.
-
Enterfocuses the corresponding 3D object. -
Escapereturns 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 IDsLimitations
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?”
답글 남기기