@@ -171,7 +171,7 @@ const hasActiveFilters = computed(() => !!filterSummary.value)
171171 <!-- Collapsed header -->
172172 <button
173173 type =" button"
174- class =" w-full flex items-center gap-3 px-4 py-3 text-left hover:bg-bg-muted transition-colors duration-200"
174+ class =" w-full flex items-center gap-3 px-4 py-3 text-left hover:bg-bg-muted transition-colors duration-200 focus-visible:ring-2 focus-visible:ring-fg focus-visible:ring-inset "
175175 :aria-expanded =" isExpanded"
176176 @click =" isExpanded = !isExpanded"
177177 >
@@ -208,7 +208,7 @@ const hasActiveFilters = computed(() => !!filterSummary.value)
208208 v-for =" option in SEARCH_SCOPE_OPTIONS"
209209 :key =" option.value"
210210 type =" button"
211- class =" px-2 py-0.5 text-xs font-mono rounded-sm transition-colors duration-200"
211+ class =" px-2 py-0.5 text-xs font-mono rounded-sm transition-colors duration-200 focus-visible:ring-2 focus-visible:ring-fg focus-visible:ring-offset-1 "
212212 :class ="
213213 filters.searchScope === option.value
214214 ? 'bg-bg-muted text-fg'
@@ -227,6 +227,7 @@ const hasActiveFilters = computed(() => !!filterSummary.value)
227227 type =" text"
228228 :value =" filters.text"
229229 :placeholder =" searchPlaceholder"
230+ autocomplete =" off"
230231 class =" input-base"
231232 @input =" handleTextInput"
232233 />
@@ -248,7 +249,7 @@ const hasActiveFilters = computed(() => !!filterSummary.value)
248249 type =" button"
249250 role =" radio"
250251 :aria-checked =" filters.downloadRange === range.value"
251- class =" tag transition-colors duration-200"
252+ class =" tag transition-colors duration-200 focus-visible:ring-2 focus-visible:ring-fg focus-visible:ring-offset-1 "
252253 :class =" filters.downloadRange === range.value ? 'bg-fg text-bg border-fg' : ''"
253254 @click =" emit('update:downloadRange', range.value)"
254255 >
@@ -273,7 +274,7 @@ const hasActiveFilters = computed(() => !!filterSummary.value)
273274 type =" button"
274275 role =" radio"
275276 :aria-checked =" filters.updatedWithin === option.value"
276- class =" tag transition-colors duration-200"
277+ class =" tag transition-colors duration-200 focus-visible:ring-2 focus-visible:ring-fg focus-visible:ring-offset-1 "
277278 :class =" filters.updatedWithin === option.value ? 'bg-fg text-bg border-fg' : ''"
278279 @click =" emit('update:updatedWithin', option.value)"
279280 >
@@ -298,7 +299,7 @@ const hasActiveFilters = computed(() => !!filterSummary.value)
298299 role =" radio"
299300 disabled
300301 :aria-checked =" filters.security === option.value"
301- class =" tag transition-colors duration-200 opacity-50 cursor-not-allowed"
302+ class =" tag transition-colors duration-200 opacity-50 cursor-not-allowed focus-visible:ring-2 focus-visible:ring-fg focus-visible:ring-offset-1 "
302303 :class =" filters.security === option.value ? 'bg-fg text-bg border-fg' : ''"
303304 >
304305 {{ $t(getSecurityLabelKey(option.value)) }}
@@ -317,7 +318,7 @@ const hasActiveFilters = computed(() => !!filterSummary.value)
317318 :key =" keyword"
318319 type =" button"
319320 :aria-pressed =" filters.keywords.includes(keyword)"
320- class =" tag text-xs transition-colors duration-200"
321+ class =" tag text-xs transition-colors duration-200 focus-visible:ring-2 focus-visible:ring-fg focus-visible:ring-offset-1 "
321322 :class =" filters.keywords.includes(keyword) ? 'bg-fg text-bg border-fg' : ''"
322323 @click =" emit('toggleKeyword', keyword)"
323324 >
@@ -326,7 +327,7 @@ const hasActiveFilters = computed(() => !!filterSummary.value)
326327 <button
327328 v-if =" hasMoreKeywords"
328329 type =" button"
329- class =" text-xs text-fg-subtle self-center font-mono hover:text-fg transition-colors duration-200"
330+ class =" text-xs text-fg-subtle self-center font-mono hover:text-fg transition-colors duration-200 focus-visible:ring-2 focus-visible:ring-fg focus-visible:ring-offset-1 "
330331 @click =" showAllKeywords = true"
331332 >
332333 {{ $t('filters.more_keywords', { count: (availableKeywords?.length ?? 0) - 20 }) }}
@@ -341,7 +342,10 @@ const hasActiveFilters = computed(() => !!filterSummary.value)
341342<style scoped>
342343.expand-enter-active ,
343344.expand-leave-active {
344- transition : all 0.2s ease ;
345+ transition :
346+ opacity 0.2s ease ,
347+ max-height 0.2s ease ,
348+ padding 0.2s ease ;
345349 overflow : hidden ;
346350}
347351
0 commit comments