Found by the docs-verification sweep (PR #808's page expansion) while auditing EmProgress accessibility claims against source.
Flipping indeterminate on a bar with committed progress runs Emerald's indeterminate sweep animation while v0 keeps data-state="determinate" and the stale aria-valuenow — visually indeterminate, semantically still reporting a fixed value to AT.
Cause: packages/emerald/src/components/EmProgress/EmProgress.vue:59 withholds the model, and apply([]) never clears the registered segment (packages/0/src/composables/createProgress/index.ts:152-165).
Candidate fixes: the component zeroes/clears its segment when entering indeterminate, or v0's Progress.Root accepts an explicit indeterminate input that owns the aria switch. Related smaller item: the source comment at EmProgress.vue:42-43 ('ProgressRoot always emits aria-labelledby') is stale — ProgressRoot.vue:144 gates it on hasLabel.
Found by the docs-verification sweep (PR #808's page expansion) while auditing EmProgress accessibility claims against source.
Flipping
indeterminateon a bar with committed progress runs Emerald's indeterminate sweep animation while v0 keepsdata-state="determinate"and the stalearia-valuenow— visually indeterminate, semantically still reporting a fixed value to AT.Cause:
packages/emerald/src/components/EmProgress/EmProgress.vue:59withholds the model, andapply([])never clears the registered segment (packages/0/src/composables/createProgress/index.ts:152-165).Candidate fixes: the component zeroes/clears its segment when entering indeterminate, or v0's
Progress.Rootaccepts an explicit indeterminate input that owns the aria switch. Related smaller item: the source comment atEmProgress.vue:42-43('ProgressRoot always emits aria-labelledby') is stale —ProgressRoot.vue:144gates it onhasLabel.