mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-03 04:38:33 +00:00
fix(studio): drop aria-modal from the non-modal shortcuts popup
The panel does not trap focus and leaves the rest of the editor operable, so aria-modal would tell assistive tech the whole app is inert while it is open. role=dialog plus aria-controls and Escape is the correct non-modal disclosure shape.
This commit is contained in:
@@ -150,7 +150,9 @@ describe("ShortcutsPanel", () => {
|
||||
|
||||
expect(panelId).not.toBeNull();
|
||||
expect(panel?.getAttribute("role")).toBe("dialog");
|
||||
expect(panel?.getAttribute("aria-modal")).toBe("true");
|
||||
// Non-modal on purpose: focus is not trapped and the editor behind stays
|
||||
// operable, so aria-modal would lie to assistive tech about inertness.
|
||||
expect(panel?.getAttribute("aria-modal")).toBeNull();
|
||||
expect(panel?.id).toBe(panelId);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -170,7 +170,9 @@ export const ShortcutsPanel = memo(function ShortcutsPanel({
|
||||
<div
|
||||
id={shortcutsPanelId}
|
||||
role="dialog"
|
||||
aria-modal="true"
|
||||
// Deliberately NOT aria-modal. This is a non-modal disclosure: focus is
|
||||
// not trapped and the rest of the editor stays operable, so claiming
|
||||
// modality would make assistive tech treat the whole app as inert.
|
||||
className="absolute bottom-full right-0 mb-2 z-50 rounded-lg shadow-xl min-w-[220px] overflow-y-auto"
|
||||
style={{
|
||||
background: "#161618",
|
||||
|
||||
Reference in New Issue
Block a user