From 73ce6b0312810150ae4b85cebb53d6d79131e5c6 Mon Sep 17 00:00:00 2001 From: rayhab2000 Date: Wed, 24 Jun 2026 14:31:20 +0100 Subject: [PATCH] fix(#475): Add aria-live regions for balance display updates - Dashboard (app/[locale]/page.tsx): Add aria-live regions to ACBU balance, USD conversion, and Fiat balance displays to announce updates to screen readers via polling (30s) or after transactions - Send page (app/send/page.tsx): Add aria-live region to available balance display for real-time updates Screen readers now announce balance changes politely without interrupting user's current output. Improves accessibility for visually impaired users who can now perceive balance changes without navigating away. --- app/[locale]/page.tsx | 68 +++++++++++++++---------------------------- app/send/page.tsx | 8 ++++- 2 files changed, 30 insertions(+), 46 deletions(-) diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index fc4391a..5bf929f 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -24,12 +24,9 @@ import { import { PageContainer } from '@/components/layout/page-container'; import { SkeletonList } from '@/components/ui/skeleton-list'; import { EmptyState } from '@/components/ui/empty-state'; -<<<<<<< HEAD:app/[locale]/page.tsx -======= import { BalanceSkeleton } from '@/components/ui/balance-skeleton'; import { Button } from '@/components/ui/button'; import { RetryErrorBlock } from '@/components/ui/retry-error-block'; ->>>>>>> upstream/dev:app/page.tsx import { useApiOpts } from '@/hooks/use-api'; import { useBalance } from '@/hooks/use-balance'; import { useScrollRestoration } from '@/hooks/use-scroll-restoration'; @@ -212,54 +209,35 @@ export default function Home() { > {showBalance ? : } -<<<<<<< HEAD:app/[locale]/page.tsx -
-
-

- {t('acbu')} -

-

{t('wallet_balance')}

-

-=======

ACBU

Wallet balance

-

->>>>>>> upstream/dev:app/page.tsx +
{!showBalance ? '••••••' : balanceLoading ? '...' : `ACBU ${balance != null ? format.number(balance, { minimumFractionDigits: 0, maximumFractionDigits: 7 }) : '—'}`} -

+
{!showBalance ? ( -

••••••

+

••••••

) : balanceLoading || ratesLoading ? ( -<<<<<<< HEAD:app/[locale]/page.tsx -

{t('approx_usd')} ...

- ) : balance == null ? ( -

{t('approx_usd')} —

- ) : acbuUsd != null ? ( -

- {t('approx_usd')} {format.number(acbuUsd, { minimumFractionDigits: 0, maximumFractionDigits: 2 })} -

- ) : ( -

{t('approx_usd')} —

- )} -
-
-

- {t('fiat')} -

-

{t('simulated_usd_equivalent')}

-
-=======

) : acbuUsd != null ? ( -

+

≈ USD {formatAmount(acbuUsd, 2)}

) : ( @@ -271,8 +249,13 @@ export default function Home() { Fiat

Simulated · USD equivalent

-
->>>>>>> upstream/dev:app/page.tsx +
{!showBalance ? (

••••••

) : fiatLoading || ratesLoading ? ( @@ -280,23 +263,18 @@ export default function Home() { ) : ( <>

- {t('approx_usd')}{' '} + ≈ USD{' '} {format.number(fiatUsdInfo?.usd ?? 0, { minimumFractionDigits: 0, maximumFractionDigits: 2 })}

{fiatUsdInfo?.partial && fiatAccounts.length > 0 && ( -<<<<<<< HEAD:app/[locale]/page.tsx -

- {t('some_currencies_missing_rate')} -=======

Some currencies missing a rate ->>>>>>> upstream/dev:app/page.tsx

)} {!fiatAccounts.length && (

- {t('add_demo_funds')} + Add demo funds

)} diff --git a/app/send/page.tsx b/app/send/page.tsx index 0cf4b1f..bb31c37 100644 --- a/app/send/page.tsx +++ b/app/send/page.tsx @@ -572,7 +572,13 @@ export default function SendPage() { />
{exceedsBalance &&

{t('send.insufficientBalance')}

} -

+

{t('send.available')}: ACBU {balanceLoading ? : formatAmount(balance)}