You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Remix's RemixButton / RemixIconButton previously wrapped NakedButton in their own Semantics(liveRegion: loading, ...) node so screen readers announced entering the loading state. The visual-only-over-Naked pass removed that wrapper — correctly, because it republished the accessible name on a second node — but NakedButton offers no replacement, so entering loading is now silent.
What's needed
A way for a consumer to mark the button's own Semantics node as a live region (or otherwise announce a state change) without wrapping it in a second node. Options:
Problem
Remix's
RemixButton/RemixIconButtonpreviously wrappedNakedButtonin their ownSemantics(liveRegion: loading, ...)node so screen readers announced entering the loading state. The visual-only-over-Naked pass removed that wrapper — correctly, because it republished the accessible name on a second node — butNakedButtonoffers no replacement, so entering loading is now silent.What's needed
A way for a consumer to mark the button's own Semantics node as a live region (or otherwise announce a state change) without wrapping it in a second node. Options:
NakedButton.semanticLiveRegion: boolforwarded to the existing single Semantics node (simplest; mirrorssemanticHintfrom feat: add semantic adapter APIs for visual-layer consumers #91).Context
naked_button_semantics_test.dart("exactly one button node"); any fix must keep that invariant.1.0.0-beta.4documents the lost announcement as a BREAKING change pending this API.