Skip to content

Commit 5b21d14

Browse files
Fix item mapper accessibility issues
- Added missing aria-labels to input checkboxes - Fixed role="tablist" not having direct role="tab" by adding role="presentation" on the li elements
1 parent 09bf8af commit 5b21d14

3 files changed

Lines changed: 8 additions & 4 deletions

File tree

src/app/collection-page/collection-item-mapper/collection-item-mapper.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ <h2>{{'collection.edit.item-mapper.head' | translate}}</h2>
66
<p>{{'collection.edit.item-mapper.description' | translate}}</p>
77

88
<ul ngbNav (navChange)="tabChange($event)" [destroyOnHide]="true" #tabs="ngbNav" class="nav-tabs">
9-
<li [ngbNavItem]="'browseTab'">
9+
<li [ngbNavItem]="'browseTab'" role="presentation">
1010
<a ngbNavLink>{{'collection.edit.item-mapper.tabs.browse' | translate}}</a>
1111
<ng-template ngbNavContent>
1212
<div class="mt-2">
@@ -23,7 +23,7 @@ <h2>{{'collection.edit.item-mapper.head' | translate}}</h2>
2323
</div>
2424
</ng-template>
2525
</li>
26-
<li [ngbNavItem]="'mapTab'">
26+
<li [ngbNavItem]="'mapTab'" role="presentation">
2727
<a ngbNavLink>{{'collection.edit.item-mapper.tabs.map' | translate}}</a>
2828
<ng-template ngbNavContent>
2929
<div class="row mt-2">

src/app/shared/object-select/item-select/item-select.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@
1111
<table id="item-select" class="table table-striped table-hover">
1212
<thead>
1313
<tr>
14-
<th></th>
14+
<th aria-hidden="true"></th>
1515
<th *ngIf="!hideCollection" scope="col">{{'item.select.table.collection' | translate}}</th>
1616
<th scope="col">{{'item.select.table.author' | translate}}</th>
1717
<th scope="col">{{'item.select.table.title' | translate}}</th>
1818
</tr>
1919
</thead>
2020
<tbody>
2121
<tr *ngFor="let item of itemsRD?.payload?.page">
22-
<td><input [disabled]="!(canSelect(item) | async)" class="item-checkbox" [ngModel]="getSelected(item.id) | async" (change)="switch(item.id)" type="checkbox" name="{{item.id}}"></td>
22+
<td><input #selectItemBtn [attr.aria-label]="(selectItemBtn.checked ? 'item.select.table.deselect' : 'item.select.table.select') | translate" [disabled]="!(canSelect(item) | async)" class="item-checkbox" [ngModel]="getSelected(item.id) | async" (change)="switch(item.id)" type="checkbox" name="{{item.id}}"></td>
2323
<td *ngIf="!hideCollection">
2424
<span *ngVar="(item.owningCollection | async)?.payload as collection">
2525
<a *ngIf="collection" [routerLink]="['/collections', collection?.id]">

src/assets/i18n/en.json5

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2508,6 +2508,10 @@
25082508

25092509
"item.select.empty": "No items to show",
25102510

2511+
"item.select.table.select": "Select item",
2512+
2513+
"item.select.table.deselect": "Deselect item",
2514+
25112515
"item.select.table.author": "Author",
25122516

25132517
"item.select.table.collection": "Collection",

0 commit comments

Comments
 (0)