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