From bb8aa297963adcbb5da57df15a5d5e84b2fac20e Mon Sep 17 00:00:00 2001 From: Marlene Simondant <msimondant@grandlyon.com> Date: Mon, 22 Apr 2024 15:36:06 +0200 Subject: [PATCH 1/5] fix(accessibility): checkbox --- .../components/checkbox-form/checkbox-form.component.html | 6 +++--- .../components/checkbox-form/checkbox-form.component.scss | 2 +- src/app/shared/components/checkbox/checkbox.component.html | 1 + 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/app/shared/components/checkbox-form/checkbox-form.component.html b/src/app/shared/components/checkbox-form/checkbox-form.component.html index 784e822f6..e73a1004a 100644 --- a/src/app/shared/components/checkbox-form/checkbox-form.component.html +++ b/src/app/shared/components/checkbox-form/checkbox-form.component.html @@ -1,9 +1,9 @@ -<button type="button" tabindex="-1" [ngClass]="{ selected: isChecked }" (click)="clicked()"> +<div class="checkbox" tabindex="-1" [ngClass]="{ selected: isChecked }" (click)="clicked()" (keydown)="clicked()"> <app-checkbox [checked]="isChecked" /> <svg *ngIf="iconSvg" aria-hidden="true" class="icon" [ngClass]="iconType"> <use [attr.xlink:href]="'assets/form/sprite.svg#' + iconSvg" /> </svg> - <p>{{ text }}</p> -</button> + <p id="checkboxLabel">{{ text }}</p> +</div> diff --git a/src/app/shared/components/checkbox-form/checkbox-form.component.scss b/src/app/shared/components/checkbox-form/checkbox-form.component.scss index 167a1bc2c..0078cd152 100644 --- a/src/app/shared/components/checkbox-form/checkbox-form.component.scss +++ b/src/app/shared/components/checkbox-form/checkbox-form.component.scss @@ -1,7 +1,7 @@ @import 'color'; @import 'typography'; -button { +div.checkbox { width: 100%; height: 80px; padding: 1rem; diff --git a/src/app/shared/components/checkbox/checkbox.component.html b/src/app/shared/components/checkbox/checkbox.component.html index 17d7e6d70..c2185f1c7 100644 --- a/src/app/shared/components/checkbox/checkbox.component.html +++ b/src/app/shared/components/checkbox/checkbox.component.html @@ -5,5 +5,6 @@ [checked]="checked" [indeterminate]="indeterminate" [disabled]="disabled" + [attr.aria-labelledby]="'checkboxLabel'" (click)="action.emit($event)" /> -- GitLab From 680037aa52562e90005a87d45880980d35e98e87 Mon Sep 17 00:00:00 2001 From: Marlene Simondant <msimondant@grandlyon.com> Date: Mon, 22 Apr 2024 16:28:02 +0200 Subject: [PATCH 2/5] update keydown --- .../components/checkbox-form/checkbox-form.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/shared/components/checkbox-form/checkbox-form.component.html b/src/app/shared/components/checkbox-form/checkbox-form.component.html index e73a1004a..9a5c736eb 100644 --- a/src/app/shared/components/checkbox-form/checkbox-form.component.html +++ b/src/app/shared/components/checkbox-form/checkbox-form.component.html @@ -1,4 +1,4 @@ -<div class="checkbox" tabindex="-1" [ngClass]="{ selected: isChecked }" (click)="clicked()" (keydown)="clicked()"> +<div class="checkbox" tabindex="-1" [ngClass]="{ selected: isChecked }" (click)="clicked()" (keydown.enter)="clicked()"> <app-checkbox [checked]="isChecked" /> <svg *ngIf="iconSvg" aria-hidden="true" class="icon" [ngClass]="iconType"> -- GitLab From f50871d2d03500454bc7ead0fbb1556a09fc672c Mon Sep 17 00:00:00 2001 From: Marlene Simondant <msimondant@grandlyon.com> Date: Mon, 22 Apr 2024 16:35:01 +0200 Subject: [PATCH 3/5] space seems to be the expected keyboard key to activate/deactivate a checkbox --- .../checkbox-form/checkbox-form.component.html | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/app/shared/components/checkbox-form/checkbox-form.component.html b/src/app/shared/components/checkbox-form/checkbox-form.component.html index 9a5c736eb..31c125a18 100644 --- a/src/app/shared/components/checkbox-form/checkbox-form.component.html +++ b/src/app/shared/components/checkbox-form/checkbox-form.component.html @@ -1,4 +1,11 @@ -<div class="checkbox" tabindex="-1" [ngClass]="{ selected: isChecked }" (click)="clicked()" (keydown.enter)="clicked()"> +<div + class="checkbox" + tabindex="-1" + [ngClass]="{ selected: isChecked }" + (click)="clicked()" + (keyup.space)="clicked()" + (keyup.enter)="clicked()" +> <app-checkbox [checked]="isChecked" /> <svg *ngIf="iconSvg" aria-hidden="true" class="icon" [ngClass]="iconType"> -- GitLab From 49517d4416f212b9ba938883212f1044912e17f6 Mon Sep 17 00:00:00 2001 From: Marlene Simondant <msimondant@grandlyon.com> Date: Mon, 22 Apr 2024 16:37:07 +0200 Subject: [PATCH 4/5] space seems to be the expected keyboard key to activate/deactivate a checkbox --- .../components/checkbox-form/checkbox-form.component.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/shared/components/checkbox-form/checkbox-form.component.html b/src/app/shared/components/checkbox-form/checkbox-form.component.html index 31c125a18..141b0d1b3 100644 --- a/src/app/shared/components/checkbox-form/checkbox-form.component.html +++ b/src/app/shared/components/checkbox-form/checkbox-form.component.html @@ -3,8 +3,8 @@ tabindex="-1" [ngClass]="{ selected: isChecked }" (click)="clicked()" - (keyup.space)="clicked()" - (keyup.enter)="clicked()" + (keydown.space)="clicked()" + (keydown.enter)="clicked()" > <app-checkbox [checked]="isChecked" /> -- GitLab From c562d7ad646f00fc84c27eb6a503af3f3a3430c3 Mon Sep 17 00:00:00 2001 From: Marlene Simondant <msimondant@grandlyon.com> Date: Mon, 22 Apr 2024 16:42:12 +0200 Subject: [PATCH 5/5] keydown.enter --- .../checkbox-form/checkbox-form.component.html | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/app/shared/components/checkbox-form/checkbox-form.component.html b/src/app/shared/components/checkbox-form/checkbox-form.component.html index 141b0d1b3..9a5c736eb 100644 --- a/src/app/shared/components/checkbox-form/checkbox-form.component.html +++ b/src/app/shared/components/checkbox-form/checkbox-form.component.html @@ -1,11 +1,4 @@ -<div - class="checkbox" - tabindex="-1" - [ngClass]="{ selected: isChecked }" - (click)="clicked()" - (keydown.space)="clicked()" - (keydown.enter)="clicked()" -> +<div class="checkbox" tabindex="-1" [ngClass]="{ selected: isChecked }" (click)="clicked()" (keydown.enter)="clicked()"> <app-checkbox [checked]="isChecked" /> <svg *ngIf="iconSvg" aria-hidden="true" class="icon" [ngClass]="iconType"> -- GitLab