[PS-540] Accessibility: remove `appBlurClick`, add `aria-expanded` to cog options, links to buttons, fix unsufficient focus indication (#1514)

This commit is contained in:
Patrick H. Lauke 2022-05-05 15:36:46 +01:00 committed by GitHub
parent 817856bc82
commit 55a9403ee3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
29 changed files with 47 additions and 115 deletions

View File

@ -83,7 +83,7 @@
</div> </div>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button appBlurClick type="submit" class="primary" appA11yTitle="{{ 'save' | i18n }}"> <button type="submit" class="primary" appA11yTitle="{{ 'save' | i18n }}">
<i class="bwi bwi-save-changes bwi-lg bwi-fw" aria-hidden="true"></i> <i class="bwi bwi-save-changes bwi-lg bwi-fw" aria-hidden="true"></i>
</button> </button>
<button type="button" data-dismiss="modal">{{ "close" | i18n }}</button> <button type="button" data-dismiss="modal">{{ "close" | i18n }}</button>

View File

@ -21,11 +21,11 @@
</div> </div>
</div> </div>
<div class="buttons"> <div class="buttons">
<button type="submit" class="btn primary block" [disabled]="form.loading" appBlurClick> <button type="submit" class="btn primary block" [disabled]="form.loading">
<b [hidden]="form.loading">{{ "submit" | i18n }}</b> <b [hidden]="form.loading">{{ "submit" | i18n }}</b>
<i class="bwi bwi-spinner bwi-spin" [hidden]="!form.loading" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" [hidden]="!form.loading" aria-hidden="true"></i>
</button> </button>
<a role="button" tabindex="0" routerLink="/login" class="btn block">{{ "cancel" | i18n }}</a> <button type="button" routerLink="/login" class="btn block">{{ "cancel" | i18n }}</button>
</div> </div>
</div> </div>
</form> </form>

View File

@ -34,7 +34,6 @@
type="button" type="button"
class="row-btn" class="row-btn"
appStopClick appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}" appA11yTitle="{{ 'toggleVisibility' | i18n }}"
[attr.aria-pressed]="showPassword" [attr.aria-pressed]="showPassword"
(click)="togglePassword()" (click)="togglePassword()"
@ -58,17 +57,16 @@
type="button" type="button"
class="btn block" class="btn block"
[ngClass]="{ 'primary font-weight-bold': hideInput }" [ngClass]="{ 'primary font-weight-bold': hideInput }"
appBlurClick
(click)="unlockBiometric()" (click)="unlockBiometric()"
> >
{{ biometricText | i18n }} {{ biometricText | i18n }}
</button> </button>
</div> </div>
<div class="buttons-row"> <div class="buttons-row">
<button type="submit" class="btn primary block" appBlurClick *ngIf="!hideInput"> <button type="submit" class="btn primary block" *ngIf="!hideInput">
<i class="bwi bwi-unlock" aria-hidden="true"></i> <b>{{ "unlock" | i18n }}</b> <i class="bwi bwi-unlock" aria-hidden="true"></i> <b>{{ "unlock" | i18n }}</b>
</button> </button>
<button type="button" class="btn block" appBlurClick (click)="logOut()"> <button type="button" class="btn block" (click)="logOut()">
{{ "logOut" | i18n }} {{ "logOut" | i18n }}
</button> </button>
</div> </div>

View File

@ -52,7 +52,6 @@
type="button" type="button"
class="row-btn" class="row-btn"
appStopClick appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}" appA11yTitle="{{ 'toggleVisibility' | i18n }}"
[attr.aria-pressed]="showPassword" [attr.aria-pressed]="showPassword"
(click)="togglePassword()" (click)="togglePassword()"
@ -76,15 +75,15 @@
</div> </div>
<div class="buttons with-rows"> <div class="buttons with-rows">
<div class="buttons-row"> <div class="buttons-row">
<button type="submit" class="btn primary block" [disabled]="form.loading" appBlurClick> <button type="submit" class="btn primary block" [disabled]="form.loading">
<b [hidden]="form.loading" <b [hidden]="form.loading"
><i class="bwi bwi-sign-in" aria-hidden="true"></i> {{ "logIn" | i18n }}</b ><i class="bwi bwi-sign-in" aria-hidden="true"></i> {{ "logIn" | i18n }}</b
> >
<i class="bwi bwi-spinner bwi-spin" [hidden]="!form.loading" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" [hidden]="!form.loading" aria-hidden="true"></i>
</button> </button>
<a role="button" tabindex="0" routerLink="/register" class="btn block"> <button type="button" routerLink="/register" class="btn block">
<i class="bwi bwi-pencil-square" aria-hidden="true"></i> {{ "createAccount" | i18n }} <i class="bwi bwi-pencil-square" aria-hidden="true"></i> {{ "createAccount" | i18n }}
</a> </button>
</div> </div>
<div class="buttons-row"> <div class="buttons-row">
<button <button
@ -97,7 +96,7 @@
</div> </div>
</div> </div>
<div class="sub-options"> <div class="sub-options">
<a role="button" tabindex="0" routerLink="/hint">{{ "getMasterPasswordHint" | i18n }}</a> <button type="button" routerLink="/hint">{{ "getMasterPasswordHint" | i18n }}</button>
</div> </div>
</div> </div>
</form> </form>

