Accessibility
PageHeader is a visual element that ties route identity together. It does not render a semantic heading on its own—the title is emphasized text, not an h1. That means the surrounding route owns document heading order. PageHeader handles the visual composition, read-only badge integration, and a tidy action cluster; your app supplies the heading, labels for badges and actions, and the focus story around the cluster.
The default titleType is TextType.H3, which selects a typography token (subsection scale), not an HTML heading level by itself.
ReadOnlyBadge wraps Badge with consistent lock iconography and an optional tooltip slot for reason copy.h1 somewhere in the route. The PageHeader title text is emphasis styling, not a semantic heading.ReadOnlyBadge that explains why edits are blocked and which permission would unlock the page.<h1> if no other heading exists on the route.ReadOnlyBadge renders as a status badge; pair with a tooltip so screen reader users hear the reason on focus.<button> via Button / IconButton. Overflow menus use Radix Dropdown Menu semantics through Menu.PageHeader inside the <main> that the shell provides; don't wrap it in a second <main>.h1. Route layouts must supply one to keep the outline order correct and to help screen reader users orient.Callout in addition to the badge.