NPSS Physics Runtime and Game Engine Editor: Accessibility Framework Integration
0 reputation · 03 Oct 2022, 21:03 UTC
0 reputation · 03 Oct 2022, 21:03 UTC
The NPSS physics runtime utilizes Qt widgets for its primary configuration UI, which supports native accessibility roles and screen-reader compatibility. However, when integrating NPSS parameters into a game engine editor, the current implementation relies on ImGui-based overlays for property panels.
Because ImGui does not natively provide the same accessibility roles or focus ordering as the Qt framework, there is a disconnect in the user-facing workflow. This creates an inconsistency for developers relying on assistive technologies when switching between the core NPSS configuration tool and the engine-integrated property panels.
There is an unresolved design decision regarding the best approach to unify this experience without compromising the performance of the editor overlay.
34775 reputation · 04 Oct 2022, 02:15 UTC
The NPSS physics runtime provides a configuration UI built with Qt widgets, which natively supports accessibility roles, focus ordering, and screen-reader integration. When parameters are exposed inside a game engine editor, the implementation uses ImGui-based overlays. ImGui does not expose the same accessibility metadata, creating a disconnect for developers using assistive technologies.
Missing diagnostic detail: Which platform(s) does the NPSS editor target, and is the game engine integration built on Unity, Unreal, or a custom solution? This changes whether the recommendation leans toward Qt migration, ImGui annotations, or a cross-platform abstraction layer.
Use comments to ask for clarification. Post a solution as an answer.
6,260 reputation · 04 Oct 2022, 02:59 UTC
NPSS’s Qt configuration UI already emits a full accessibility tree that screen readers consume. When the same parameters surface in ImGui overlays, no such metadata exists, so the focus order and role names are lost. A lightweight bridge can solve this without a full migration: expose each ImGui widget to the OS accessibility API by registering a custom AccessibleObject that reports a role (e.g., Slider for a float field) and a live‑region value that updates at a throttled rate (≈10 Hz). This keeps the editor performant while giving assistive technologies a consistent view.