View File

@ -48,14 +48,13 @@
</div> </div>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="primary" appBlurClick (click)="manage()" *ngIf="isPremium"> <button type="button" class="primary" (click)="manage()" *ngIf="isPremium">
<b>{{ "premiumManage" | i18n }}</b> <b>{{ "premiumManage" | i18n }}</b>
</button> </button>
<button <button
#purchaseBtn #purchaseBtn
type="button" type="button"
class="primary" class="primary"
appBlurClick
(click)="purchase()" (click)="purchase()"
*ngIf="!isPremium" *ngIf="!isPremium"
[disabled]="purchaseBtn.loading" [disabled]="purchaseBtn.loading"
@ -67,7 +66,6 @@
<button <button
#refreshBtn #refreshBtn
type="button" type="button"
appBlurClick
(click)="refresh()" (click)="refresh()"
[disabled]="refreshBtn.loading" [disabled]="refreshBtn.loading"
appA11yTitle="{{ 'premiumRefresh' | i18n }}" appA11yTitle="{{ 'premiumRefresh' | i18n }}"

View File

@ -44,7 +44,6 @@
type="button" type="button"
class="row-btn" class="row-btn"
appStopClick appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}" appA11yTitle="{{ 'toggleVisibility' | i18n }}"
[attr.aria-pressed]="showPassword" [attr.aria-pressed]="showPassword"
(click)="togglePassword(false)" (click)="togglePassword(false)"
@ -94,7 +93,6 @@
type="button" type="button"
class="row-btn" class="row-btn"
appStopClick appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}" appA11yTitle="{{ 'toggleVisibility' | i18n }}"
[attr.aria-pressed]="showPassword" [attr.aria-pressed]="showPassword"
(click)="togglePassword(true)" (click)="togglePassword(true)"
@ -140,11 +138,11 @@
</div> </div>
</div> </div>
<div class="buttons"> <div class="buttons">
<button type="submit" class="btn primary block" [disabled]="form.loading" appBlurClick> <button type="submit" class="btn primary block" [disabled]="form.loading">
<b [hidden]="form.loading">{{ "submit" | i18n }}</b> <b [hidden]="form.loading">{{ "submit" | i18n }}</b>
<i class="bwi bwi-spinner bwi-spin" [hidden]="!form.loading" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" [hidden]="!form.loading" aria-hidden="true"></i>
</button> </button>
<a role="button" tabindex="0" routerLink="/login" class="btn block">{{ "cancel" | i18n }}</a> <button type="button" routerLink="/login" class="btn block">{{ "cancel" | i18n }}</button>
</div> </div>
</div> </div>
</form> </form>

View File

@ -7,7 +7,6 @@
type="submit" type="submit"
class="btn primary block" class="btn primary block"
[disabled]="actionPromise" [disabled]="actionPromise"
appBlurClick
(click)="convert()" (click)="convert()"
> >
<b [hidden]="continuing">{{ "removeMasterPassword" | i18n }}</b> <b [hidden]="continuing">{{ "removeMasterPassword" | i18n }}</b>
@ -17,7 +16,6 @@
type="button" type="button"
class="btn secondary block" class="btn secondary block"
[disabled]="actionPromise" [disabled]="actionPromise"
appBlurClick
(click)="leave()" (click)="leave()"
> >
<b [hidden]="leaving">{{ "leaveOrganization" | i18n }}</b> <b [hidden]="leaving">{{ "leaveOrganization" | i18n }}</b>

View File

