LP1796936: Add aria-labels to the checkboxes in web client grids user/sandbergja/lp1796936_label_grid_checkboxes
authorJane Sandberg <sandbej@linnbenton.edu>
Fri, 12 Apr 2019 20:03:46 +0000 (13:03 -0700)
committerJane Sandberg <sandbej@linnbenton.edu>
Fri, 12 Apr 2019 23:48:10 +0000 (16:48 -0700)
To test:
1) Go to an AngularJs grid interface.  Make sure that the "Select all"
checkbox has an aria-label attribute of "All rows"
2) In the same interface, make sure that each checkbox in the
non-header rows has an aria-label like "Row 15", "Row 23", etc.
3) Repeat steps 1-2 for an Angular grid interface.

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Open-ILS/src/eg2/src/app/share/grid/grid-body.component.html
Open-ILS/src/eg2/src/app/share/grid/grid-header.component.html
Open-ILS/src/templates/staff/share/t_autogrid.tt2

index 8d495aa..8f22cae 100644 (file)
@@ -8,7 +8,8 @@
 
     <ng-container *ngIf="!context.disableSelect">
       <div class="eg-grid-cell eg-grid-checkbox-cell eg-grid-cell-skinny">
-        <input type='checkbox' [(ngModel)]="context.rowSelector.indexes[context.getRowIndex(row)]">
+        <input type='checkbox' [(ngModel)]="context.rowSelector.indexes[context.getRowIndex(row)]"
+        i18n-aria-label="e.g. Row 13" attr.aria-label="Row {{context.pager.rowNumber(idx)}}">
       </div>
     </ng-container>
     <div class="eg-grid-cell eg-grid-number-cell eg-grid-cell-skinny">
index 0662f54..00a0fbd 100644 (file)
@@ -2,7 +2,8 @@
 <div class="eg-grid-row eg-grid-header-row">
   <ng-container *ngIf="!context.disableSelect">
     <div class="eg-grid-cell eg-grid-header-cell eg-grid-checkbox-cell eg-grid-cell-skinny">
-      <input type='checkbox' (click)="handleBatchSelect($event)">
+      <input #selectAll type='checkbox' (click)="handleBatchSelect($event)" i18n-aria-label
+        aria-label="All rows">
     </div>
   </ng-container>
   <div class="eg-grid-cell eg-grid-header-cell eg-grid-number-cell eg-grid-cell-skinny">
index 4d90a48..cfc5feb 100644 (file)
     </div>
     <div class="eg-grid-cell eg-grid-cell-stock" ng-show="canMultiSelect">
       <div>
-        <input title="[% l('Row Selector Column') %]"
+        <input aria-label="[% l('All rows') %]" 
           focus-me="gridControls.focusRowSelector"
           type='checkbox' ng-model="selectAll"/> 
       </div>
         <!-- ng-click=handleRowClick here has unintended 
              consequences and is unnecessary, avoid it -->
         <div>
-          <input type='checkbox' title="[% l('Select Row') %]"
+          <input type='checkbox' aria-label="[% l('Row [_1]','{{$index + offset() + 1}}') %]"
             ng-change="updateSelected()"
             ng-model="selected[indexValue(item)]"/>
         </div>