Dialog canon drift: destructive confirms use the askConfirm prose blob with "OK"; name dialog primary is "OK"; several dialogs lack .dlgactions / h2; licdlg order + "License"/"licence" #693

Closed
opened 2026-09-23 10:30:05 +00:00 by Cordy · 1 comment
Owner

Found by the #656 QA pass, §3 UI consistency audit (v0.6.247, files). I statically inventoried all 30 <dialog> elements in the live DOM and opened the common ones.

Style guide, Dialogs (canon): "destructive confirms use fact rows (icon + sentence with bold pluralised counts and mono paths …), never an askConfirm prose blob"; the footer has "Cancel before the primary or danger verb, the verb naming its object"; "askConfirm stays only for trivial yes/no questions with no facts to state".

1. Destructive actions through #confirmdlg (askConfirm), primary "OK":

  • Delete file: "Delete qa-large-110MB.bin? · Cancel · OK". It has no title (#confirmdlg has no h2/h3), no fact rows (no size, no "goes to Deleted files, recoverable for N days"), and the verb is OK instead of "Delete file".
  • Revoke public link (Shares view): "Revoke the share for /home/nikola-test/_qa/qa-note.md? The link stops working immediately. · OK". The path is in the storage form and not mono, and the verb is OK instead of "Revoke link".
  • By contrast, spacedeldlg, ownrevdlg and ludeldlg follow the canon.

2. #namedlg (New folder / New file / Rename) primary is "OK" where it should say "Create folder" / "Create file" / "Rename". Its input focus ring is the UA default (outline: rgb(16,16,16) auto) rather than an accent ring. The same dialog titled "New folder" is also what the Spaces view uses to create a space.

3. Structure outliers (not in the documented exceptions, which are #spselfdlg and dialog.ocmdlg):

  • #pickdlg (Move/Copy picker): no .dlgactions band, and "+ New folder here" sits among the actions.
  • #peeraddlg (Add a peer): no .dlgactions, and three buttons with Close last.
  • #peerdetaildlg: no .dlgactions and no h2/h3 title.
  • #spcdetaildlg: no .dlgactions.

4. #licdlg: the title is "License" (US spelling) while its own primary is "Refresh licence" and the admin page is "Licensing/licence". Close comes after the primary, where the canon puts Cancel/Close first.

5. Possibly dead legacy dialogs still in the DOM: #settingsdlg ("Settings" with Audit log / Legal holds / Save), #auditdlg, #holdsdlg and #peerdlg ("Instance peering", Save with no Cancel) duplicate the admin pages. If they are unreachable, they are dead weight. If they are reachable, they are a second, older idiom ("New surfaces choose one idiom, never a mix").

Screenshots: 693-askconfirm-delete.jpg, 693-namedlg-ok.jpg

Found by the #656 QA pass, §3 UI consistency audit (v0.6.247, files). I statically inventoried all 30 `<dialog>` elements in the live DOM and opened the common ones. **Style guide, Dialogs (canon):** "destructive confirms use fact rows (icon + sentence with bold pluralised counts and mono paths …), never an `askConfirm` prose blob"; the footer has "Cancel before the primary or danger verb, the verb naming its object"; "`askConfirm` stays only for trivial yes/no questions with no facts to state". **1. Destructive actions through `#confirmdlg` (askConfirm), primary "OK":** - **Delete file**: "Delete qa-large-110MB.bin? · Cancel · **OK**". It has no title (`#confirmdlg` has no h2/h3), no fact rows (no size, no "goes to Deleted files, recoverable for N days"), and the verb is OK instead of "Delete file". - **Revoke public link** (Shares view): "Revoke the share for /home/nikola-test/_qa/qa-note.md? The link stops working immediately. · **OK**". The path is in the storage form and not mono, and the verb is OK instead of "Revoke link". - By contrast, `spacedeldlg`, `ownrevdlg` and `ludeldlg` follow the canon. **2. `#namedlg` (New folder / New file / Rename) primary is "OK"** where it should say "Create folder" / "Create file" / "Rename". Its input focus ring is the UA default (`outline: rgb(16,16,16) auto`) rather than an accent ring. The same dialog titled "New folder" is also what the Spaces view uses to create a *space*. **3. Structure outliers** (not in the documented exceptions, which are `#spselfdlg` and `dialog.ocmdlg`): - `#pickdlg` (Move/Copy picker): no `.dlgactions` band, and "+ New folder here" sits among the actions. - `#peeraddlg` (Add a peer): no `.dlgactions`, and three buttons with Close last. - `#peerdetaildlg`: no `.dlgactions` and **no h2/h3 title**. - `#spcdetaildlg`: no `.dlgactions`. **4. `#licdlg`:** the title is "**License**" (US spelling) while its own primary is "Refresh **licence**" and the admin page is "Licensing/licence". Close comes *after* the primary, where the canon puts Cancel/Close first. **5. Possibly dead legacy dialogs still in the DOM:** `#settingsdlg` ("Settings" with Audit log / Legal holds / Save), `#auditdlg`, `#holdsdlg` and `#peerdlg` ("Instance peering", Save with no Cancel) duplicate the admin pages. If they are unreachable, they are dead weight. If they are reachable, they are a second, older idiom ("New surfaces choose one idiom, never a mix"). **Screenshots:** `693-askconfirm-delete.jpg`, `693-namedlg-ok.jpg`
Author
Owner

Two more askConfirm copy bugs, seen during #656 cleanup:

  • Batch delete (select row → toolbar Delete) confirms with "Delete 1 ×?". The count label is taken from the selection bar including its "×" clear glyph. It should say "Delete 1 item (/_qa, 9 items inside)?" with fact rows, and the verb "Delete".
  • Revoking a group grant from the Shares view says "Revoke the share for /home/nikola-test/_qa/drop? The link stops working immediately." This is a group grant, and there is no link. The confirm reuses the public-link wording for every share kind.
Two more askConfirm copy bugs, seen during #656 cleanup: - **Batch delete** (select row → toolbar Delete) confirms with "**Delete 1 ×?**". The count label is taken from the selection bar *including its "×" clear glyph*. It should say "Delete 1 item (/_qa, 9 items inside)?" with fact rows, and the verb "Delete". - **Revoking a group grant** from the Shares view says "Revoke the share for /home/nikola-test/_qa/drop? **The link stops working immediately.**" This is a group grant, and there is no link. The confirm reuses the public-link wording for every share kind.
Cordy closed this issue 2026-09-23 22:58:44 +00:00
Sign in to join this conversation.
No labels
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Cordy/Cairn#693
No description provided.