@ -60,7 +60,6 @@
type="button" type="button"
class="row-btn" class="row-btn"
appStopClick appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}" appA11yTitle="{{ 'toggleVisibility' | i18n }}"
[attr.aria-pressed]="showPassword" [attr.aria-pressed]="showPassword"
(click)="togglePassword(false)" (click)="togglePassword(false)"
@ -112,7 +111,6 @@
type="button" type="button"
class="row-btn" class="row-btn"
appStopClick appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}" appA11yTitle="{{ 'toggleVisibility' | i18n }}"
[attr.aria-pressed]="showPassword" [attr.aria-pressed]="showPassword"
(click)="togglePassword(true)" (click)="togglePassword(true)"

View File

@ -112,7 +112,6 @@
type="submit" type="submit"
class="btn primary block" class="btn primary block"
[disabled]="form.loading" [disabled]="form.loading"
appBlurClick
*ngIf=" *ngIf="
selectedProviderType != null && selectedProviderType != null &&
selectedProviderType !== providerType.Duo && selectedProviderType !== providerType.Duo &&
@ -124,7 +123,7 @@
> >
<i class="bwi bwi-spinner bwi-spin" [hidden]="!form.loading" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" [hidden]="!form.loading" aria-hidden="true"></i>
</button> </button>
<a role="button" tabindex="0" routerLink="/login" class="btn block">{{ "cancel" | i18n }}</a> <button type="button" routerLink="/login" class="btn block">{{ "cancel" | i18n }}</button>
</div> </div>
<div class="sub-options"> <div class="sub-options">
<button type="button" appStopClick (click)="anotherMethod()"> <button type="button" appStopClick (click)="anotherMethod()">

View File

@ -40,7 +40,6 @@
type="button" type="button"
class="row-btn" class="row-btn"
appStopClick appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}" appA11yTitle="{{ 'toggleVisibility' | i18n }}"
[attr.aria-pressed]="showPassword" [attr.aria-pressed]="showPassword"
(click)="togglePassword(false)" (click)="togglePassword(false)"
@ -87,7 +86,6 @@
type="button" type="button"
class="row-btn" class="row-btn"
appStopClick appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}" appA11yTitle="{{ 'toggleVisibility' | i18n }}"
[attr.aria-pressed]="showPassword" [attr.aria-pressed]="showPassword"
(click)="togglePassword(true)" (click)="togglePassword(true)"
@ -114,7 +112,7 @@
</div> </div>
</div> </div>
<div class="buttons"> <div class="buttons">
<button type="submit" class="btn primary block" [disabled]="form.loading" appBlurClick> <button type="submit" class="btn primary block" [disabled]="form.loading">
<b [hidden]="form.loading">{{ "submit" | i18n }}</b> <b [hidden]="form.loading">{{ "submit" | i18n }}</b>
<i class="bwi bwi-spinner bwi-spin" [hidden]="!form.loading" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" [hidden]="!form.loading" aria-hidden="true"></i>
</button> </button>

View File

@ -23,7 +23,6 @@
type="button" type="button"
class="row-btn" class="row-btn"
appStopClick appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}" appA11yTitle="{{ 'toggleVisibility' | i18n }}"
[attr.aria-pressed]="showPassword" [attr.aria-pressed]="showPassword"
(click)="togglePassword()" (click)="togglePassword()"
@ -43,7 +42,7 @@
</div> </div>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="submit" class="btn btn-primary btn-submit" appBlurClick> <button type="submit" class="btn btn-primary btn-submit">
<span>{{ "ok" | i18n }}</span> <span>{{ "ok" | i18n }}</span>
</button> </button>
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal"> <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">

View File

@ -26,7 +26,6 @@
type="button" type="button"
class="row-btn" class="row-btn"
appStopClick appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}" appA11yTitle="{{ 'toggleVisibility' | i18n }}"
[attr.aria-pressed]="showPin" [attr.aria-pressed]="showPin"
(click)="toggleVisibility()" (click)="toggleVisibility()"

View File

@ -1,5 +1,13 @@
<ng-container *ngFor="let item of items"> <ng-container *ngFor="let item of items">
<a [routerLink]="item.link" class="btn primary" routerLinkActive="active" [title]="item.label"> <button
type="button"
[routerLink]="item.link"
class="btn primary"
routerLinkActive="active"
[title]="item.label"
#rla="routerLinkActive"
[attr.aria-pressed]="rla.isActive"
>
<i class="bwi" [ngClass]="item.icon"></i>{{ item.label }} <i class="bwi" [ngClass]="item.icon"></i>{{ item.label }}
</a> </button>
</ng-container> </ng-container>

