diff --git a/src/app/app.html b/src/app/app.html index 7779069..2b24c78 100644 --- a/src/app/app.html +++ b/src/app/app.html @@ -14,8 +14,9 @@ } @else { + -
+
@if (!isHomePage()) { } diff --git a/src/app/components/delivery-selector/delivery-selector.component.html b/src/app/components/delivery-selector/delivery-selector.component.html index a982503..ae12f96 100644 --- a/src/app/components/delivery-selector/delivery-selector.component.html +++ b/src/app/components/delivery-selector/delivery-selector.component.html @@ -5,7 +5,7 @@
- @if (required) { } diff --git a/src/app/components/header/header.component.html b/src/app/components/header/header.component.html index c6edbef..556a79f 100644 --- a/src/app/components/header/header.component.html +++ b/src/app/components/header/header.component.html @@ -33,7 +33,7 @@
} diff --git a/src/app/components/header/header.component.scss b/src/app/components/header/header.component.scss index 090fce3..e7da139 100644 --- a/src/app/components/header/header.component.scss +++ b/src/app/components/header/header.component.scss @@ -509,19 +509,26 @@ z-index: 999; box-sizing: border-box; - // Hide by default, animate in + // Hide by default, animate in. `visibility: hidden` (with a matched + // transition-delay so it only applies once the collapse finishes) keeps + // the menu's links/buttons out of the Tab order and the accessibility + // tree while closed — without it they stayed keyboard-focusable and + // screen-reader-reachable despite being visually collapsed to 0 height. max-height: 0; padding-top: 0; padding-bottom: 0; overflow: hidden; opacity: 0; - transition: max-height 0.35s ease, opacity 0.25s ease, padding 0.35s ease; + visibility: hidden; + transition: max-height 0.35s ease, opacity 0.25s ease, padding 0.35s ease, visibility 0s linear 0.35s; &.platform-mobile-menu-open { max-height: calc(100dvh - 84px); padding: 28px 20px 32px; opacity: 1; + visibility: visible; overflow-y: auto; + transition: max-height 0.35s ease, opacity 0.25s ease, padding 0.35s ease, visibility 0s linear 0s; } } diff --git a/src/app/features/search/components/search-bar/search-bar.component.html b/src/app/features/search/components/search-bar/search-bar.component.html index c74f766..30a3013 100644 --- a/src/app/features/search/components/search-bar/search-bar.component.html +++ b/src/app/features/search/components/search-bar/search-bar.component.html @@ -14,7 +14,11 @@ (blur)="onBlur()" name="query" [placeholder]="'catalog.searchPlaceholder' | translate" + role="combobox" + aria-autocomplete="list" [attr.aria-expanded]="suggestions.length > 0" + [attr.aria-controls]="suggestions.length > 0 ? 'search-suggestions-listbox' : null" + [attr.aria-activedescendant]="activeSuggestionIndex() >= 0 ? 'search-suggestion-' + activeSuggestionIndex() : null" [attr.aria-label]="'catalog.searchPlaceholder' | translate" autocomplete="off" /> @@ -27,14 +31,17 @@ @if (suggestions.length > 0) { -
+
{{ 'catalog.suggestionsTitle' | translate }}
@for (item of suggestions; track item.id) { @if (paymentStatus() === 'creating') { -
+

{{ 'cart.creatingPayment' | translate }}

{{ 'cart.waitFewSeconds' | translate }}

@@ -208,7 +208,7 @@ } @if (paymentStatus() === 'waiting') { -
+

{{ selectedPaymentMethod() === 'card' ? ('cart.waitingPayment' | translate) : ('cart.scanQr' | translate) }}

@if (qrCodeUrl()) { @@ -246,7 +246,7 @@ } @if (paymentStatus() === 'error') { -
+