lingbot-map's 3D Scene Needs an Accessible Event List Beside the Canvas

작성자

카테고리:

← 피드로
DEV Community · babycat · 2026-07-22 개발(SW)

babycat

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

  • 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?”

원문에서 계속 ↗

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다