richard pushed to branch tor-browser-115.9.0esr-13.5-1 at The Tor Project / Applications / Tor Browser
Commits:
-
cdfc3cf2
by Henry Wilkes at 2024-03-14T16:38:30+00:00
-
0a704bcc
by Henry Wilkes at 2024-03-14T16:38:30+00:00
-
018c552b
by Henry Wilkes at 2024-03-14T16:38:30+00:00
5 changed files:
- browser/components/torpreferences/content/builtinBridgeDialog.js
- browser/components/torpreferences/content/builtinBridgeDialog.xhtml
- browser/locales/en-US/browser/tor-browser.ftl
- toolkit/modules/TorStrings.sys.mjs
- toolkit/torbutton/chrome/locale/en-US/settings.properties
Changes:
| ... | ... | @@ -57,18 +57,27 @@ const gBuiltinBridgeDialog = { |
| 57 | 57 | const type = radio.value;
|
| 58 | 58 | optionEl.hidden = !TorSettings.builtinBridgeTypes.includes(type);
|
| 59 | 59 | radio.label = typeStrings[type].label;
|
| 60 | - optionEl.querySelector(
|
|
| 60 | + const descriptionEl = optionEl.querySelector(
|
|
| 61 | 61 | ".builtin-bridges-option-description"
|
| 62 | - ).textContent = typeStrings[type].descr;
|
|
| 63 | - optionEl.querySelector(
|
|
| 64 | - ".torPreferences-current-bridge-label"
|
|
| 65 | - ).textContent = TorStrings.settings.currentBridge;
|
|
| 66 | - optionEl
|
|
| 67 | - .querySelector(".bridge-status-badge")
|
|
| 68 | - .classList.toggle(
|
|
| 69 | - "bridge-status-current-built-in",
|
|
| 70 | - type === currentBuiltinType
|
|
| 62 | + );
|
|
| 63 | + descriptionEl.textContent = typeStrings[type].descr;
|
|
| 64 | + const currentBadge = optionEl.querySelector(".bridge-status-badge");
|
|
| 65 | + if (type === currentBuiltinType) {
|
|
| 66 | + const currentLabelEl = optionEl.querySelector(
|
|
| 67 | + ".torPreferences-current-bridge-label"
|
|
| 71 | 68 | );
|
| 69 | + // Described by both the current badge and the full description.
|
|
| 70 | + // These will be concatenated together in the screen reader output.
|
|
| 71 | + radio.setAttribute(
|
|
| 72 | + "aria-describedby",
|
|
| 73 | + `${currentLabelEl.id} ${descriptionEl.id}`
|
|
| 74 | + );
|
|
| 75 | + // Make visible.
|
|
| 76 | + currentBadge.classList.add("bridge-status-current-built-in");
|
|
| 77 | + } else {
|
|
| 78 | + // No visible badge.
|
|
| 79 | + radio.setAttribute("aria-describedby", descriptionEl.id);
|
|
| 80 | + }
|
|
| 72 | 81 | }
|
| 73 | 82 | |
| 74 | 83 | if (currentBuiltinType) {
|
| ... | ... | @@ -9,6 +9,10 @@ |
| 9 | 9 | xmlns:html="http://www.w3.org/1999/xhtml"
|
| 10 | 10 | >
|
| 11 | 11 | <dialog id="torPreferences-builtinBridge-dialog" buttons="accept,cancel">
|
| 12 | + <linkset>
|
|
| 13 | + <html:link rel="localization" href="browser/tor-browser.ftl" />
|
|
| 14 | + </linkset>
|
|
| 15 | + |
|
| 12 | 16 | <script src="chrome://browser/content/torpreferences/builtinBridgeDialog.js" />
|
| 13 | 17 | |
| 14 | 18 | <description id="torPreferences-builtinBridge-description"> </description>
|
| ... | ... | @@ -18,15 +22,13 @@ |
| 18 | 22 | <!-- The radio option is described by both the "Current bridge" label
|
| 19 | 23 | - and the full description. If the "Connected" label is hidden, then
|
| 20 | 24 | - only the latter description should contribute. -->
|
| 21 | - <radio
|
|
| 22 | - aria-describedby="obfs-bridges-current obfs-bridges-description"
|
|
| 23 | - value="obfs4"
|
|
| 24 | - />
|
|
| 25 | + <radio value="obfs4" />
|
|
| 25 | 26 | <html:span class="bridge-status-badge">
|
| 26 | 27 | <html:div class="bridge-status-icon"></html:div>
|
| 27 | 28 | <html:span
|
| 28 | 29 | id="obfs-bridges-current"
|
| 29 | 30 | class="torPreferences-current-bridge-label"
|
| 31 | + data-l10n-id="built-in-dialog-current-bridge-label"
|
|
| 30 | 32 | >
|
| 31 | 33 | </html:span>
|
| 32 | 34 | </html:span>
|
| ... | ... | @@ -39,15 +41,13 @@ |
| 39 | 41 | </vbox>
|
| 40 | 42 | <vbox class="builtin-bridges-option">
|
| 41 | 43 | <hbox>
|
| 42 | - <radio
|
|
| 43 | - aria-describedby="snowflake-bridges-current snowflake-bridges-description"
|
|
| 44 | - value="snowflake"
|
|
| 45 | - />
|
|
| 44 | + <radio value="snowflake" />
|
|
| 46 | 45 | <html:span class="bridge-status-badge">
|
| 47 | 46 | <html:div class="bridge-status-icon"></html:div>
|
| 48 | 47 | <html:span
|
| 49 | 48 | id="snowflake-bridges-current"
|
| 50 | 49 | class="torPreferences-current-bridge-label"
|
| 50 | + data-l10n-id="built-in-dialog-current-bridge-label"
|
|
| 51 | 51 | >
|
| 52 | 52 | </html:span>
|
| 53 | 53 | </html:span>
|
| ... | ... | @@ -60,15 +60,13 @@ |
| 60 | 60 | </vbox>
|
| 61 | 61 | <vbox class="builtin-bridges-option">
|
| 62 | 62 | <hbox>
|
| 63 | - <radio
|
|
| 64 | - aria-describedby="meek-bridges-current meek-bridges-description"
|
|
| 65 | - value="meek-azure"
|
|
| 66 | - />
|
|
| 63 | + <radio value="meek-azure" />
|
|
| 67 | 64 | <html:span class="bridge-status-badge">
|
| 68 | 65 | <html:div class="bridge-status-icon"></html:div>
|
| 69 | 66 | <html:span
|
| 70 | 67 | id="meek-bridges-current"
|
| 71 | 68 | class="torPreferences-current-bridge-label"
|
| 69 | + data-l10n-id="built-in-dialog-current-bridge-label"
|
|
| 72 | 70 | >
|
| 73 | 71 | </html:span>
|
| 74 | 72 | </html:span>
|
| ... | ... | @@ -297,3 +297,10 @@ user-provide-bridge-dialog-result-invite = The following bridges were shared wit |
| 297 | 297 | user-provide-bridge-dialog-result-addresses = The following bridges were entered by you.
|
| 298 | 298 | user-provide-bridge-dialog-next-button =
|
| 299 | 299 | .label = Next
|
| 300 | + |
|
| 301 | +## Built-in bridges dialog.
|
|
| 302 | + |
|
| 303 | +# Label attached to the built-in bridge option that is already in use.
|
|
| 304 | +# The "aria-label" should use the same text, but include some ending punctuation to separate it from the sentence that follows. This is used for screen reader users.
|
|
| 305 | +built-in-dialog-current-bridge-label = Current bridge
|
|
| 306 | + .aria-label = Current bridge. |
| ... | ... | @@ -98,7 +98,6 @@ const Loader = { |
| 98 | 98 | bridgeLocationFrequent: "Frequently selected locations",
|
| 99 | 99 | bridgeLocationOther: "Other locations",
|
| 100 | 100 | bridgeChooseForMe: "Choose a Bridge For Me…",
|
| 101 | - currentBridge: "Current bridge",
|
|
| 102 | 101 | remove: "Remove",
|
| 103 | 102 | bridgeDisableBuiltIn: "Disable built-in bridges",
|
| 104 | 103 | copied: "Copied!",
|
| ... | ... | @@ -33,7 +33,6 @@ settings.bridgeLocationFrequent=Frequently selected locations |
| 33 | 33 | settings.bridgeLocationOther=Other locations
|
| 34 | 34 | settings.bridgeChooseForMe=Choose a Bridge For Me…
|
| 35 | 35 | |
| 36 | -settings.currentBridge=Current bridge
|
|
| 37 | 36 | settings.remove=Remove
|
| 38 | 37 | settings.bridgeDisableBuiltIn=Disable built-in bridges
|
| 39 | 38 | settings.copied=Copied!
|