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.