Found during the extends-sweep (PR #802) while documenting withheld props.
Emerald's EmSnackbar withholds v0's urgent prop, and variant only sets data-variant (consumed exclusively by CSS). v0's urgent is what switches role="alert" vs role="status" and routes to the Portal announcer's assertive region — so every Emerald snackbar, including variant="error", renders role="status" and is announced politely. A destructive-failure toast looks urgent and announces like a status update.
Two candidate fixes (both change public surface, hence out of the type-fidelity sweep):
- Expose
urgent (Pick it through) — consumer-controlled, matches v0.
- Derive it from
variant (error → assertive), optionally with urgent as an override.
Option 2 fits Emerald's variant-driven design language; option 1 is the smaller surface promise. The withholding comment added in #802 documents the current behavior either way.
Found during the extends-sweep (PR #802) while documenting withheld props.
Emerald's
EmSnackbarwithholds v0'surgentprop, andvariantonly setsdata-variant(consumed exclusively by CSS). v0'surgentis what switchesrole="alert"vsrole="status"and routes to the Portal announcer's assertive region — so every Emerald snackbar, includingvariant="error", rendersrole="status"and is announced politely. A destructive-failure toast looks urgent and announces like a status update.Two candidate fixes (both change public surface, hence out of the type-fidelity sweep):
urgent(Pick it through) — consumer-controlled, matches v0.variant(error→ assertive), optionally withurgentas an override.Option 2 fits Emerald's variant-driven design language; option 1 is the smaller surface promise. The withholding comment added in #802 documents the current behavior either way.