mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[ACS-4257] - Resolved a11y issue around jumping focus (#8168)
* ACS-4257 - Clicking on filter buttons on search results no longer switches focus from button to first element * [ACS-4257] Added key listeners to open and close the menus to improve keyboard only usability * ACS-4257 - Clicking on filter buttons on search results no longer switches focus from button to first element * [ACS-4257] Added key listeners to open and close the menus to improve keyboard only usability --------- Co-authored-by: suneet-gupta <suneet.gupta@hyland.com>
This commit is contained in:
@@ -6,6 +6,7 @@
|
|||||||
[matMenuTriggerFor]="menu"
|
[matMenuTriggerFor]="menu"
|
||||||
(onMenuOpen)="onMenuOpen()"
|
(onMenuOpen)="onMenuOpen()"
|
||||||
(keydown.enter)="onEnterKeydown()"
|
(keydown.enter)="onEnterKeydown()"
|
||||||
|
(keydown.escape)="onEscKeydown()"
|
||||||
[attr.title]="facetField.displayValue$ | async"
|
[attr.title]="facetField.displayValue$ | async"
|
||||||
#menuTrigger="matMenuTrigger">
|
#menuTrigger="matMenuTrigger">
|
||||||
|
|
||||||
|
@@ -46,7 +46,6 @@ export class SearchFacetChipComponent {
|
|||||||
onMenuOpen() {
|
onMenuOpen() {
|
||||||
if (this.menuContainer && !this.focusTrap) {
|
if (this.menuContainer && !this.focusTrap) {
|
||||||
this.focusTrap = this.focusTrapFactory.create(this.menuContainer.nativeElement);
|
this.focusTrap = this.focusTrapFactory.create(this.menuContainer.nativeElement);
|
||||||
this.focusTrap.focusInitialElement();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -66,6 +65,16 @@ export class SearchFacetChipComponent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
onEnterKeydown(): void {
|
onEnterKeydown(): void {
|
||||||
this.menuTrigger.openMenu();
|
if (!this.menuTrigger.menuOpen) {
|
||||||
|
this.menuTrigger.openMenu();
|
||||||
|
} else {
|
||||||
|
this.menuTrigger.closeMenu();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onEscKeydown() {
|
||||||
|
if (this.menuTrigger.menuOpen) {
|
||||||
|
this.menuTrigger.closeMenu();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -6,6 +6,7 @@
|
|||||||
[matMenuTriggerFor]="menu"
|
[matMenuTriggerFor]="menu"
|
||||||
(onMenuOpen)="onMenuOpen()"
|
(onMenuOpen)="onMenuOpen()"
|
||||||
(keydown.enter)="onEnterKeydown()"
|
(keydown.enter)="onEnterKeydown()"
|
||||||
|
(keydown.escape)="onEscKeydown()"
|
||||||
[attr.title]="widget.getDisplayValue() | async"
|
[attr.title]="widget.getDisplayValue() | async"
|
||||||
#menuTrigger="matMenuTrigger">
|
#menuTrigger="matMenuTrigger">
|
||||||
<span class="adf-search-filter-placeholder">
|
<span class="adf-search-filter-placeholder">
|
||||||
|
@@ -47,7 +47,6 @@ export class SearchWidgetChipComponent {
|
|||||||
onMenuOpen() {
|
onMenuOpen() {
|
||||||
if (this.menuContainer && !this.focusTrap) {
|
if (this.menuContainer && !this.focusTrap) {
|
||||||
this.focusTrap = this.focusTrapFactory.create(this.menuContainer.nativeElement);
|
this.focusTrap = this.focusTrapFactory.create(this.menuContainer.nativeElement);
|
||||||
this.focusTrap.focusInitialElement();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -67,6 +66,16 @@ export class SearchWidgetChipComponent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
onEnterKeydown(): void {
|
onEnterKeydown(): void {
|
||||||
this.menuTrigger.openMenu();
|
if (!this.menuTrigger.menuOpen) {
|
||||||
|
this.menuTrigger.openMenu();
|
||||||
|
} else {
|
||||||
|
this.menuTrigger.closeMenu();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onEscKeydown() {
|
||||||
|
if (this.menuTrigger.menuOpen) {
|
||||||
|
this.menuTrigger.closeMenu();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user