From c375f30713adde011d337aec19d6ba1063cf1f0e Mon Sep 17 00:00:00 2001 From: sakinu Date: Fri, 2 Oct 2026 22:47:17 +0800 Subject: [PATCH] Name the yield shortcut the way a Mac prints it Apple keyboards label the modifier option, not alt, so "Alt+Enter" on the Your turn is done button and in the turn status line names a key a candidate on a Mac cannot find. The chord itself already works there, since Option sets altKey, so only the label was missing a reader. The Run tests button already names both platforms' chords, and this follows it, spelled as a word so that both halves of the hint read alike. --- tests/browser/turn-taking.test.js | 13 +++++++------ web/interview.html | 6 +++--- web/interview.js | 2 +- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/tests/browser/turn-taking.test.js b/tests/browser/turn-taking.test.js index 357d95d6..1ba1e99a 100644 --- a/tests/browser/turn-taking.test.js +++ b/tests/browser/turn-taking.test.js @@ -277,10 +277,11 @@ test("the page names the yield control and its shortcut the way the handler read button.indexOf(""), ); assert.equal(label.trim(), "Your turn is done"); - assert.match( - button.slice(0, button.indexOf(">")), - /aria-keyshortcuts="Alt\+Enter"/, - ); + const attributes = button.slice(0, button.indexOf(">")); + assert.match(attributes, /aria-keyshortcuts="Alt\+Enter"/); + // Apple keyboards print the modifier as option, not alt, so the tooltip + // has to name both spellings or the hint points at no key on a Mac. + assert.match(attributes, /title="Alt\+Enter \/ Option\+Enter"/); const ring = html.slice(html.indexOf('id="turn-ring"')); assert.match( ring.slice(0, ring.indexOf(">")), @@ -290,7 +291,7 @@ test("the page names the yield control and its shortcut the way the handler read const copy = status .slice(status.indexOf(">") + 1, status.indexOf("

")) .replace(/\s+/g, " "); - assert.match(copy, /Your turn is done \(Alt\+Enter\)/); + assert.match(copy, /Your turn is done \(Alt\+Enter \/ Option\+Enter\)/); // The shortcut the copy names is the one the handler takes. const editor = { tagName: "TEXTAREA" }; assert.equal( @@ -303,6 +304,6 @@ test("the page names the yield control and its shortcut the way the handler read // The status line the page restores after a hold says the same. assert.match( read("web/interview.js"), - /Choose Your turn is done \(Alt\+Enter\) to let Jim reply early\./, + /Choose Your turn is done \(Alt\+Enter \/ Option\+Enter\) to let Jim reply early\./, ); }); diff --git a/web/interview.html b/web/interview.html index fb7ecaa9..7611edc4 100644 --- a/web/interview.html +++ b/web/interview.html @@ -61,7 +61,7 @@

Loading interview...

id="yield-turn" class="pill-button" type="button" - title="Alt+Enter" + title="Alt+Enter / Option+Enter" aria-keyshortcuts="Alt+Enter" > Your turn is done @@ -467,8 +467,8 @@

Media preflight

hidden >

- Take your time. Choose Your turn is done (Alt+Enter) to let Jim - reply early. + Take your time. Choose Your turn is done (Alt+Enter / Option+Enter) + to let Jim reply early.