From 98abf4a758b0b6d1fe2ccedd6748e3bd75435bcd Mon Sep 17 00:00:00 2001 From: Alan Ren Date: Fri, 22 Nov 2019 15:50:09 -0800 Subject: [PATCH] add aria label for agreement checkbox (#8439) --- .../src/ui/resourceTypePickerDialog.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/extensions/resource-deployment/src/ui/resourceTypePickerDialog.ts b/extensions/resource-deployment/src/ui/resourceTypePickerDialog.ts index 512cb9a2e7..e844e1da8a 100644 --- a/extensions/resource-deployment/src/ui/resourceTypePickerDialog.ts +++ b/extensions/resource-deployment/src/ui/resourceTypePickerDialog.ts @@ -286,7 +286,9 @@ export class ResourceTypePickerDialog extends DialogBase { } private createAgreementCheckbox(agreementInfo: AgreementInfo): azdata.FlexContainer { - const checkbox = this._view.modelBuilder.checkBox().component(); + const checkbox = this._view.modelBuilder.checkBox().withProperties({ + ariaLabel: this.getAgreementDisplayText(agreementInfo) + }).component(); checkbox.checked = false; this._toDispose.push(checkbox.onChanged(() => { this._agreementCheckboxChecked = !!checkbox.checked; @@ -299,6 +301,16 @@ export class ResourceTypePickerDialog extends DialogBase { return createFlexContainer(this._view, [checkbox, text]); } + private getAgreementDisplayText(agreementInfo: AgreementInfo): string { + // the agreement template will have {index} as placeholder for hyperlinks + // this method will get the display text after replacing the placeholders + let text = agreementInfo.template; + for (let i: number = 0; i < agreementInfo.links.length; i++) { + text = text.replace(`{${i}}`, agreementInfo.links[i].text); + } + return text; + } + private getCurrentProvider(): DeploymentProvider { const options: { option: string, value: string }[] = [];