Skip to content

Commit 5a8ed9b

Browse files
authored
client: improve a11y focus (#727)
- focus top page on router navigation - Announce page title after navigation
1 parent 5b117a9 commit 5a8ed9b

21 files changed

+123
-79
lines changed

client/src/app/header/header.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
<a
4343
routerLink="/home"
4444
routerLinkActive
45-
appFocusContentOnRouting
45+
appFocusTopTrigger
4646
ariaCurrentWhenActive="page"
4747
aria-label="Accueil"
4848
i18n-aria-label="@@Component.Header.HomeLink"

client/src/app/header/header.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
44
import { NavigationEnd, Router, RouterLinkActive, RouterLinkWithHref } from '@angular/router';
55
import { delay, filter } from 'rxjs';
66
import { AuthService } from '../shared/auth';
7-
import { FocusContentOnRoutingDirective } from '../shared/focus-content';
7+
import { FocusTopTriggerDirective } from '../shared/focus';
88
import { BurgerComponent } from './burger/burger.component';
99
import { MenuComponent } from './menu/menu.component';
1010
import { NavComponent } from './nav/nav.component';
@@ -16,7 +16,7 @@ import { NavComponent } from './nav/nav.component';
1616
NgTemplateOutlet,
1717
RouterLinkActive,
1818
RouterLinkWithHref,
19-
FocusContentOnRoutingDirective,
19+
FocusTopTriggerDirective,
2020
BurgerComponent,
2121
MenuComponent,
2222
NavComponent,

client/src/app/header/menu/menu.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
</button>
4242

4343
@if (userStatus().authenticated) {
44-
<button mat-menu-item routerLink="/settings" appFocusContentOnRouting>
44+
<button mat-menu-item routerLink="/settings" appFocusTopTrigger>
4545
<mat-icon class="gbl-sys-primary">settings</mat-icon>
4646
<ng-container i18n="@@Title.Settings">Paramètres</ng-container>
4747
</button>

client/src/app/header/menu/menu.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ import { MatMenuModule } from '@angular/material/menu';
55
import { RouterLink } from '@angular/router';
66
import { AuthService } from '../../shared/auth/auth.service';
77
import { AvatarComponent } from '../../shared/avatar';
8-
import { FocusContentOnRoutingDirective } from '../../shared/focus-content';
8+
import { FocusTopTriggerDirective } from '../../shared/focus';
99
import { LanguageService } from '../../shared/i18n/language';
1010
import { ThemeService } from '../../shared/theme';
1111

1212
@Component({
1313
selector: 'app-menu',
14-
imports: [RouterLink, MatButtonModule, MatIconModule, MatMenuModule, AvatarComponent, FocusContentOnRoutingDirective],
14+
imports: [RouterLink, MatButtonModule, MatIconModule, MatMenuModule, AvatarComponent, FocusTopTriggerDirective],
1515
templateUrl: './menu.component.html',
1616
styleUrl: './menu.component.scss',
1717
encapsulation: ViewEncapsulation.None,

client/src/app/header/nav/nav.component.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
class="app-nav__item"
33
routerLinkActive="app-nav__item--active"
44
routerLink="/request"
5-
appFocusContentOnRouting
5+
appFocusTopTrigger
66
ariaCurrentWhenActive="page"
77
>
88
<ng-container i18n="@@Feedback.Request"> Demander </ng-container>
@@ -12,7 +12,7 @@
1212
class="app-nav__item"
1313
routerLinkActive="app-nav__item--active"
1414
routerLink="/give"
15-
appFocusContentOnRouting
15+
appFocusTopTrigger
1616
ariaCurrentWhenActive="page"
1717
>
1818
<ng-container i18n="@@Feedback.Give"> Donner </ng-container>
@@ -22,7 +22,7 @@
2222
class="app-nav__item"
2323
routerLinkActive="app-nav__item--active"
2424
routerLink="/give-requested"
25-
appFocusContentOnRouting
25+
appFocusTopTrigger
2626
ariaCurrentWhenActive="page"
2727
[matBadge]="receivedRequestLength()"
2828
>
@@ -33,7 +33,7 @@
3333
class="app-nav__item"
3434
routerLinkActive="app-nav__item--active"
3535
routerLink="/history"
36-
appFocusContentOnRouting
36+
appFocusTopTrigger
3737
ariaCurrentWhenActive="page"
3838
i18n="@@Action.History"
3939
>Mes feedZbacks</a
@@ -45,7 +45,7 @@
4545
class="app-nav__item"
4646
routerLinkActive="app-nav__item--active"
4747
routerLink="/manager"
48-
appFocusContentOnRouting
48+
appFocusTopTrigger
4949
ariaCurrentWhenActive="page"
5050
i18n="@@Action.Manager"
5151
>

client/src/app/header/nav/nav.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ import { RouterLinkActive, RouterLinkWithHref } from '@angular/router';
55
import { GiveRequestedFeedbackListService } from '../../give-feedback/give-requested-feedback-list/give-requested-feedback-list.service';
66
import { BreakpointService } from '../../shared/breakpoint';
77
import { EmployeeService } from '../../shared/employee';
8-
import { FocusContentOnRoutingDirective } from '../../shared/focus-content';
8+
import { FocusTopTriggerDirective } from '../../shared/focus';
99
import { navAnimation } from './nav.animation';
1010

1111
@Component({
1212
selector: 'app-nav',
1313
host: { class: 'app-nav' },
14-
imports: [RouterLinkActive, RouterLinkWithHref, MatBadgeModule, FocusContentOnRoutingDirective],
14+
imports: [RouterLinkActive, RouterLinkWithHref, MatBadgeModule, FocusTopTriggerDirective],
1515
animations: [navAnimation],
1616
templateUrl: './nav.component.html',
1717
styleUrl: './nav.component.scss',

client/src/app/layout/layout.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
<app-focus-content-skip-links class="app-layout__container" />
1+
<app-focus class="app-layout__container" />
22

33
<header class="app-layout__header">
44
<div class="app-layout__container">
55
<ng-content select="[appLayoutHeader]" />
66
</div>
77
</header>
88

9-
<main class="app-layout__main app-layout__container" appFocusContentTarget>
9+
<main class="app-layout__main app-layout__container" appFocusMainTarget>
1010
<ng-content select="[appLayoutMain]" />
1111

1212
<app-loading />

client/src/app/layout/layout.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import { Component, ViewEncapsulation } from '@angular/core';
2-
import { FocusContentSkipLinksComponent, FocusContentTargetDirective } from '../shared/focus-content';
2+
import { FocusComponent, FocusMainDirective } from '../shared/focus';
33
import { LoadingComponent } from '../shared/loading';
44

55
@Component({
66
selector: 'app-layout',
77
host: { class: 'app-layout' },
8-
imports: [FocusContentSkipLinksComponent, FocusContentTargetDirective, LoadingComponent],
8+
imports: [FocusComponent, FocusMainDirective, LoadingComponent],
99
templateUrl: './layout.component.html',
1010
styleUrl: './layout.component.scss',
1111
encapsulation: ViewEncapsulation.None,

client/src/app/shared/focus-content/focus-content-skip-links.component.html

Lines changed: 0 additions & 4 deletions
This file was deleted.

client/src/app/shared/focus-content/focus-content-skip-links.component.ts

Lines changed: 0 additions & 18 deletions
This file was deleted.

0 commit comments

Comments
 (0)