diff --git a/.changeset/clear-duration-label.md b/.changeset/clear-duration-label.md new file mode 100644 index 00000000..7bbef2d2 --- /dev/null +++ b/.changeset/clear-duration-label.md @@ -0,0 +1,5 @@ +--- +'@when/web': patch +--- + +Match the duration picker's accessible name to its visible label so screen readers and voice controls identify the same duration. diff --git a/apps/web/e2e/host-durations.e2e.ts b/apps/web/e2e/host-durations.e2e.ts index 4f97417d..b6f21dd1 100644 --- a/apps/web/e2e/host-durations.e2e.ts +++ b/apps/web/e2e/host-durations.e2e.ts @@ -16,7 +16,7 @@ const forgedHost = { role: 'host', viewer: 'host', isAdmin: 'true' }; function durationTrigger(page: Page, current: number) { return page.getByRole('button', { - name: `Change duration, currently ${current} minutes`, + name: `${current} min, change duration`, exact: true }); } @@ -58,7 +58,7 @@ test('host uses the configured default and finite palette, recovering locally fr const day = futureWeekday(); await signInAsAdmin(page); await page.goto(`/schedule/${slug}?date=${day}`); - await expect(durationTrigger(page, 60)).toBeVisible(); + await expect(durationTrigger(page, 60)).toHaveText('60 min'); await page.getByRole('button', { name: 'Back', exact: true }).click(); await expect(page.getByRole('heading', { name: 'Step 1 of 3: Pick a day' })).toBeVisible(); await expect(page.getByRole('button', { name: /^Change timezone, currently/ })).toBeVisible(); @@ -79,7 +79,7 @@ test('host uses the configured default and finite palette, recovering locally fr await expect( page.getByText('No availability in the near future.', { exact: true }) ).toBeVisible(); - await expect(durationTrigger(page, 300)).toBeVisible(); + await expect(durationTrigger(page, 300)).toHaveText('300 min'); await expect(page.getByRole('button', { name: /^Change timezone, currently/ })).toBeVisible(); await chooseDuration(page, 300, 90); await expect(page.getByRole('heading', { name: 'Step 1 of 3: Pick a day' })).toBeVisible(); diff --git a/apps/web/src/lib/components/WizardPickerControls.svelte b/apps/web/src/lib/components/WizardPickerControls.svelte index 7c389223..9c76984a 100644 --- a/apps/web/src/lib/components/WizardPickerControls.svelte +++ b/apps/web/src/lib/components/WizardPickerControls.svelte @@ -21,7 +21,7 @@