Platform experiments
Emerging browser features are tried in isolated Lab fixtures behind a feature test. The native baseline stays the contract, and a supported result in one browser never promotes a feature on its own.
Content-sized form fields
Decision: lab-only. Intrinsic sizing helps short single-line values but reaches its maximum quickly in narrow containers. Stable inputs, textareas, selects, and combobox inputs stay tokenized; a later opt-in recipe may cover content-sized search fields.
- Feature gate
@supports (field-sizing: content)- Baseline
- Tokenized controls stay full-width with a tokenized minimum block size.
- Evidence
- Fixture · Browser test · Issue #202
- Still missing
- Interaction with input groups, responsive grids, and validation layouts in real products.
- Named human sessions with browser, OS, and assistive technology, including a real OS high-contrast session.
- References
Native focusgroup navigation
Decision: lab-only, no opt-in. focusgroup can replace directional focus movement but not selection, expansion, panel visibility, active descendants, or morph state. It is not added to tabs, menubar, or combobox.
- Feature gate
A trusted-key probe moves focus through a temporary focusgroup="toolbar" with Arrow Right, Home, and End.- Baseline
- enhanceTabs() and enhanceMenubars() keep one tab stop, arrow-key movement, selection, and focus restoration.
- Evidence
- Fixture · Browser test · Issue #199
- Still missing
- Stable cross-browser support outside experimental flags.
- Native-state and lifecycle verification with the shared behaviors.
- Named human sessions with browser, OS, and assistive technology, including a real OS high-contrast session.
- References
Anchored container queries
Decision: lab-only, no opt-in. Useful for decorative awareness of which fallback position applied, but an emerging draft with incomplete cross-engine evidence. container-type: anchored stays out of layouts.css and the public API.
- Feature gate
@supports (container-type: anchored)- Baseline
- The data-anchored recipe with position-try fallbacks and an in-flow fallback.
- Evidence
- Fixture · Browser test · Issue #205
- Still missing
- Cross-engine support for anchored container queries.
- Touch and mobile behavior.
- Named human sessions with browser, OS, and assistive technology, including a real OS high-contrast session.
- References
Animated ::details-content
Decision: lab-only. The open and close animation is presentation only and never duplicates native state with ARIA. Stable disclosure styles do not include it.
- Feature gate
@supports selector(details::details-content), then (interpolate-size: allow-keywords), then (transition-behavior: allow-discrete) and (content-visibility: hidden)- Baseline
- Native <details> and <summary>: authored open state, keyboard toggling, fragment targets, and print output.
- Evidence
- Fixture · Browser test · Issue #203
- Still missing
- Cross-engine support for interpolate-size.
- Named human sessions with browser, OS, and assistive technology, including a real OS high-contrast session.
- References
Scroll-state queries and CSS carousels
Decision: lab-only. Scroll-state queries may emphasise the snapped item and edge affordances as optional presentation. Generated scroll buttons and markers are not adopted; the Reel and carousel contracts are unchanged.
- Feature gate
@supports (container-type: scroll-state)- Baseline
- The Reel layout: an authored list, ordinary links, native scrolling, scroll snapping, and visible focus.
- Evidence
- Fixture · Browser test · Issue #204
- Still missing
- Cross-engine support for scroll-state queries and ::scroll-button.
- Named human sessions with browser, OS, and assistive technology, including a real OS high-contrast session.
- References
Customizable native select
Decision: lab-only. A single-value select may opt into appearance: base-select behind the gate. multiple, size, and optgroup stay native-only, and searchable-select remains the model for server filtering and multiple values.
- Feature gate
@supports (appearance: base-select) and selector(::picker(select))- Baseline
- The browser-owned <select>: options, groups, keyboard and pointer use, submission, reset, and validation.
- Evidence
- Fixture · Browser test · Issue #200
- Still missing
- Operating-system picker and assistive-technology announcements.
- Named human sessions with browser, OS, and assistive technology, including a real OS high-contrast session.
- References