Explore eight browser capabilities with primary documentation, fallback guidance, and a checklist for your own adoption decision.
Documentation snapshot: September 6, 2026. Follow the current compatibility links before adopting a feature. These notes do not claim a cross-browser test run.
8 of 8 features shown · 0 of 32 checks marked by you
Interface
Native dialog
Present a focused confirmation or short task in a modal window, with browser-managed modality through the dialog element.
Fallback: Provide the task as an ordinary linked page or visible section first. Offer modal presentation after support is detected, while keeping the original route usable.
Check showModal() separately from newer additions such as closedby and invoker commands. This entry does not assume those additions.
Use showModal() when the surrounding page must become inert. Give the dialog an accessible name, a deliberate initial focus target, and an explicit close control.
The open attribute and show() create a non-modal dialog.
Native behavior still needs appropriate labeling, focus choices, and interaction testing.
Reveal brief contextual help or a small control panel above the page while allowing the rest of the page to remain interactive.
Fallback: Keep essential content inline or available through an ordinary link. Hide it behind a popover only when that control is usable; avoid leaving an inert toggle button.
Check the attribute, control button, and any JavaScript methods used. Hint popovers and interest invokers require their own checks.
Let a reusable card or component adapt to the space its parent provides, including narrow sidebars inside wide browser windows.
Fallback: Start with a flexible, readable layout outside @container. Add component refinements inside the query so ignored rules leave all content usable.
This entry covers inline-size queries. Check @container syntax and required values; style, scroll-state, and anchored queries are separate capabilities.
Add visual continuity when a page changes state, such as moving between a compact list and a detailed view.
Fallback: Apply the content update immediately when the API is unavailable or reduced motion is requested. Navigation and state changes should not depend on animation finishing.
Same-document and cross-document transitions have different entry points. A detected startViewTransition() method does not establish cross-document support.
Position contextual content relative to a named element, with CSS options for trying another placement when space is tight.
Fallback: Keep the content in normal document flow, or use a simple existing placement. Put anchor-dependent positioning behind checks for the declarations actually used.
Check anchor-name, position-anchor, placement syntax, and overflow fallback properties individually. The anchor-name table is the first check, not a verdict on the module.
Run a small update when an element's dimensions change, such as redrawing a chart after its surrounding panel resizes.
Fallback: Provide a usable initial rendering and CSS sizing. If needed, offer a manual refresh or limited window-resize update, documenting that it misses other element-size changes.
Check observe() options and the entry-size fields you read. Basic API presence does not guarantee every box measurement is available.
React when content crosses a viewport or scroll-container threshold, such as preparing an optional preview as it approaches view.
Fallback: Render essential content normally. Load optional material directly or provide a usable load button when observation is unavailable; keep pagination available for long lists.
Check the options used. Visibility tracking is a separate capability from basic intersection observation.
Give people immediate feedback on missing or malformed form values using semantic input types and built-in constraints.
Fallback: Keep ordinary form submission and clear server-returned errors working without JavaScript. Validate submitted data on the server even when the browser has already checked it.
Check the actual input types, attributes, and validation methods used. A checkValidity() support result covers only that method.