Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
390777f
spec: Tooltip and HoverCard pin on press; InfoTip is the info preset
cixzhang Oct 31, 2026
09448e2
spec: a tap that already acts stays with its control; own-text trigge…
cixzhang Oct 31, 2026
cdab9e7
spec: a pinning press stops at its trigger
cixzhang Oct 31, 2026
41c1603
spec(InfoTip): ref and BaseProps in FR3; PR1 allows the hit-area watch
cixzhang Oct 31, 2026
557d522
spec: amend FieldLabel FR9 and DEC-1 in place; pinned layers in overl…
cixzhang Oct 31, 2026
1e6d144
spec: FR5's walk is a breaking change for the next minor; StatusDot d…
cixzhang Oct 31, 2026
cb2d45e
spec: FieldLabel migrates in DEP-0016's release; StatusDot inside a c…
cixzhang Oct 31, 2026
8be7857
spec(StatusDot): touch path claims are for a standalone dot; a dot in…
cixzhang Oct 31, 2026
0aff432
spec: StatusDot in a host loses its visible tip on touch; aria-label …
cixzhang Oct 31, 2026
fc392c3
spec: FieldLabel's labelTooltip row and hidden-label InfoTip; StatusD…
cixzhang Oct 31, 2026
5df0ae9
spec: a closing pinned layer gives up Escape (AST-090 FR5); StatusDot…
cixzhang Oct 31, 2026
5d06566
spec: a closing pinned layer leaves the stack (AST-090 FR5 and impact…
cixzhang Oct 31, 2026
d6d9827
spec: DEP-0016's codemod rewrites only observably-equal tap sites; St…
cixzhang Oct 31, 2026
21c42a6
spec: DEP-0016's codemod rewrites only icon and span triggers; own-te…
cixzhang Oct 31, 2026
b67fa3a
spec: CLN-0024 names each remaining tap site's replacement; Builder i…
cixzhang Oct 31, 2026
63115d1
spec: CLN-0024 keeps info-only buttons on the toggle; the minor's cod…
cixzhang Oct 31, 2026
4d77b9f
spec: CLN-0024 drops tap only where the name carries the text, else m…
cixzhang Oct 31, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions docs/architecture/interaction-modality.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,11 @@ work.
tooltip pattern, so content too tall for the viewport scrolls inside it with
no keyboard path; its full content stays available to assistive technology
through the trigger's accessible description, and long or essential content
belongs in a HoverCard or Popover.
belongs in a HoverCard or Popover. A tooltip that labels an action trigger
whose accessible name already carries its text is not a separate
interaction, so a tap on that trigger performs the action and does not open
the tooltip; information that lives only in a hint is reachable on touch
through `pressTrigger="toggle"` (`component:Tooltip` DEC-1).
- **INV5 — Existing state semantics win.** Disabled controls do not become
interactive because of modality. Read-only and busy controls preserve their
documented focus and activation behavior.
Expand Down Expand Up @@ -303,7 +307,7 @@ reachability, newer-intent precedence, and the evidence/scope guard were approve
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| INV1, INV2 | Programmatic-focus cases after keyboard and pointer input in representative component tests | Programmatic focus invents a modality, or pointer history paints the keyboard indicator |
| INV3 | Direct-owner, wrapper-owner, replaceable-indicator, and nested-action cases, including a Token inside an Item and a control inside a card; evidence gap for the shared-module cases: the module does not exist yet | No indicator, two indicators, replacement content that can opt out, or a component that writes the focus-owner attribute or selector itself |
| INV4 | Keyboard, mouse, touch, and pen browser paths where applicable | Hover-only behavior, sticky touch hover, or unreachable action |
| INV4 | Keyboard, mouse, touch, and pen browser paths where applicable; tap cases on an action trigger with a label tooltip and on a hint-only trigger with `pressTrigger="toggle"` | Hover-only behavior, sticky touch hover, unreachable action, a tap on an action trigger that opens its label tooltip, or hint-only information with no touch path |
| INV5 | Disabled, busy, and read-only DOM and activation assertions | Inactive control reacts, eligible control loses focus, or state changes with modality |
| INV6 | Public API review and representative source inspection | A component adds caller-controlled modality without a separate API decision |
| INV7 | Rendered-browser affected-state checks across geometry, clipping, scrolling, hit testing, built-in and custom-renderer paths | At an offered interaction point one modality loses every essential path, or evidence substitutes class equality for reachability/perceptibility |
Expand Down
Loading
Loading