Skip to content

Commit 41b67e4

Browse files
authored
Merge pull request #702 from Joel234-png/i18n-copy-modules-a11y-notifications-batch-682-686
i18n copy extraction, notification a11y, batch progress announcements (#682-#686)
2 parents 7bd6823 + 7215700 commit 41b67e4

6 files changed

Lines changed: 654 additions & 224 deletions

File tree

app/app/create/batch/page.tsx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ export default function BatchCreatePage() {
7474
const [completedCount, setCompletedCount] = useState(0)
7575
const [queuedCount, setQueuedCount] = useState(0)
7676
const [executionErrors, setExecutionErrors] = useState<string[]>([])
77+
const [liveStatus, setLiveStatus] = useState('')
7778
const selectedTokenInfo = TOKENS.find((t) => t.address === selectedToken) ??
7879
TOKENS[0] ?? { address: '', symbol: 'XLM', decimals: 7 }
7980

@@ -190,6 +191,11 @@ export default function BatchCreatePage() {
190191
setExecutionErrors([])
191192
setCompletedCount(0)
192193
setQueuedCount(validRows.length)
194+
// Issue #686: announce progress for screen-reader/keyboard-only users.
195+
// `createStreamsBatch` submits every row as a single on-chain
196+
// transaction (not one call per row), so there's no real per-row
197+
// progress to announce — we report the start and the final outcome.
198+
setLiveStatus(`Creating ${validRows.length} stream${validRows.length === 1 ? '' : 's'}…`)
193199

194200
const failures: string[] = []
195201

@@ -213,8 +219,10 @@ export default function BatchCreatePage() {
213219

214220
if (failures.length > 0) {
215221
setExecutionErrors(failures)
222+
setLiveStatus(`Batch failed: ${failures[0]}`)
216223
toast.error('Batch create failed.')
217224
} else {
225+
setLiveStatus(`${validRows.length} of ${validRows.length} streams created successfully.`)
218226
toast.success('Batch create completed', {
219227
description: `${validRows.length} streams created successfully.`,
220228
})
@@ -381,6 +389,11 @@ export default function BatchCreatePage() {
381389
</div>
382390
)}
383391

392+
{/* Issue #686: screen-reader-only live region announcing batch progress */}
393+
<div role="status" aria-live="polite" className="sr-only">
394+
{liveStatus}
395+
</div>
396+
384397
<div className="rounded-2xl border border-border bg-card p-5">
385398
<div className="space-y-4">
386399
<div className="flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between">

0 commit comments

Comments
 (0)