View File

@ -97,7 +97,6 @@
type="button" type="button"
class="toggle" class="toggle"
appStopClick appStopClick
appBlurClick
(click)="toggleOptions()" (click)="toggleOptions()"
[attr.aria-expanded]="showOptions" [attr.aria-expanded]="showOptions"
> >
@ -161,7 +160,6 @@
type="button" type="button"
class="row-btn" class="row-btn"
appStopClick appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}" appA11yTitle="{{ 'toggleVisibility' | i18n }}"
[attr.aria-pressed]="showPassword" [attr.aria-pressed]="showPassword"
(click)="togglePasswordVisible()" (click)="togglePasswordVisible()"
@ -253,7 +251,6 @@
</div> </div>
<div class="footer"> <div class="footer">
<button <button
appBlurClick
type="submit" type="submit"
class="primary btn-submit" class="primary btn-submit"
appA11yTitle="{{ 'save' | i18n }}" appA11yTitle="{{ 'save' | i18n }}"
@ -263,12 +260,11 @@
<i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i> <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span><i class="bwi bwi-save-changes bwi-lg bwi-fw" aria-hidden="true"></i></span> <span><i class="bwi bwi-save-changes bwi-lg bwi-fw" aria-hidden="true"></i></span>
</button> </button>
<button appBlurClick type="button" (click)="cancel()" [disabled]="form.loading"> <button type="button" (click)="cancel()" [disabled]="form.loading">
{{ "cancel" | i18n }} {{ "cancel" | i18n }}
</button> </button>
<div class="right"> <div class="right">
<button <button
appBlurClick
type="button" type="button"
(click)="copyLinkToClipboard(link)" (click)="copyLinkToClipboard(link)"
appA11yTitle="{{ 'copySendLinkToClipboard' | i18n }}" appA11yTitle="{{ 'copySendLinkToClipboard' | i18n }}"
@ -278,7 +274,6 @@
</button> </button>
<button <button
#deleteBtn #deleteBtn
appBlurClick
type="button" type="button"
(click)="delete()" (click)="delete()"
class="danger" class="danger"

View File

@ -8,7 +8,6 @@
<button <button
type="button" type="button"
appStopClick appStopClick
appBlurClick
(click)="selectAll()" (click)="selectAll()"
[attr.aria-pressed]="selectedAll" [attr.aria-pressed]="selectedAll"
> >
@ -22,7 +21,6 @@
<button <button
type="button" type="button"
appStopClick appStopClick
appBlurClick
(click)="selectType(sendType.Text)" (click)="selectType(sendType.Text)"
[attr.aria-pressed]="selectedType === sendType.Text" [attr.aria-pressed]="selectedType === sendType.Text"
> >
@ -35,7 +33,6 @@
<button <button
type="button" type="button"
appStopClick appStopClick
appBlurClick
(click)="selectType(sendType.File)" (click)="selectType(sendType.File)"
[attr.aria-pressed]="selectedType === sendType.File" [attr.aria-pressed]="selectedType === sendType.File"
> >
@ -131,12 +128,7 @@
</div> </div>
</div> </div>
<div class="footer"> <div class="footer">
<button <button (click)="addSend()" class="block primary" appA11yTitle="{{ 'addItem' | i18n }}">
appBlurClick
(click)="addSend()"
class="block primary"
appA11yTitle="{{ 'addItem' | i18n }}"
>
<i class="bwi bwi-plus bwi-lg" aria-hidden="true"></i> <i class="bwi bwi-plus bwi-lg" aria-hidden="true"></i>
</button> </button>
</div> </div>

View File

@ -81,7 +81,6 @@
type="button" type="button"
class="row-btn" class="row-btn"
appStopClick appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}" appA11yTitle="{{ 'toggleVisibility' | i18n }}"
[attr.aria-pressed]="f.showValue" [attr.aria-pressed]="f.showValue"
(click)="toggleFieldValue(f)" (click)="toggleFieldValue(f)"

View File

