fix(auth-ui): add focus traps to modals + aria-disabled on all buttons

- Add focus trap (Tab/Shift+Tab cycling) to AuthGateModal and
  GuestWelcomeModal with auto-focus on primary action
- Add aria-disabled to all disabled buttons across 8 components
  for proper screen reader announcements

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Till JS 2026-03-31 14:22:25 +02:00
parent 201819280e
commit e5c63f65fb
8 changed files with 98 additions and 0 deletions

View file

@ -242,6 +242,7 @@
class="pm-btn pm-btn-cancel"
onclick={cancelDelete}
disabled={loading}
aria-disabled={loading}
>
{t.cancelButton}
</button>
@ -250,6 +251,7 @@
class="pm-btn pm-btn-danger"
onclick={executeDelete}
disabled={loading}
aria-disabled={loading}
>
{#if loading}
<svg
@ -287,6 +289,7 @@
class="pm-btn pm-btn-cancel"
onclick={cancelRename}
disabled={loading}
aria-disabled={loading}
>
{t.cancelButton}
</button>
@ -295,6 +298,7 @@
class="pm-btn pm-btn-primary"
onclick={() => saveRename(passkey.id)}
disabled={loading || !editName.trim()}
aria-disabled={loading || !editName.trim()}
>
{t.saveButton}
</button>
@ -363,6 +367,7 @@
class="pm-btn pm-btn-cancel"
onclick={cancelRegister}
disabled={loading}
aria-disabled={loading}
>
{t.cancelButton}
</button>
@ -371,6 +376,7 @@
class="pm-btn pm-btn-primary"
onclick={handleRegister}
disabled={loading}
aria-disabled={loading}
>
{#if loading}
<svg
@ -394,6 +400,7 @@
class="pm-btn pm-btn-register"
onclick={openRegisterForm}
disabled={loading}
aria-disabled={loading}
>
<svg
width="18"