Skip to content

Commit

Permalink
Fix Create a new process page accessibility issues
Browse files Browse the repository at this point in the history
- Added missing aria-label to delete buttons
- Moved hardcoded translation to translation files
- Fix color contrast issues on buttons
- Fix minor alignment issues
- Added missing aria labels to input and select elements
  • Loading branch information
alexandrevryghem committed Dec 3, 2023
1 parent 4ea487c commit 52c0977
Show file tree
Hide file tree
Showing 11 changed files with 44 additions and 16 deletions.
6 changes: 3 additions & 3 deletions src/app/process-page/form/process-form.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
<h2 class="col-12">
{{headerKey | translate}}
</h2>
<div class="col-12 col-md-6">
<div class="col-12 col-md-6 mb-2">
<form #form="ngForm" (ngSubmit)="submitForm(form)">
<ds-scripts-select [script]="selectedScript" (select)="selectedScript = $event; parameters = undefined"></ds-scripts-select>
<ds-process-parameters [initialParams]="parameters" [script]="selectedScript" (updateParameters)="parameters = $event"></ds-process-parameters>
<button [routerLink]="['/processes']" class="btn btn-light float-left">{{ 'process.new.cancel' | translate }}</button>
<button type="submit" class="btn btn-light float-right">{{ 'process.new.submit' | translate }}</button>
<a [routerLink]="['/processes']" class="btn btn-danger float-left">{{ 'process.new.cancel' | translate }}</a>
<button type="submit" class="btn btn-primary float-right">{{ 'process.new.submit' | translate }}</button>
</form>
</div>
<div class="col-12 col-md-6">
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
<div class="form-row mb-2 mx-0">
<div class="form-row gap-2 mb-2 mx-0">
<select id="process-parameters"
class="form-control col"
name="parameter-{{index}}"
[attr.aria-label]="'process.new.select-parameter' | translate"
[(ngModel)]="selectedParameter"
#param="ngModel">
<option [ngValue]="undefined">Add a parameter...</option>
<option [ngValue]="undefined">{{ 'process.new.add-parameter' | translate }}</option>
<option *ngFor="let param of parameters" [ngValue]="param.name">
{{param.nameLong || param.name}}
</option>
</select>
<ds-parameter-value-input [initialValue]="parameterValue.value" [parameter]="selectedScriptParameter" (updateValue)="selectedParameterValue = $event" class="d-block col" [index]="index"></ds-parameter-value-input>
<button *ngIf="removable" class="btn btn-light col-1 remove-button" (click)="removeParameter.emit(parameterValue);"><span class="fas fa-trash"></span></button>
<ds-parameter-value-input [initialValue]="parameterValue.value" [parameter]="selectedScriptParameter" (updateValue)="selectedParameterValue = $event" class="d-block col px-0" [index]="index"></ds-parameter-value-input>
<button *ngIf="removable" [attr.aria-label]="'process.new.delete-parameter' | translate"
(click)="removeParameter.emit(parameterValue);" class="btn btn-danger col-1 remove-button">
<i class="fas fa-trash"></i>
</button>
<span *ngIf="!removable" class="col-1"></span>
</div>

Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';

import { TranslateModule } from '@ngx-translate/core';
import { ParameterSelectComponent } from './parameter-select.component';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { FormsModule } from '@angular/forms';
Expand Down Expand Up @@ -33,7 +33,10 @@ describe('ParameterSelectComponent', () => {
beforeEach(waitForAsync(() => {
init();
TestBed.configureTestingModule({
imports: [FormsModule],
imports: [
FormsModule,
TranslateModule.forRoot(),
],
declarations: [ParameterSelectComponent],
schemas: [NO_ERRORS_SCHEMA]
})
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<input type="hidden" value="true" name="boolean-value-{{index}}" id="boolean-value-{{index}}"/>
<input [attr.aria-label]="'process.new.parameter.label' | translate" type="hidden" value="true" name="boolean-value-{{index}}" id="boolean-value-{{index}}"/>
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';

import { TranslateModule } from '@ngx-translate/core';
import { BooleanValueInputComponent } from './boolean-value-input.component';

describe('BooleanValueInputComponent', () => {
Expand All @@ -8,6 +8,9 @@ describe('BooleanValueInputComponent', () => {

beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
imports: [
TranslateModule.forRoot(),
],
declarations: [BooleanValueInputComponent]
})
.compileComponents();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<input required #string="ngModel" type="text" class="form-control" name="date-value-{{index}}" id="date-value-{{index}}" [ngModel]="value" (ngModelChange)="setValue($event)"/>
<input [attr.aria-label]="'process.new.parameter.label' | translate" required #string="ngModel" type="text" class="form-control" name="date-value-{{index}}" id="date-value-{{index}}" [ngModel]="value" (ngModelChange)="setValue($event)"/>
<div *ngIf="string.invalid && (string.dirty || string.touched)"
class="alert alert-danger validation-error">
class="alert alert-danger validation-error mb-0">
<div *ngIf="string.errors.required">
{{'process.new.parameter.string.required' | translate}}
</div>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
:host {
display: flex;
flex-direction: column;
gap: calc(var(--bs-spacer) / 2);
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<label for="file-upload-{{index}}" class="d-flex align-items-center m-0">
<span class="btn btn-light">
<span class="btn btn-primary">
{{'process.new.parameter.file.upload-button' | translate}}
</span>
<span class="file-name ml-1">{{fileObject?.name}}</span>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<input required #string="ngModel" type="text" name="string-value-{{index}}" class="form-control" id="string-value-{{index}}" [ngModel]="value" (ngModelChange)="setValue($event)"/>
<input [attr.aria-label]="'process.new.parameter.label' | translate" required #string="ngModel" type="text" name="string-value-{{index}}" class="form-control" id="string-value-{{index}}" [ngModel]="value" (ngModelChange)="setValue($event)"/>
<div *ngIf="string.invalid && (string.dirty || string.touched)"
class="alert alert-danger validation-error">
class="alert alert-danger validation-error mb-0">
<div *ngIf="string.errors.required">
{{'process.new.parameter.string.required' | translate}}
</div>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
:host {
display: flex;
flex-direction: column;
gap: calc(var(--bs-spacer) / 2);
}
8 changes: 8 additions & 0 deletions src/assets/i18n/en.json5
Original file line number Diff line number Diff line change
Expand Up @@ -3136,6 +3136,14 @@

"process.new.select-parameters": "Parameters",

"process.new.select-parameter": "Select parameter",

"process.new.add-parameter": "Add a parameter...",

"process.new.delete-parameter": "Delete parameter",

"process.new.parameter.label": "Parameter value",

"process.new.cancel": "Cancel",

"process.new.submit": "Save",
Expand Down

0 comments on commit 52c0977

Please sign in to comment.