@ -39,17 +39,15 @@
/> />
</div> </div>
<div class="action-buttons"> <div class="action-buttons">
<a <button
type="button"
class="row-btn" class="row-btn"
href="#"
appStopClick appStopClick
appBlurClick
role="button"
appA11yTitle="{{ 'generateUsername' | i18n }}" appA11yTitle="{{ 'generateUsername' | i18n }}"
(click)="generateUsername()" (click)="generateUsername()"
> >
<i class="bwi bwi-lg bwi-generate" aria-hidden="true"></i> <i class="bwi bwi-lg bwi-generate" aria-hidden="true"></i>
</a> </button>
</div> </div>
</div> </div>
<div class="box-content-row box-content-row-flex" appBoxRow> <div class="box-content-row box-content-row-flex" appBoxRow>
@ -70,7 +68,6 @@
type="button" type="button"
#checkPasswordBtn #checkPasswordBtn
class="row-btn btn" class="row-btn btn"
appBlurClick
appA11yTitle="{{ 'checkPassword' | i18n }}" appA11yTitle="{{ 'checkPassword' | i18n }}"
(click)="checkPassword()" (click)="checkPassword()"
[appApiAction]="checkPasswordPromise" [appApiAction]="checkPasswordPromise"
@ -91,7 +88,6 @@
type="button" type="button"
class="row-btn" class="row-btn"
appStopClick appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}" appA11yTitle="{{ 'toggleVisibility' | i18n }}"
[attr.aria-pressed]="showPassword" [attr.aria-pressed]="showPassword"
(click)="togglePassword()" (click)="togglePassword()"
@ -106,7 +102,6 @@
type="button" type="button"
class="row-btn" class="row-btn"
appStopClick appStopClick
appBlurClick
appA11yTitle="{{ 'generatePassword' | i18n }}" appA11yTitle="{{ 'generatePassword' | i18n }}"
(click)="generatePassword()" (click)="generatePassword()"
> >
@ -155,7 +150,6 @@
type="button" type="button"
class="row-btn" class="row-btn"
appStopClick appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}" appA11yTitle="{{ 'toggleVisibility' | i18n }}"
[attr.aria-pressed]="showCardNumber" [attr.aria-pressed]="showCardNumber"
(click)="toggleCardNumber()" (click)="toggleCardNumber()"
@ -209,7 +203,6 @@
type="button" type="button"
class="row-btn" class="row-btn"
appStopClick appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}" appA11yTitle="{{ 'toggleVisibility' | i18n }}"
[attr.aria-pressed]="showCardCode" [attr.aria-pressed]="showCardCode"
(click)="toggleCardCode()" (click)="toggleCardCode()"
@ -440,22 +433,18 @@
type="button" type="button"
class="row-btn" class="row-btn"
appStopClick appStopClick
appBlurClick
appA11yTitle="{{ 'toggleOptions' | i18n }}" appA11yTitle="{{ 'toggleOptions' | i18n }}"
(click)="toggleUriOptions(u)" (click)="toggleUriOptions(u)"
[attr.aria-expanded]="
!(u.showOptions === false || (u.showOptions == null && u.match == null))
"
> >
<i class="bwi bwi-lg bwi-cog" aria-hidden="true"></i> <i class="bwi bwi-lg bwi-cog" aria-hidden="true"></i>
</button> </button>
</div> </div>
</div> </div>
</ng-container> </ng-container>
<button <button type="button" appStopClick (click)="addUri()" class="box-content-row">
type="button"
appStopClick
appBlurClick
(click)="addUri()"
class="box-content-row"
>
<i class="bwi bwi-plus-circle bwi-fw bwi-lg" aria-hidden="true"></i> <i class="bwi bwi-plus-circle bwi-fw bwi-lg" aria-hidden="true"></i>
{{ "newUri" | i18n }} {{ "newUri" | i18n }}
</button> </button>
@ -496,7 +485,6 @@
type="button" type="button"
class="box-content-row box-content-row-flex text-default" class="box-content-row box-content-row-flex text-default"
appStopClick appStopClick
appBlurClick
(click)="attachments()" (click)="attachments()"
*ngIf="editMode && !cloneMode" *ngIf="editMode && !cloneMode"
> >
@ -507,7 +495,6 @@
type="button" type="button"
class="box-content-row box-content-row-flex text-default" class="box-content-row box-content-row-flex text-default"
appStopClick appStopClick
appBlurClick
(click)="editCollections()" (click)="editCollections()"
*ngIf="editMode && !cloneMode && cipher.organizationId" *ngIf="editMode && !cloneMode && cipher.organizationId"
> >
@ -578,7 +565,6 @@
</div> </div>
<div class="footer"> <div class="footer">
<button <button
appBlurClick
type="submit" type="submit"
class="primary" class="primary"
appA11yTitle="{{ 'save' | i18n }}" appA11yTitle="{{ 'save' | i18n }}"
@ -591,12 +577,11 @@
aria-hidden="true" aria-hidden="true"
></i> ></i>
</button> </button>
<button appBlurClick type="button" (click)="cancel()"> <button type="button" (click)="cancel()">
{{ "cancel" | i18n }} {{ "cancel" | i18n }}
</button> </button>
<div class="right"> <div class="right">
<button <button
appBlurClick
type="button" type="button"
(click)="share()" (click)="share()"
appA11yTitle="{{ 'moveToOrganization' | i18n }}" appA11yTitle="{{ 'moveToOrganization' | i18n }}"
@ -606,7 +591,6 @@
</button> </button>
<button <button
#deleteBtn #deleteBtn
appBlurClick
type="button" type="button"
(click)="delete()" (click)="delete()"
class="danger" class="danger"

