From 0ef57618bf520dfd1b065acc0fbc16ffd78876f9 Mon Sep 17 00:00:00 2001 From: pyr0ball Date: Mon, 11 May 2026 11:33:10 -0700 Subject: [PATCH] fix(a11y): add aria-pressed and aria-label to Browse panel buttons (WCAG 2.1) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Screen readers had no way to determine which domain, category, subcategory, or sort button was selected — the active CSS class is invisible to assistive technology. - aria-pressed on all toggle buttons (domain, category, subcategory, sort) - aria-label="Previous page" / "Next page" on pagination buttons - aria-live="polite" on results count span — announces filter result changes - Equipment chip-remove: "Remove" → "Remove equipment: {item}" Addresses WCAG 2.1 AA criteria 4.1.2 (Name, Role, Value) and 1.3.1 (Info and Relationships). Part of kiwi UX audit (2026-05-11). --- .../src/components/RecipeBrowserPanel.vue | 19 +++++++++++++++++-- frontend/src/components/SettingsView.vue | 2 +- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/frontend/src/components/RecipeBrowserPanel.vue b/frontend/src/components/RecipeBrowserPanel.vue index 068b808..22f5808 100644 --- a/frontend/src/components/RecipeBrowserPanel.vue +++ b/frontend/src/components/RecipeBrowserPanel.vue @@ -6,6 +6,7 @@ v-for="domain in domains" :key="domain.id" :class="['btn', activeDomain === domain.id ? 'btn-primary' : 'btn-secondary']" + :aria-pressed="activeDomain === domain.id" @click="selectDomain(domain.id)" > {{ domain.label }} @@ -24,6 +25,7 @@