aboutsummaryrefslogtreecommitdiff
path: root/test-suite/challenges/21-keyboard-modifiers.html
diff options
context:
space:
mode:
Diffstat (limited to 'test-suite/challenges/21-keyboard-modifiers.html')
-rw-r--r--test-suite/challenges/21-keyboard-modifiers.html7
1 files changed, 5 insertions, 2 deletions
diff --git a/test-suite/challenges/21-keyboard-modifiers.html b/test-suite/challenges/21-keyboard-modifiers.html
index 870bef6..d18d484 100644
--- a/test-suite/challenges/21-keyboard-modifiers.html
+++ b/test-suite/challenges/21-keyboard-modifiers.html
@@ -30,9 +30,12 @@ for (const name of ["keydown","keypress","keyup","input"]) {
});
}
-t.addEventListener("input", () => {
- if (t.value !== "A") return;
+// input fires before keyup. Grade only when Shift is released so a valid chord
+// cannot fail merely because its release events have not happened yet.
+t.addEventListener("keyup", (event) => {
+ if (event.key !== "Shift") return;
const bad = [];
+ if (t.value !== "A") bad.push(`value=${JSON.stringify(t.value)} (need 'A')`);
const downShift = log.find(e => e.name === "keydown" && e.key === "Shift");
const downA = log.find(e => e.name === "keydown" && e.code === "KeyA");
const upShift = log.find(e => e.name === "keyup" && e.key === "Shift");