fix(storefront): polish search

Add accessible label to the search input (was placeholder-only),
role=status/alert + aria-live on loading and error states so screen
reader users get announced updates, type=button on retry, and a
:focus-visible outline on the retry button for keyboard users.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
sdarbinyan
2026-07-19 23:26:32 +04:00
parent ec1f95db09
commit bb461e007e
2 changed files with 11 additions and 5 deletions

View File

@@ -7,6 +7,7 @@
[(ngModel)]="searchQuery"
(input)="onSearchInput(searchQuery)"
[placeholder]="'search.placeholder' | translate"
[attr.aria-label]="'search.title' | translate"
class="search-input"
autofocus
/>
@@ -26,16 +27,16 @@
}
@if (loading() && items().length === 0) {
<div class="loading-initial">
<div class="loading-initial" role="status" aria-live="polite">
<div class="spinner"></div>
<p>{{ 'search.searching' | translate }}</p>
</div>
}
@if (error()) {
<div class="error">
<div class="error" role="alert">
<p>{{ error() }}</p>
<button (click)="performSearch(searchQuery)">{{ 'search.retry' | translate }}</button>
<button type="button" (click)="performSearch(searchQuery)">{{ 'search.retry' | translate }}</button>
</div>
}

View File

@@ -142,6 +142,11 @@
&:hover {
background: var(--primary-hover);
}
&:focus-visible {
outline: 2px solid var(--primary-color);
outline-offset: 2px;
}
}
}