DEV: Listen for escape key on hamburger & user menu (#18629)

This commit is contained in:
Keegan George 2022-10-17 18:36:18 -07:00 committed by GitHub
parent dd6d26847f
commit 4907b7fa1d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 1 deletions

View File

@ -400,4 +400,12 @@ export default createWidget("hamburger-menu", {
this.sendWidgetAction("toggleHamburger");
}
},
keyDown(e) {
if (e.key === "Escape") {
this.sendWidgetAction("toggleHamburger");
e.preventDefault();
return false;
}
},
});

View File

@ -313,6 +313,14 @@ export default createWidget("user-menu", {
}
},
keyDown(e) {
if (e.key === "Escape") {
this.sendWidgetAction("toggleUserMenu");
e.preventDefault();
return false;
}
},
quickAccess(type) {
if (this.state.currentQuickAccess !== type) {
this.state.currentQuickAccess = type;

View File

@ -1,9 +1,10 @@
import {
acceptance,
exists,
query,
updateCurrentUser,
} from "discourse/tests/helpers/qunit-helpers";
import { click, visit } from "@ember/test-helpers";
import { click, triggerKeyEvent, visit } from "@ember/test-helpers";
import { test } from "qunit";
acceptance(
@ -26,3 +27,12 @@ acceptance(
});
}
);
acceptance("Hamburger Menu accessibility", function () {
test("Escape key closes hamburger menu", async function (assert) {
await visit("/");
await click("#toggle-hamburger-menu");
await triggerKeyEvent(".hamburger-panel", "keydown", "Escape");
assert.ok(!exists(".hamburger-panel"), "Esc closes the hamburger panel");
});
});