The browser now handles tooltips natively. The Popover API, shipping with strong cross-browser support as of 2024, lets you wire a tooltip with two HTML attributes: popovertarget on the trigger and popover="manual" plus role="tooltip" on the content element. No JavaScript event listeners. No manual Escape key handling. No ARIA state management.
The article is worth reading for what it documents disappearing from a real codebase, not just what gets added. The author rebuilt a production tooltip using the Popover API and catalogs three specific wins: Tab and Shift+Tab behavior works without keydown handlers, screen reader announcements stabilize because there are no custom ARIA states left to misconfigure, and focus restoration code was removed entirely because the browser returns focus to the trigger on close. Lighthouse stopped flagging ARIA warnings. The complexity did not move somewhere else. It left.
Libraries still make sense for complex design systems or legacy constraints, but the default has shifted. The author's recommendation is surgical: replace one tooltip, not your whole system, and observe what your codebase no longer needs to do. The full source is on GitHub. Browser support details are tracked on Caniuse.
[READ ORIGINAL →]