The report's right-click menu: today and proposed

Each row is something you can right-click in the Mac app. Today every report link offers WebKit's generic link menu, and its Open Link in New Window lands in the video player's window. Proposed (docs/design-webview-context-menu.md §9, 24 Oct 2026): the first item is what a single click does, then the same in a new window, then the other useful action. A blue timecode plays and a speaker badge shows the transcript, so every moment offers both the recording and the transcript. Labels say exactly what happens. Reload Report stays on page menus only, as Safari does.

Artefact: shipped CSS and markup, synthetic content; menus approximate macOS 26Commentary

1Quotes — card timecode

Blue [12:34]. A click plays the recording at that moment.

Today — WebKit's default

Delivery costs

[12:34]
“I wanted to see the delivery cost before I typed my card number, not after.” p3Dana
frustration
[05:01]
“Free delivery over thirty pounds, fine, but tell me on the basket.” p5Sam
Open Link
Open Link in New Window
Download Linked File
Copy Link

Share…

Reload Report
Proposed

Delivery costs

[12:34]
“I wanted to see the delivery cost before I typed my card number, not after.” p3Dana
frustration
[05:01]
“Free delivery over thirty pounds, fine, but tell me on the basket.” p5Sam
Play

Show in Transcript
Open Transcript in New Window
CommentaryToday Open Link in New Window opens the Quotes lens at the top, in the Video Player window, and closes any playing clip. Proposed the click first (D10: a blue timecode plays), then the transcript at the moment, here or parked in a new window; that window starts playing in its own player (D1). Same menu on every blue timecode that plays: Discussion and Screens cards, the dashboard, the Screens version time.

2Quotes — speaker badge

<a href="/report/sessions/s3#t-754">. A click shows Dana's transcript at 12:34.

Today — WebKit's default

Delivery costs

[12:34]
“I wanted to see the delivery cost before I typed my card number, not after.” p3Dana
frustration
[05:01]
“Free delivery over thirty pounds, fine, but tell me on the basket.” p5Sam
Open Link
Open Link in New Window
Download Linked File
Copy Link

Share…

Reload Report
Proposed

Delivery costs

[12:34]
“I wanted to see the delivery cost before I typed my card number, not after.” p3Dana
frustration
[05:01]
“Free delivery over thirty pounds, fine, but tell me on the basket.” p5Sam
Show in Transcript
Open Transcript in New Window
CommentaryProposed the badge is that person and their whole conversation, at the moment (D10, D11). No Play on a person: the timecode beside it plays. Same on the Discussion moderator badge.

3Quotes — the card itself

Right-click the quote text, not a link (D12).

Today — WebKit's default

Delivery costs

[12:34]
“I wanted to see the delivery cost before I typed my card number, not after.” p3Dana
frustration
[05:01]
“Free delivery over thirty pounds, fine, but tell me on the basket.” p5Sam
Back
Reload Report
Proposed

Delivery costs

[12:34]
“I wanted to see the delivery cost before I typed my card number, not after.” p3Dana
frustration
[05:01]
“Free delivery over thirty pounds, fine, but tell me on the basket.” p5Sam
Star
Hide
Add Tag…

Show in Transcript
Open Transcript in New Window

Copy Quote
CommentaryToday the page menu. Proposed the card's own commands, the ones the Quotes menu already holds, as Mail's message menu does. A card click selects rather than acts, so there is no lead item. Star reads Unstar on a starred card; with several cards selected the menu acts on the selection, as the Quotes menu does (Star 3 Quotes).

4Transcript — paragraph timecode

Blue [12:34] on Dana's transcript. A click plays.

Today — WebKit's default
[12:21] m1Alex
And what were you looking for at that point?
[12:34] p3Dana
I wanted to see the delivery cost before I typed my card number, not after. That's when I'd normally bail.
[12:59] m1Alex
So you'd have left there?
Open Link
Open Link in New Window
Download Linked File
Copy Link

Share…

Reload Report
Proposed
[12:21] m1Alex
And what were you looking for at that point?
[12:34] p3Dana
I wanted to see the delivery cost before I typed my card number, not after. That's when I'd normally bail.
[12:59] m1Alex
So you'd have left there?
Play

Open Transcript in New Window
CommentaryShow in Transcript is left out: you are in it. The new window is a second view of this transcript at 12:34, playing in its own player.

5Sessions — #N

<a href="/report/sessions/s3">. A click opens the session's transcript.

Today — WebKit's default
p3Dana
m1Alex
14 Oct 10:02
p4Lee
m1Alex
14 Oct 10:02
Open Link
Open Link in New Window
Download Linked File
Copy Link

Share…

Reload Report
Proposed
p3Dana
m1Alex
14 Oct 10:02
p4Lee
m1Alex
14 Oct 10:02
Open Transcript
Open Transcript in New Window

Play
CommentaryOpen, not Show: the click opens the session's transcript itself, at the top (D4). Play is the recording from the start.

6Sessions — thumbnail

<img src="/report/assets/thumbnails/s3.jpg">. A click plays from 0:00.

Today — WebKit's default
p3Dana
m1Alex
14 Oct 10:02
p4Lee
m1Alex
14 Oct 10:02
Open Image in New Window
Download Image
Copy Image
Copy Subject
Look Up

Share…

Reload Report
Proposed
p3Dana
m1Alex
14 Oct 10:02
p4Lee
m1Alex
14 Oct 10:02
Play

Open Transcript
Open Transcript in New Window

Copy Image
Copy Subject
Look Up
Share…
CommentaryToday Open Image in New Window replaces the playing clip with the bare JPEG; Download Image does nothing. Proposed the filename's menu, then the image items. Copy Subject and Look Up stay for now (D2); the review would drop them here, where they are WebKit's leftovers, which leaves Copy Image · Share….

