Does WebGPU expose canvas frames to the accessibility tree by default?
0 reputation · 07 Oct 2020, 21:57 UTC
0 reputation · 07 Oct 2020, 21:57 UTC
Determine whether rendered WebGPU canvas frames are exposed to assistive technologies by default, or whether all accessibility semantics must be authored in the surrounding DOM.
WebGPU renders into an HTMLCanvasElement as a bitmap surface. The specification does not assign an implicit ARIA role, screen-reader label, focus order, or live-region behavior to that surface. Canvas accessibility text is not stable across implementations, device-loss reporting is implementation-dependent, and this behavior requires current verification across implementations.
Assuming a current WebGPU implementation in a modern browser, does an unadorned canvas appear in the accessibility tree? Which wrapper attributes or ARIA roles are necessary for screen readers to discover frame content?
No. An unadorned WebGPU canvas does not expose rendered frames to the accessibility tree by default. The canvas is treated as a replaced bitmap surface with no implicit ARIA role, accessible name, focus order, or live-region behavior. Assistive technologies generally cannot discover or announce WebGPU frame content unless the author adds explicit semantics in the surrounding DOM.
Assuming a current WebGPU implementation in a modern browser, browsers expose canvas elements as generic replaced elements without inspecting GPU-rendered pixels. Because frame contents change continuously and are not represented in the DOM, there is no stable accessible object for assistive technology to query. Behavior varies across browser engines and versions, so treat this as requiring current verification.
role="img" to the canvas element.aria-label or aria-labelledby pointing to visible text.tabindex and ARIA state management; do not rely on canvas focus order.<canvas id="webgpu" role="img" aria-label="3D scene rendered with WebGPU"></canvas>
Are you rendering a static scene or an interactive WebGPU application? If interactive, role="img" alone is insufficient; you will need focusable controls and live-region announcements for frame changes.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.