From 0cac3d35456bd496ba3c1b67f60fae57350c0942 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Sat, 16 May 2026 17:53:29 +0200 Subject: [PATCH] fix(a11y): give icon-only buttons accessible names on the medications page Lighthouse v1.4.33 a11y run flagged "links without discernible name" (score 91/94). The medications page renders five icon-only buttons (reset-form dropdown, three copy actions, status dropdown) without an aria-label, so the SR announcement collapses to the role name. This patch reuses existing common.* translation keys (no new strings added; messages/*.json off-limits for IW9): - the reset / status DropdownMenu triggers get `common.moreOptions`, - the three copy icon-buttons get `common.copy`. Icon-only buttons in `src/components/settings/**` (IW4), `src/components/insights/coach-panel/**` (IW5), and the bottom-nav already carry aria-labels per earlier polish rounds. --- src/app/medications/page.tsx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/app/medications/page.tsx b/src/app/medications/page.tsx index 6e52ebbbc..b7b26b1f0 100644 --- a/src/app/medications/page.tsx +++ b/src/app/medications/page.tsx @@ -482,6 +482,7 @@ function IntakeImportDialog({ size="icon" className="h-9 w-9" disabled={importing} + aria-label={t("common.moreOptions")} > @@ -732,6 +733,7 @@ function ApiEndpointDialog({ size="icon" className="h-8 w-8 shrink-0" onClick={() => copyText(endpoint, "url")} + aria-label={t("common.copy")} > @@ -756,6 +758,7 @@ function ApiEndpointDialog({ size="icon" className="h-8 w-8 shrink-0" onClick={() => copyText(token, "token")} + aria-label={t("common.copy")} > @@ -807,6 +810,7 @@ function ApiEndpointDialog({ size="icon" className="absolute top-1 right-1 h-7 w-7" onClick={() => copyText(selectedExample.value, "example")} + aria-label={t("common.copy")} > @@ -833,6 +837,7 @@ function ApiEndpointDialog({ size="icon" className="h-9 w-9" disabled={loadingStatus || toggling} + aria-label={t("common.moreOptions")} >