| ... | @@ -0,0 +1,39 @@ |
| 1 | # Action names agree across presentations |
| 2 | |
| 3 | Proposed invariant: a command's visible label, tooltip, menu wording and accessible |
| 4 | name describe the same action on the same object. An icon-only presentation must |
| 5 | retain that meaning. This applies to shared web/Electron controls and corresponding |
| 6 | React Native iOS/Android actions, wherever those actions are available. |
| 7 | |
| 8 | Separate strings can drift while each presentation still looks plausible. A message |
| 9 | copy action called “Copy link” promises a different clipboard payload to someone |
| 10 | using a screen reader. Use wording that identifies the actual target, including |
| 11 | when a message contains links or structured context. Additional clipboard formats |
| 12 | do not turn copying a message into copying a link. |
| 13 | |
| 14 | This proposal draws on Apple's [Writing](https://developer.apple.com/design/human-interface-guidelines/writing) |
| 15 | and [Accessibility](https://developer.apple.com/design/human-interface-guidelines/accessibility) |
| 16 | guidance. It is a product constraint, not a claim of Apple certification or complete |
| 17 | application compliance. |
| 18 | |
| 19 | ## Boundaries |
| 20 | |
| 21 | Native menus and assistive technologies may use different wording or omit a tooltip. |
| 22 | Labels need semantic agreement, not identical strings across platforms. A contextual |
| 23 | “Copy” is sufficient when its target is unambiguous; do not globally expand it. |
| 24 | Temporary “Copied” feedback may replace an action label without implying a different |
| 25 | target. Clipboard transport, success timing and error reporting are separate concerns. |
| 26 | |
| 27 | ## Observable cases |
| 28 | |
| 29 | - User and assistant message copy controls identify the message, in both tooltip |
| 30 | and accessible name. Collapsing a long message does not change the action's meaning. |
| 31 | - Copying a message with structured context still identifies the message; it does |
| 32 | not promise to copy only a context link. |
| 33 | - Code and plan copy actions retain their own targets. A contextual plan menu can |
| 34 | say “Copy to clipboard”; a code control must not be announced as copying a message. |
| 35 | - An icon, labeled button or native menu for an equivalent command conveys the same |
| 36 | operation. Completed feedback never names a different object. |
| 37 | |
| 38 | Verify visible wording alongside the runtime accessible name and resulting action. |
| 39 | Source inspection and screenshots alone do not establish accessibility-tree behavior. |