From 4a7195a1bc5e9ecf278a37ac062e8ade15bdd324 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Thu, 14 May 2026 22:26:46 +0200 Subject: [PATCH] fix(onboarding): 44px touch targets across wizard CTAs + carousel pager MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bring every back / skip / next / chevron / pager button on the v1.4.25 onboarding wizard up to the 44x44 px WCAG 2.5.8 floor. The previous `size="sm"` buttons measured 32 px tall, the chevron icons were 32 px square, and each dot pager target was 10 px square — all well under the target-size minimum for thumb-driven flows. Carousel slides now derive their accessible name from the slide title via `aria-labelledby`, so the polite live region (which mirrors "Slide N of M") is the single source for position announcements. The previous markup announced position twice on every swipe: once from the slide's own `aria-label`, again from the live region. --- src/components/onboarding/BaselineForm.tsx | 5 ++- src/components/onboarding/GoalsChipPicker.tsx | 11 +++-- src/components/onboarding/OnboardingShell.tsx | 6 +-- src/components/onboarding/SourceCardGrid.tsx | 11 +++-- src/components/onboarding/WelcomeCarousel.tsx | 44 ++++++++++++------- 5 files changed, 50 insertions(+), 27 deletions(-) diff --git a/src/components/onboarding/BaselineForm.tsx b/src/components/onboarding/BaselineForm.tsx index 27815b38f..b5b591f89 100644 --- a/src/components/onboarding/BaselineForm.tsx +++ b/src/components/onboarding/BaselineForm.tsx @@ -197,16 +197,16 @@ export function BaselineForm() {
-
@@ -214,6 +214,7 @@ export function BaselineForm() { type="button" onClick={() => advance({ saveProfile: true })} disabled={saving} + className="min-h-11 min-w-11" > {saving ? : null} {t("onboarding.baseline.saveCta")} diff --git a/src/components/onboarding/GoalsChipPicker.tsx b/src/components/onboarding/GoalsChipPicker.tsx index e47286103..c0453cbdd 100644 --- a/src/components/onboarding/GoalsChipPicker.tsx +++ b/src/components/onboarding/GoalsChipPicker.tsx @@ -249,20 +249,25 @@ export function GoalsChipPicker({ userId }: GoalsChipPickerProps) {
-
-
diff --git a/src/components/onboarding/OnboardingShell.tsx b/src/components/onboarding/OnboardingShell.tsx index 3a7138bbf..7bb0b6f76 100644 --- a/src/components/onboarding/OnboardingShell.tsx +++ b/src/components/onboarding/OnboardingShell.tsx @@ -135,7 +135,7 @@ export async function OnboardingShell({