Skip to content
This repository was archived by the owner on Jun 23, 2023. It is now read-only.

Commit 08bd789

Browse files
authored
Merge pull request #373 from mozilla/aria-connecting-states
Add aria-label for all the connecting states without text. Fixes #368
2 parents 9a930fa + 9e97367 commit 08bd789

11 files changed

Lines changed: 23 additions & 12 deletions

File tree

src/_locales/en_US/messages.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@
2222
"heroProxyOn": {
2323
"message": "ON"
2424
},
25+
"heroProxyLogin": {
26+
"message": "Login"
27+
},
28+
"heroProxyConnecting": {
29+
"message": "Connecting"
30+
},
2531

2632
"injectedModalHeading": {
2733
"message": "Firefox Private Network"

src/view.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,16 @@ export class View {
7373
settingsElement.toggleAttribute("hidden", !shouldShow);
7474
}
7575

76-
static setState(state, stateButtonText) {
76+
static setState(state, stateButtonSettings = {}) {
7777
let stateElement = document.getElementById("state");
7878
stateElement.setAttribute("data-state", state);
7979
let stateButtonElement = document.getElementById("stateButton");
80-
stateButtonElement.textContent = stateButtonText || "";
80+
stateButtonElement.textContent = stateButtonSettings.text || "";
81+
if (stateButtonSettings.label) {
82+
stateButtonElement.setAttribute("aria-label", stateButtonSettings.label);
83+
} else {
84+
stateButtonElement.removeAttribute("aria-label");
85+
}
8186
}
8287

8388
// To be overwritten with a string for the header

src/views/connecting.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {View} from "../view.js";
33
// This is the first view to be shown.
44
class ViewConnecting extends View {
55
show() {
6-
View.setState("connecting");
6+
View.setState("connecting", {label: this.getTranslation("heroProxyConnecting")});
77
View.showToggleButton(true);
88

99
return escapedTemplate`

src/views/error.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import {View} from "../view.js";
22

33
class ViewError extends View {
44
show(data) {
5-
View.setState("disabled", this.getTranslation("heroProxyOff"));
5+
View.setState("disabled", {text: this.getTranslation("heroProxyOff")});
66
return escapedTemplate`
77
<p>
88
${this.getTranslation(data)}

src/views/exempt.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import {View} from "../view.js";
22

33
class ViewExemptTab extends View {
44
show(proxyState) {
5-
View.setState("disabled", this.getTranslation("heroProxyOff"));
5+
View.setState("disabled", {text: this.getTranslation("heroProxyOff")});
66
View.showToggleButton(false);
77

88
return escapedTemplate`

src/views/loading.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {View} from "../view.js";
33
// This is the first view to be shown.
44
class ViewLoading extends View {
55
show() {
6-
View.setState("connecting");
6+
View.setState("connecting", {label: this.getTranslation("heroProxyConnecting")});
77
return escapedTemplate`
88
<p>
99
${this.getTranslation("viewLoading")}

src/views/login.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {View} from "../view.js";
33
// Login view.
44
class ViewLogin extends View {
55
show(proxyState) {
6-
View.setState("login");
6+
View.setState("login", {label: this.getTranslation("heroProxyLogin")});
77

88
let text;
99
if (proxyState === PROXY_STATE_UNAUTHENTICATED) {

src/views/main.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ class ViewMain extends View {
3636
this.proxyEnabled = data.proxyState === PROXY_STATE_ACTIVE;
3737

3838
if (this.proxyEnabled) {
39-
View.setState("enabled", this.getTranslation("heroProxyOn"));
39+
View.setState("enabled", {text: this.getTranslation("heroProxyOn")});
4040
} else {
41-
View.setState("disabled", this.getTranslation("heroProxyOff"));
41+
View.setState("disabled", {text: this.getTranslation("heroProxyOff")});
4242
}
4343
}
4444

src/views/offline.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import {View} from "../view.js";
22

33
class ViewOffline extends View {
44
show() {
5-
View.setState("disabled", this.getTranslation("heroProxyOff"));
5+
View.setState("disabled", {text: this.getTranslation("heroProxyOff")});
66
View.hideToggleButton();
77

88
return escapedTemplate`<p>

src/views/otherInUse.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import {View} from "../view.js";
22

33
class ViewOtherInUse extends View {
44
show() {
5-
View.setState("disabled", this.getTranslation("heroProxyOff"));
5+
View.setState("disabled", {text: this.getTranslation("heroProxyOff")});
66
View.hideToggleButton();
77

88
return escapedTemplate`

0 commit comments

Comments
 (0)