7Signals — expanded-quote timecode

Blue [12:34]. Today a click shows the transcript (the report reloads).

Today — WebKit's default
frustration · 4 quotes
[12:34] I wanted to see the delivery cost before I typed my card number. p3Dana
Open Link
Open Link in New Window
Download Linked File
Copy Link

Share…

Reload Report
Proposed
frustration · 4 quotes
[12:34] I wanted to see the delivery cost before I typed my card number. p3Dana
Play

Show in Transcript
Open Transcript in New Window
CommentaryRecommended, awaiting the owner. The timecode plays, as every blue timecode does (D10), and the card's badge becomes the transcript link it is on a quote card (§9.3). Same for the Codebooks threshold-review timecode, which also drops its target=_blank.

8Signals — location heading

<a href="#section-delivery-costs">. A click shows the section in Quotes.

Today — WebKit's default
frustration
trust
Open Link
Open Link in New Window
Download Linked File
Copy Link

Share…

Reload Report
Proposed
frustration
trust
Show in Quotes
Open Quotes in New Window
CommentaryToday the player window opens on Signals, since the href names the wrong lens. Proposed the place comes from the component, not the href (§4.2). Same on the dashboard's section links and the stat cards that name a section.

9Codebooks — author link

External https:// from the codebook's YAML.

Today — WebKit's default
Jesse James Garrett
Author of The Elements of User Experience, which divides a product into five planes from strategy to surface.
Open Link
Open Link in New Window
Download Linked File
Copy Link

Share…

Reload Report
Proposed
Jesse James Garrett
Author of The Elements of User Experience, which divides a product into five planes from strategy to surface.
Open Link
Copy Link

Share…
CommentaryAs Safari, minus two: no Open Link in New Window (the click already goes to the browser; the item would open the page inside a Bristlenose window) and no Download Linked File (it does nothing). No Reload Report on a link (D6).

10Codebooks — navigator row

<a href="#">, a JS action, not a place.

Today — WebKit's default
Open Link
Open Link in New Window
Download Linked File
Copy Link

Share…

Reload Report
CommentaryNot a link to anything, so the page menu (D3, D6). Same for the hidden-quotes counter and the Sessions header's Reveal link.

11Screens — screengrab

<img src="data:image/jpeg…">

Today — WebKit's default
[12:34] “Tell me on the basket.”
Open Image in New Window
Download Image
Copy Image
Copy Subject
Look Up

Share…

Reload Report
Proposed
[12:34] “Tell me on the basket.”
Copy Image
Copy Subject
Look Up

Share…
CommentaryToday Open Image in New Window does nothing (the data: scheme is refused) and Download does nothing. A screengrab has no click action, so no lead item. On a custom board the Screens lens puts Tidy above these.

12Popout player — video

<video> in the player window, playing.

Today — WebKit's default
▶︎12:34 / 41:07
Open Video in New Window
Download Video
Copy Video Address

Hide Controls
Enter Full Screen
Enter Picture in Picture

Pause
Mute
Loop
Proposed
▶︎12:34 / 41:07
Pause
Mute

Enter Full Screen
Enter Picture in Picture

Hide Controls
CommentaryWebKit's media items here are its usual set, not measured in the probe. Proposed the click action first (Pause while playing, Play while paused), as QuickTime; Open, Download and Copy Video go (they do nothing or hand out a loopback address). Video ▸ Fullscreen in the menu bar becomes Enter Full Screen to match (D9).

What the new window opens

From row 1: right-click the timecode on Dana's quote, then today's Open Link in New Window against the proposed Open Transcript in New Window.

Today
Video Player
[12:21] m1Alex
And what were you looking for at that point?
[12:34] p3Dana
I wanted to see the delivery cost before I typed my card number, not after. That's when I'd normally bail.
[12:59] m1Alex
So you'd have left there?
Proposed
Checkout study — Sessions
Checkout study
Project
Sessions
Quotes
Codebooks
Signals
◀︎ ▶︎Session 3 · Dana
[12:21] m1Alex
And what were you looking for at that point?
[12:34] p3Dana
I wanted to see the delivery cost before I typed my card number, not after. That's when I'd normally bail.
[12:59] m1Alex
So you'd have left there?
Video Player
❚❚12:34
CommentaryToday the player's own 720×480 window, titled Video Player, holds the report with no toolbar, sidebar or lens rail; any playing clip closes; and, from reading the code, its route changes reach the main window's bridge (doc §2, a hand check owed). Proposed WindowSeed.fresh(project:, lens: sessions, place: .session("s3", 754)): a full window on the same project, the transcript scrolled to 12:34 and the paragraph highlighted as a deep link already does, playing in that window's own player (D1; one player per window, measured from code). The window chrome here is an approximation; the transcript inside it is the shipped CSS.

String plan

LabelSource
Play · Pause · Muteexisting, menu.video.*
Star · Hide · Add Tag…existing, menu.quotes.*
Reload Reportexisting, menu.view.reloadReport
Show in Transcriptvalue change of menu.quotes.revealInTranscript ("Reveal in Transcript"), 21 locales; the menu bar takes it too (D9)
Enter Full Screen / Exit Full Screenvalue change of menu.video.fullscreen ("Fullscreen") plus one new key, menu bar (D9)
Open Transcript · Open Transcript in New Window · Show in Quotes · Open Quotes in New Window · Copy Quotenew, owner-written, 21 locales; Open Transcript in New Window is also the menu bar's Option-alternate of Show in Transcript (D9)
Open Link · Copy Link · Share… · Copy Image · Copy Subject · Look Up · Back · Hide Controls · Enter Picture in PictureWebKit's own items, kept as WebKit localises them