TrademarkTrademark
Docs
Ctrl k
Search docs...
Components

VisuallyHidden

Updated: October 10, 2026
View on GitHub
Soon
Not released yet. This is on main and is not in any published version yet. It will not install today.

VisuallyHidden keeps its content in the accessibility tree and takes it off the screen. Use it for the words a sighted user gets from context and a screen reader user does not: the name of an icon-only control, the text of a status region, what a symbol such as ⌘ stands for.

It uses the clip pattern rather than display: none or visibility: hidden, which hide the content from screen readers as well. The content stays absolutely positioned and clipped to nothing, which also holds inside a transformed or overflow: hidden parent.

Status regions

A live region announces changes without moving focus. The visible interface often already shows the result (a list that filters, a badge that updates), so the announcement itself can be hidden. Render the region once and change its text; a region that mounts with its message is often not announced.

With focusable, the content appears while it, or anything inside it, has keyboard focus, and hides again when focus moves on. Put it first in the page, so the first Tab offers a way past the header and navigation. It stays absolutely positioned when revealed, so it draws over the page instead of pushing the layout down.

API reference

Type
Default
children
What a screen reader announces and a sighted user does not see.
React.ReactNode—
as
The element to render. A span sits inside a line of text; use div for a block, such as a live region.
React.ElementTypespan
focusable
Show the content while it, or anything inside it, has keyboard focus. For skip links.
booleanfalse
className
string—
style
React.CSSProperties—
Edit this page on GitHub
TrademarkTrademark
Built with curiosity by Lorant One and the Design Engineers Club