Bug 1576175 - Move focus handling to login-item and forward focus to the breach alert when it is visible during tabbing. r=MattN

Differential Revision: https://phabricator.services.mozilla.com/D44709

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Jared Wein 2019-09-04 21:36:13 +00:00
parent da8b128c32
commit 3dfad7cdc4
2 changed files with 16 additions and 9 deletions

View File

@ -88,6 +88,21 @@ export default class LoginItem extends HTMLElement {
window.addEventListener("AboutLoginsShowBlankLogin", this);
}
focus() {
if (!this._breachAlert.hidden) {
const breachAlertLink = this._breachAlert.querySelector(
".breach-alert-link"
);
breachAlertLink.focus();
return;
}
if (!this._editButton.disabled) {
this._editButton.focus();
return;
}
this._deleteButton.focus();
}
async render() {
[this._errorMessage, this._breachAlert].forEach(el => {
el.hidden = true;

View File

@ -427,15 +427,7 @@ export default class LoginList extends HTMLElement {
let loginItem = document.querySelector("login-item");
if (loginItem) {
event.preventDefault();
let editButton = loginItem.shadowRoot.querySelector(".edit-button");
if (editButton && !editButton.disabled) {
editButton.focus();
return;
}
let deleteButton = loginItem.shadowRoot.querySelector(
"button.delete-button"
);
deleteButton.focus();
loginItem.focus();
}
return;
} else if (this._list != this.shadowRoot.activeElement) {