From 579f47e563a13f4a56ca92064949d594bfe66063 Mon Sep 17 00:00:00 2001 From: Fringg Date: Wed, 4 Mar 2026 08:12:18 +0300 Subject: [PATCH] fix(merge): accessibility, token guard, state cleanup - Add role="radio" + aria-checked to subscription radio buttons - Add aria-hidden="true" to decorative SVG icons - Treat success=true with null tokens as error (show error toast) - Guard auto-select useEffect from overwriting user's manual choice - Clear sessionStorage on OAuth state validation failure --- src/pages/LinkOAuthCallback.tsx | 1 + src/pages/MergeAccounts.tsx | 28 +++++++++++++++++++--------- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/pages/LinkOAuthCallback.tsx b/src/pages/LinkOAuthCallback.tsx index 913df31..76a44e1 100644 --- a/src/pages/LinkOAuthCallback.tsx +++ b/src/pages/LinkOAuthCallback.tsx @@ -54,6 +54,7 @@ export default function LinkOAuthCallback() { // Validate state match if (saved.state !== urlState) { + clearLinkOAuthState(); showToast({ type: 'error', message: t('profile.accounts.linkError') }); navigate('/profile/accounts', { replace: true }); return; diff --git a/src/pages/MergeAccounts.tsx b/src/pages/MergeAccounts.tsx index 8b236e3..971e96e 100644 --- a/src/pages/MergeAccounts.tsx +++ b/src/pages/MergeAccounts.tsx @@ -23,6 +23,7 @@ function WarningIcon({ className = 'h-5 w-5' }: { className?: string }) { viewBox="0 0 24 24" stroke="currentColor" strokeWidth={2} + aria-hidden="true" >