Telegram: https://t.me/+DOylgFv1jyJlNzM0
Why this matters
The top-up amount field on the stream-detail page is an <input type="number"> with only a placeholder and no associated <label> or aria-label. Placeholder text is not an accessible name, so screen-reader users get an unlabeled number field, and the placeholder disappears once typing starts.
Verified spot
frontend/src/app/streams/[id]/page.tsx, lines ~476-482:
<input
type="number"
placeholder={`Amount in ${tokenSymbol}`}
value={topUpAmount}
onChange={(e) => setTopUpAmount(e.target.value)}
className="..."
/>
Acceptance criteria
Files to touch
frontend/src/app/streams/[id]/page.tsx
Out of scope
Telegram: https://t.me/+DOylgFv1jyJlNzM0
Why this matters
The top-up amount field on the stream-detail page is an
<input type="number">with only aplaceholderand no associated<label>oraria-label. Placeholder text is not an accessible name, so screen-reader users get an unlabeled number field, and the placeholder disappears once typing starts.Verified spot
frontend/src/app/streams/[id]/page.tsx, lines ~476-482:Acceptance criteria
<label htmlFor>oraria-label, e.g. "Top-up amount").Files to touch
frontend/src/app/streams/[id]/page.tsxOut of scope