From 42cb187da33a3767264efaff3365fa26a8784867 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcus=20Bl=C3=A4ttermann?= Date: Mon, 2 Feb 2026 21:52:51 +0100 Subject: [PATCH 1/5] refactor: extract explicit tag components with enforce a11y --- app/components/Filter/Panel.vue | 45 ++++++++--------- app/components/Package/Card.vue | 8 ++- app/components/Package/Keywords.vue | 6 +-- app/components/Package/TableRow.vue | 7 ++- app/components/Tag/Button.vue | 31 ++++++++++++ app/components/Tag/Clickable.vue | 25 ---------- app/components/Tag/Link.vue | 36 ++++++++++++++ app/components/Tag/RadioButton.vue | 72 +++++++++++++++++++++++++++ test/nuxt/a11y.spec.ts | 76 ++++++++++++++++++++++++++--- 9 files changed, 235 insertions(+), 71 deletions(-) create mode 100644 app/components/Tag/Button.vue delete mode 100644 app/components/Tag/Clickable.vue create mode 100644 app/components/Tag/Link.vue create mode 100644 app/components/Tag/RadioButton.vue diff --git a/app/components/Filter/Panel.vue b/app/components/Filter/Panel.vue index 6433b2322..3ad7e07a0 100644 --- a/app/components/Filter/Panel.vue +++ b/app/components/Filter/Panel.vue @@ -243,17 +243,16 @@ const hasActiveFilters = computed(() => !!filterSummary.value) role="radiogroup" :aria-label="$t('filters.weekly_downloads')" > - {{ $t(getDownloadRangeLabelKey(range.value)) }} - + @@ -267,17 +266,16 @@ const hasActiveFilters = computed(() => !!filterSummary.value) role="radiogroup" :aria-label="$t('filters.updated_within')" > - {{ $t(getUpdatedWithinLabelKey(option.value)) }} - + @@ -290,17 +288,16 @@ const hasActiveFilters = computed(() => !!filterSummary.value)
- {{ $t(getSecurityLabelKey(security)) }} - +
@@ -310,16 +307,14 @@ const hasActiveFilters = computed(() => !!filterSummary.value) {{ $t('filters.keywords') }}
- {{ keyword }} - +