From 250fa87578ee1df907b8e449ab1eba745fd6f0c3 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Mon, 9 Feb 2026 21:10:51 +0000 Subject: [PATCH] feat(ui): improve LoadingButton UX and accessibility - Reset error state on click - Auto-reset success state after 3s - Add aria-label and live region for screen readers - Apply formatting fixes to pass lint Co-authored-by: Yeboster <23556525+Yeboster@users.noreply.github.com> --- .github/dependabot.yml | 6 ++-- .jules/palette.md | 3 ++ src/components/DomainPayment.svelte | 8 +++-- src/components/LoadingButton.svelte | 36 +++++++++++++++++-- src/components/Record.svelte | 14 ++++++-- src/lib/sdk.ts | 2 +- src/lib/server/index.ts | 1 - src/lib/types.ts | 8 ++--- src/lib/url.ts | 9 +++-- src/routes/+layout.svelte | 1 - .../register/[name]/fees/[coin]/+server.ts | 19 +++++----- src/routes/profile/+page.svelte | 1 - src/styles/mixins.scss | 2 +- src/theme/dark/_smui-theme.scss | 2 +- 14 files changed, 78 insertions(+), 34 deletions(-) create mode 100644 .jules/palette.md diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 42adb44..301e978 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -5,7 +5,7 @@ version: 2 updates: - - package-ecosystem: "npm" - directory: "/" + - package-ecosystem: 'npm' + directory: '/' schedule: - interval: "weekly" + interval: 'weekly' diff --git a/.jules/palette.md b/.jules/palette.md new file mode 100644 index 0000000..87b8e92 --- /dev/null +++ b/.jules/palette.md @@ -0,0 +1,3 @@ +## 2024-10-24 - Async Button State Accessibility +**Learning:** Async buttons with visual-only state changes (spinner, icons) are inaccessible to screen readers without explicit `aria-live` announcements. Success states that persist indefinitely can be confusing and block retry actions. +**Action:** Always include a visually hidden `span` with `role="status"` and `aria-live="polite"` to announce state changes ("Loading", "Success", "Error"). Implement auto-reset for success states on buttons. diff --git a/src/components/DomainPayment.svelte b/src/components/DomainPayment.svelte index ac131ee..e04970d 100644 --- a/src/components/DomainPayment.svelte +++ b/src/components/DomainPayment.svelte @@ -102,7 +102,11 @@

{domainName}

- addYears(-1)} disabled={years === 1 || feesApproved} aria-label="remove-year"> + addYears(-1)} + disabled={years === 1 || feesApproved} + aria-label="remove-year" + > {years} {yearsLabel} @@ -111,7 +115,7 @@
-
+

Payment token