View File

@ -17,7 +17,6 @@
class="row-btn btn" class="row-btn btn"
type="button" type="button"
appStopClick appStopClick
appBlurClick
appA11yTitle="{{ 'delete' | i18n }}" appA11yTitle="{{ 'delete' | i18n }}"
(click)="delete(a)" (click)="delete(a)"
#deleteBtn #deleteBtn
@ -56,7 +55,6 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button <button
appBlurClick
type="submit" type="submit"
class="primary" class="primary"
appA11yTitle="{{ 'save' | i18n }}" appA11yTitle="{{ 'save' | i18n }}"

View File

@ -54,7 +54,6 @@
</div> </div>
<div class="footer"> <div class="footer">
<button <button
appBlurClick
(click)="addCipher()" (click)="addCipher()"
(contextmenu)="addCipherOptions()" (contextmenu)="addCipherOptions()"
class="block primary" class="block primary"

View File

@ -28,7 +28,6 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button <button
appBlurClick
type="submit" type="submit"
class="primary" class="primary"
appA11yTitle="{{ 'save' | i18n }}" appA11yTitle="{{ 'save' | i18n }}"

View File

@ -31,7 +31,6 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button <button
appBlurClick
type="submit" type="submit"
class="primary" class="primary"
appA11yTitle="{{ 'submit' | i18n }}" appA11yTitle="{{ 'submit' | i18n }}"

View File

@ -22,7 +22,6 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button <button
appBlurClick
type="submit" type="submit"
class="primary" class="primary"
appA11yTitle="{{ 'save' | i18n }}" appA11yTitle="{{ 'save' | i18n }}"
@ -43,7 +42,6 @@
<div class="right"> <div class="right">
<button <button
#deleteBtn #deleteBtn
appBlurClick
type="button" type="button"
(click)="delete()" (click)="delete()"
class="danger" class="danger"

View File

@ -326,7 +326,6 @@
<a <a
href="#" href="#"
appStopClick appStopClick
appBlurClick
(click)="usernameTypesLearnMore()" (click)="usernameTypesLearnMore()"
appA11yTitle="{{ 'learnMore' | i18n }}" appA11yTitle="{{ 'learnMore' | i18n }}"
> >
@ -556,7 +555,6 @@
<button <button
type="button" type="button"
class="primary" class="primary"
appBlurClick
*ngIf="comingFromAddEdit" *ngIf="comingFromAddEdit"
(click)="select()" (click)="select()"
appA11yTitle="{{ 'select' | i18n }}" appA11yTitle="{{ 'select' | i18n }}"

View File

