mirror of
https://github.com/bitwarden/browser.git
synced 2025-01-08 19:18:02 +01:00
[PM-8214] adding tabIndex for screen reader (#12602)
* update new device components to use liveannouncer so users are notified of the pages header, and add tabindex to remind me later btn
This commit is contained in:
parent
e1778f4282
commit
75f75dc0f8
@ -1,5 +1,6 @@
|
|||||||
|
import { LiveAnnouncer } from "@angular/cdk/a11y";
|
||||||
import { CommonModule } from "@angular/common";
|
import { CommonModule } from "@angular/common";
|
||||||
import { Component, OnInit } from "@angular/core";
|
import { AfterViewInit, Component, OnInit } from "@angular/core";
|
||||||
import { FormBuilder, FormControl, ReactiveFormsModule } from "@angular/forms";
|
import { FormBuilder, FormControl, ReactiveFormsModule } from "@angular/forms";
|
||||||
import { Router } from "@angular/router";
|
import { Router } from "@angular/router";
|
||||||
import { firstValueFrom, Observable } from "rxjs";
|
import { firstValueFrom, Observable } from "rxjs";
|
||||||
@ -9,6 +10,7 @@ import { Account, AccountService } from "@bitwarden/common/auth/abstractions/acc
|
|||||||
import { ClientType } from "@bitwarden/common/enums";
|
import { ClientType } from "@bitwarden/common/enums";
|
||||||
import { FeatureFlag } from "@bitwarden/common/enums/feature-flag.enum";
|
import { FeatureFlag } from "@bitwarden/common/enums/feature-flag.enum";
|
||||||
import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service";
|
import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service";
|
||||||
|
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
||||||
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
|
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
|
||||||
import { UserId } from "@bitwarden/common/types/guid";
|
import { UserId } from "@bitwarden/common/types/guid";
|
||||||
import {
|
import {
|
||||||
@ -41,7 +43,7 @@ import {
|
|||||||
ReactiveFormsModule,
|
ReactiveFormsModule,
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
export class NewDeviceVerificationNoticePageOneComponent implements OnInit {
|
export class NewDeviceVerificationNoticePageOneComponent implements OnInit, AfterViewInit {
|
||||||
protected formGroup = this.formBuilder.group({
|
protected formGroup = this.formBuilder.group({
|
||||||
hasEmailAccess: new FormControl(0),
|
hasEmailAccess: new FormControl(0),
|
||||||
});
|
});
|
||||||
@ -57,6 +59,8 @@ export class NewDeviceVerificationNoticePageOneComponent implements OnInit {
|
|||||||
private newDeviceVerificationNoticeService: NewDeviceVerificationNoticeService,
|
private newDeviceVerificationNoticeService: NewDeviceVerificationNoticeService,
|
||||||
private platformUtilsService: PlatformUtilsService,
|
private platformUtilsService: PlatformUtilsService,
|
||||||
private configService: ConfigService,
|
private configService: ConfigService,
|
||||||
|
private liveAnnouncer: LiveAnnouncer,
|
||||||
|
private i18nService: I18nService,
|
||||||
) {
|
) {
|
||||||
this.isDesktop = this.platformUtilsService.getClientType() === ClientType.Desktop;
|
this.isDesktop = this.platformUtilsService.getClientType() === ClientType.Desktop;
|
||||||
}
|
}
|
||||||
@ -70,6 +74,10 @@ export class NewDeviceVerificationNoticePageOneComponent implements OnInit {
|
|||||||
this.currentUserId = currentAcct.id;
|
this.currentUserId = currentAcct.id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ngAfterViewInit() {
|
||||||
|
void this.liveAnnouncer.announce(this.i18nService.t("importantNotice"), "polite");
|
||||||
|
}
|
||||||
|
|
||||||
submit = async () => {
|
submit = async () => {
|
||||||
const doesNotHaveEmailAccess = this.formGroup.controls.hasEmailAccess.value === 0;
|
const doesNotHaveEmailAccess = this.formGroup.controls.hasEmailAccess.value === 0;
|
||||||
|
|
||||||
|
@ -35,7 +35,14 @@
|
|||||||
</a>
|
</a>
|
||||||
|
|
||||||
<div class="tw-flex tw-justify-center tw-mt-6" *ngIf="!permanentFlagEnabled">
|
<div class="tw-flex tw-justify-center tw-mt-6" *ngIf="!permanentFlagEnabled">
|
||||||
<a bitLink linkType="primary" (click)="remindMeLaterSelect()" data-testid="remind-me-later">
|
<a
|
||||||
|
bitLink
|
||||||
|
linkType="primary"
|
||||||
|
(click)="remindMeLaterSelect()"
|
||||||
|
data-testid="remind-me-later"
|
||||||
|
href="#"
|
||||||
|
appStopClick
|
||||||
|
>
|
||||||
{{ "remindMeLater" | i18n }}
|
{{ "remindMeLater" | i18n }}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
|
import { LiveAnnouncer } from "@angular/cdk/a11y";
|
||||||
import { CommonModule } from "@angular/common";
|
import { CommonModule } from "@angular/common";
|
||||||
import { Component, OnInit } from "@angular/core";
|
import { AfterViewInit, Component, OnInit } from "@angular/core";
|
||||||
import { Router } from "@angular/router";
|
import { Router } from "@angular/router";
|
||||||
import { firstValueFrom, Observable } from "rxjs";
|
import { firstValueFrom, Observable } from "rxjs";
|
||||||
|
|
||||||
@ -12,6 +13,7 @@ import {
|
|||||||
Environment,
|
Environment,
|
||||||
EnvironmentService,
|
EnvironmentService,
|
||||||
} from "@bitwarden/common/platform/abstractions/environment.service";
|
} from "@bitwarden/common/platform/abstractions/environment.service";
|
||||||
|
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
||||||
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
|
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
|
||||||
import { UserId } from "@bitwarden/common/types/guid";
|
import { UserId } from "@bitwarden/common/types/guid";
|
||||||
import { ButtonModule, LinkModule, TypographyModule } from "@bitwarden/components";
|
import { ButtonModule, LinkModule, TypographyModule } from "@bitwarden/components";
|
||||||
@ -24,7 +26,7 @@ import { NewDeviceVerificationNoticeService } from "../../services/new-device-ve
|
|||||||
templateUrl: "./new-device-verification-notice-page-two.component.html",
|
templateUrl: "./new-device-verification-notice-page-two.component.html",
|
||||||
imports: [CommonModule, JslibModule, TypographyModule, ButtonModule, LinkModule],
|
imports: [CommonModule, JslibModule, TypographyModule, ButtonModule, LinkModule],
|
||||||
})
|
})
|
||||||
export class NewDeviceVerificationNoticePageTwoComponent implements OnInit {
|
export class NewDeviceVerificationNoticePageTwoComponent implements OnInit, AfterViewInit {
|
||||||
protected isWeb: boolean;
|
protected isWeb: boolean;
|
||||||
protected isDesktop: boolean;
|
protected isDesktop: boolean;
|
||||||
protected permanentFlagEnabled = false;
|
protected permanentFlagEnabled = false;
|
||||||
@ -39,6 +41,8 @@ export class NewDeviceVerificationNoticePageTwoComponent implements OnInit {
|
|||||||
private platformUtilsService: PlatformUtilsService,
|
private platformUtilsService: PlatformUtilsService,
|
||||||
private environmentService: EnvironmentService,
|
private environmentService: EnvironmentService,
|
||||||
private configService: ConfigService,
|
private configService: ConfigService,
|
||||||
|
private liveAnnouncer: LiveAnnouncer,
|
||||||
|
private i18nService: I18nService,
|
||||||
) {
|
) {
|
||||||
this.isWeb = this.platformUtilsService.getClientType() === ClientType.Web;
|
this.isWeb = this.platformUtilsService.getClientType() === ClientType.Web;
|
||||||
this.isDesktop = this.platformUtilsService.getClientType() === ClientType.Desktop;
|
this.isDesktop = this.platformUtilsService.getClientType() === ClientType.Desktop;
|
||||||
@ -56,6 +60,10 @@ export class NewDeviceVerificationNoticePageTwoComponent implements OnInit {
|
|||||||
this.currentUserId = currentAcct.id;
|
this.currentUserId = currentAcct.id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ngAfterViewInit() {
|
||||||
|
void this.liveAnnouncer.announce(this.i18nService.t("setupTwoStepLogin"), "polite");
|
||||||
|
}
|
||||||
|
|
||||||
async navigateToTwoStepLogin(event: Event) {
|
async navigateToTwoStepLogin(event: Event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user