Tooltip
Interrupting and annotating · researchedA small label that appears on hover or focus to name or briefly explain an element.
atom
Each block is the real component from that system’s own package, in an isolated frame. They are live: hover, focus and press them. Frames are drawn on white so systems compare on one ground, and a font a system licenses only for its own site (GOV.UK’s Transport) falls back to what the system itself specifies.
Ant Design
Tooltip native: no antd 6.6.5- Variants
- —
- Sizes
- —
- States documented
- default, disabled
- Accessibility guidance
- no
Default trigger is hover only; keyboard focus needs trigger to include focus or a ConfigProvider setting. color prop is free-form.
3 corrected on re-read
- builds_on_native: "unread" → "no" rc-tooltip popup is div role=tooltip
- states_documented: ["default"] → ["default","disabled"] A Disabled demo is listed; no state props documented
- a11y_documented: "unread" → "no" Page read in full; no accessibility section or aria guidance
Carbon
Tooltip native: no @carbon/react 1.117.0- Variants
- —
- Sizes
- —
- States documented
- hover, focus
- Accessibility guidance
- yes
Source is a Popover with role=tooltip, not native. Docs also name a definition tooltip variant; Toggletip is a separate component for interactive content.
1 corrected on re-read
- states_documented: [] → ["hover","focus"] usage.mdx States: two states, on (hover and focus) and closed
GOV.UK
Looked at the Components index (design-system.service.gov.uk/components/), the govuk-frontend src/govuk/components directory listing, and the direct URL /components/tooltip/ (404). Details is the nearest disclosure component but is not a tooltip.
Material Web
Not in repo root directories (github.com/material-components/material-web), docs/components/ (button, checkbox, chip, dialog, divider, elevation, fab, focus-ring, icon-button, icon, list, menu, progress, radio, ripple, select, slider, switch, tabs, text-field) or labs/. Roadmap lists Tooltip as an unbuilt component.
Primer
Tooltip native: no @primer/react 38.40.1- Variants
- label, description
- Sizes
- —
- States documented
- —
- Accessibility guidance
- yes
Has type label or description and delay short/medium/long. Source (TooltipV2) uses the popover attribute with a polyfill.
3 corrected on re-read
- builds_on_native: "partly" → "no" Tooltip renders <span> with popover attr (polyfilled) and role=tooltip for description type; no native element
- variants: null → ["label","description"] type prop label|description in source; docs show 'As a label for its trigger'
- a11y_documented: "unread" → "yes" Read /accessibility/: expectations, Keyboard, Pointer device, Screen reader
Spectrum
Tooltip native: no @spectrum-web-components/button 1.12.4USWDS
Tooltip native: partly @uswds/uswds 3.14.0- Variants
- —
- Sizes
- —
- States documented
- —
- Accessibility guidance
- yes
Variants are positions. Progressive enhancement of the title attribute.
1 corrected on re-read
- variants: ["top","bottom","right","left"] → [] Page: 'This component has no variants.' Top/right/bottom/left is the data-position attribute
Platform facts
Anatomy
- trigger — APG roles section: 'The element that triggers the tooltip references the tooltip element with aria-describedby'; keyboard note says 'trigger element'.
- tooltip — APG: the element that serves as the tooltip container has role tooltip.
Keys the APG binds
- EscapeDismisses the Tooltip.
The seven states
| default | Hidden until the trigger is hovered or focused. |
|---|---|
| hover | Pointer over the trigger shows it; not defined in detail by APG. |
| focus | Keyboard focus on the trigger should show it; APG page is a work in progress. |
| active | n/a — A passive element with no pressed state. |
| disabled | n/a — No disabled state of its own; it follows its trigger. |
| error | n/a — Informational text, no value to validate. |
| loading | n/a — Not defined by APG or HTML. |
Every cell was read twice, the second time from raw sources by a separate pass. 8 of 35 fields changed on the second read — open any “corrected” note to see what it said before.