@ -3,13 +3,7 @@
<h2 class="sr-only">{{ "filters" | i18n }}</h2> <h2 class="sr-only">{{ "filters" | i18n }}</h2>
<ul> <ul>
<li [ngClass]="{ active: selectedAll }"> <li [ngClass]="{ active: selectedAll }">
<button <button type="button" [attr.aria-pressed]="selectedAll" appStopClick (click)="selectAll()">
type="button"
[attr.aria-pressed]="selectedAll"
appStopClick
appBlurClick
(click)="selectAll()"
>
<i class="bwi bwi-fw bwi-filter" aria-hidden="true"></i>&nbsp;{{ "allItems" | i18n }} <i class="bwi bwi-fw bwi-filter" aria-hidden="true"></i>&nbsp;{{ "allItems" | i18n }}
</button> </button>
</li> </li>
@ -18,7 +12,6 @@
type="button" type="button"
[attr.aria-pressed]="selectedFavorites" [attr.aria-pressed]="selectedFavorites"
appStopClick appStopClick
appBlurClick
(click)="selectFavorites()" (click)="selectFavorites()"
> >
<i class="bwi bwi-fw bwi-star" aria-hidden="true"></i>&nbsp;{{ "favorites" | i18n }} <i class="bwi bwi-fw bwi-star" aria-hidden="true"></i>&nbsp;{{ "favorites" | i18n }}
@ -29,7 +22,6 @@
type="button" type="button"
[attr.aria-pressed]="selectedTrash" [attr.aria-pressed]="selectedTrash"
appStopClick appStopClick
appBlurClick
(click)="selectTrash()" (click)="selectTrash()"
> >
<i class="bwi bwi-fw bwi-trash" aria-hidden="true"></i>&nbsp;{{ "trash" | i18n }} <i class="bwi bwi-fw bwi-trash" aria-hidden="true"></i>&nbsp;{{ "trash" | i18n }}
@ -43,7 +35,6 @@
type="button" type="button"
[attr.aria-pressed]="selectedType === cipherType.Login" [attr.aria-pressed]="selectedType === cipherType.Login"
appStopClick appStopClick
appBlurClick
(click)="selectType(cipherType.Login)" (click)="selectType(cipherType.Login)"
> >
<i class="bwi bwi-fw bwi-globe" aria-hidden="true"></i>&nbsp;{{ "typeLogin" | i18n }} <i class="bwi bwi-fw bwi-globe" aria-hidden="true"></i>&nbsp;{{ "typeLogin" | i18n }}
@ -54,7 +45,6 @@
type="button" type="button"
[attr.aria-pressed]="selectedType === cipherType.Card" [attr.aria-pressed]="selectedType === cipherType.Card"
appStopClick appStopClick
appBlurClick
(click)="selectType(cipherType.Card)" (click)="selectType(cipherType.Card)"
> >
<i class="bwi bwi-fw bwi-credit-card" aria-hidden="true"></i>&nbsp;{{ "typeCard" | i18n }} <i class="bwi bwi-fw bwi-credit-card" aria-hidden="true"></i>&nbsp;{{ "typeCard" | i18n }}
@ -65,7 +55,6 @@
type="button" type="button"
[attr.aria-pressed]="selectedType === cipherType.Identity" [attr.aria-pressed]="selectedType === cipherType.Identity"
appStopClick appStopClick
appBlurClick
(click)="selectType(cipherType.Identity)" (click)="selectType(cipherType.Identity)"
> >
<i class="bwi bwi-fw bwi-id-card" aria-hidden="true"></i>&nbsp;{{ "typeIdentity" | i18n }} <i class="bwi bwi-fw bwi-id-card" aria-hidden="true"></i>&nbsp;{{ "typeIdentity" | i18n }}
@ -76,7 +65,6 @@
type="button" type="button"
[attr.aria-pressed]="selectedType === cipherType.SecureNote" [attr.aria-pressed]="selectedType === cipherType.SecureNote"
appStopClick appStopClick
appBlurClick
(click)="selectType(cipherType.SecureNote)" (click)="selectType(cipherType.SecureNote)"
> >
<i class="bwi bwi-fw bwi-sticky-note" aria-hidden="true"></i>&nbsp;{{ <i class="bwi bwi-fw bwi-sticky-note" aria-hidden="true"></i>&nbsp;{{
@ -89,7 +77,7 @@
<ng-container *ngIf="loaded"> <ng-container *ngIf="loaded">
<div class="heading"> <div class="heading">
<h2>{{ "folders" | i18n }}</h2> <h2>{{ "folders" | i18n }}</h2>
<button appBlurClick (click)="addFolder()" appA11yTitle="{{ 'addFolder' | i18n }}"> <button (click)="addFolder()" appA11yTitle="{{ 'addFolder' | i18n }}">
<i class="bwi bwi-plus bwi-fw" aria-hidden="true"></i> <i class="bwi bwi-plus bwi-fw" aria-hidden="true"></i>
</button> </button>
</div> </div>
@ -103,7 +91,6 @@
type="button" type="button"
[attr.aria-pressed]="selectedFolder && f.node.id === selectedFolderId" [attr.aria-pressed]="selectedFolder && f.node.id === selectedFolderId"
appStopClick appStopClick
appBlurClick
(click)="selectFolder(f.node)" (click)="selectFolder(f.node)"
> >
<i <i
@ -160,7 +147,6 @@
type="button" type="button"
[attr.aria-pressed]="c.node.id === selectedCollectionId" [attr.aria-pressed]="c.node.id === selectedCollectionId"
appStopClick appStopClick
appBlurClick
(click)="selectCollection(c.node)" (click)="selectCollection(c.node)"
> >
<i <i

View File

@ -38,7 +38,6 @@
<button type="button" data-dismiss="modal">{{ "close" | i18n }}</button> <button type="button" data-dismiss="modal">{{ "close" | i18n }}</button>
<div class="right"> <div class="right">
<button <button
appBlurClick
type="button" type="button"
(click)="clear()" (click)="clear()"
class="danger" class="danger"

View File

@ -54,7 +54,6 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button <button
appBlurClick
type="submit" type="submit"
class="primary" class="primary"
appA11yTitle="{{ 'save' | i18n }}" appA11yTitle="{{ 'save' | i18n }}"

View File

@ -56,7 +56,6 @@
type="button" type="button"
#checkPasswordBtn #checkPasswordBtn
class="row-btn btn" class="row-btn btn"
appBlurClick
appA11yTitle="{{ 'checkPassword' | i18n }}" appA11yTitle="{{ 'checkPassword' | i18n }}"
(click)="checkPassword()" (click)="checkPassword()"
[appApiAction]="checkPasswordPromise" [appApiAction]="checkPasswordPromise"
@ -333,7 +332,6 @@
class="box-content-row box-content-row-flex text-default" class="box-content-row box-content-row-flex text-default"
*ngFor="let attachment of cipher.attachments" *ngFor="let attachment of cipher.attachments"
appStopClick appStopClick
appBlurCLick
(click)="downloadAttachment(attachment)" (click)="downloadAttachment(attachment)"
> >
<span class="row-main">{{ attachment.fileName }}</span> <span class="row-main">{{ attachment.fileName }}</span>
@ -378,7 +376,6 @@
</div> </div>
<div class="footer" *ngIf="cipher"> <div class="footer" *ngIf="cipher">
<button <button
appBlurClick
class="primary" class="primary"
(click)="edit()" (click)="edit()"
appA11yTitle="{{ 'edit' | i18n }}" appA11yTitle="{{ 'edit' | i18n }}"
@ -387,7 +384,6 @@
<i class="bwi bwi-pencil bwi-fw bwi-lg" aria-hidden="true"></i> <i class="bwi bwi-pencil bwi-fw bwi-lg" aria-hidden="true"></i>
</button> </button>
<button <button
appBlurClick
class="primary" class="primary"
(click)="restore()" (click)="restore()"
appA11yTitle="{{ 'restore' | i18n }}" appA11yTitle="{{ 'restore' | i18n }}"
@ -396,7 +392,6 @@
<i class="bwi bwi-undo bwi-fw bwi-lg" aria-hidden="true"></i> <i class="bwi bwi-undo bwi-fw bwi-lg" aria-hidden="true"></i>
</button> </button>
<button <button
appBlurClick
class="primary" class="primary"
*ngIf="!cipher?.organizationId && !cipher.isDeleted" *ngIf="!cipher?.organizationId && !cipher.isDeleted"
(click)="clone()" (click)="clone()"
@ -406,7 +401,6 @@
</button> </button>
<div class="right"> <div class="right">
<button <button
appBlurClick
type="button" type="button"
(click)="delete()" (click)="delete()"
class="danger" class="danger"

View File

@ -53,7 +53,6 @@
&:focus:not([disabled]) { &:focus:not([disabled]) {
cursor: pointer; cursor: pointer;
outline: 0;
@include themify($themes) { @include themify($themes) {
background-color: darken(themed("buttonBackgroundColor"), 6%); background-color: darken(themed("buttonBackgroundColor"), 6%);

View File

@ -363,6 +363,16 @@ app-root {
flex-direction: column; flex-direction: column;
height: 100%; height: 100%;
} }
.footer {
button {
margin-right: 10px;
&:last-child {
margin-right: 0;
}
}
}
} }
> .logo { > .logo {
@ -414,14 +424,6 @@ app-root {
border-top-color: themed("borderColor"); border-top-color: themed("borderColor");
} }
button {
margin-right: 10px;
&:last-child {
margin-right: 0;
}
}
.right { .right {
margin-left: auto; margin-left: auto;
display: flex; display: flex;