morgan pushed to branch tor-browser-128.4.0esr-14.5-1 at The Tor Project / 
Applications / Tor Browser


Commits:
facc9a28 by Henry Wilkes at 2024-11-13T20:06:19+00:00
fixup! Bug 41600: Add a tor circuit display panel.

Bug 43237: Tweak Tor circuit display panel for screen readers.

- - - - -


3 changed files:

- browser/components/torcircuit/content/torCircuitPanel.css
- browser/components/torcircuit/content/torCircuitPanel.inc.xhtml
- browser/components/torcircuit/content/torCircuitPanel.js


Changes:

=====================================
browser/components/torcircuit/content/torCircuitPanel.css
=====================================
@@ -182,6 +182,6 @@
   margin: 0;
 }
 
-.tor-circuit-button label.tor-circuit-button-description {
+.tor-circuit-button .tor-circuit-button-description {
   margin-block-start: var(--space-xsmall);
 }


=====================================
browser/components/torcircuit/content/torCircuitPanel.inc.xhtml
=====================================
@@ -3,18 +3,20 @@
        aria-labelledby="tor-circuit-heading"
        type="arrow"
        orient="vertical"
-       class="cui-widget-panel panel-no-padding"
-       tabindex="0">
+       class="cui-widget-panel panel-no-padding">
   <!-- Use same semantic structure as #identity-popup and #protections-popup
      - with a role="alertdialog" wrapping a role="document", except we use a
      - "dialog" rather than an "alertdialog".
      - Moreover, since this "dialog" may just be for reading, we also make the
-     - "dialog" part of the focus cycle and receive the initial focus, rather
+     - "document" part of the focus cycle and receive the initial focus, rather
      - than finding the first focusable target within.
      - We do not set "aria-describedby" for this "dialog" because the content
      - is complex, so a flat string would not make sense. -->
-  <vbox id="tor-circuit-panel-document"
-        role="document">
+  <!-- NOTE: Currently Orca fails to read the content of this panel, so the
+     - circuit details are not accessible. This effects mozilla-central as 
well.
+     - See bugzilla bug 1820765 and bugzilla bug 1926374.
+     - The focusable elements are still operable though. -->
+  <vbox id="tor-circuit-panel-document" role="document" tabindex="0">
     <vbox class="panel-header">
       <html:h1 id="tor-circuit-heading"></html:h1>
       <html:div id="tor-circuit-alias" hidden="hidden">
@@ -75,10 +77,12 @@
           class="toolbarbutton-text"
           data-l10n-id="tor-circuit-panel-new-button"
         />
-        <label
+        <!-- NOTE: Use html:span rather than xul:label. Otherwise Orca will
+           - treat this as a label for the dialog. -->
+        <html:span
           id="tor-circuit-new-circuit-description"
           class="tor-circuit-button-description"
-        />
+        ></html:span>
       </vbox>
     </toolbarbutton>
   </vbox>


=====================================
browser/components/torcircuit/content/torCircuitPanel.js
=====================================
@@ -61,6 +61,7 @@ var gTorCircuitPanel = {
 
     this.panel = document.getElementById("tor-circuit-panel");
     this._panelElements = {
+      doc: document.getElementById("tor-circuit-panel-document"),
       heading: document.getElementById("tor-circuit-heading"),
       alias: document.getElementById("tor-circuit-alias"),
       aliasLabel: document.getElementById("tor-circuit-alias-label"),
@@ -138,13 +139,18 @@ var gTorCircuitPanel = {
       this._updateCircuitPanel();
     });
 
-    // Set the initial focus to the panel element itself, which has been made a
-    // focusable target. Similar to dialogs, or webextension-popup-browser.
+    // Set the initial focus to the panel document itself, which has been made 
a
+    // focusable target. Similar to webextension-popup-browser.
+    // Switching to a document should prompt screen readers to enter "browse
+    // mode" and allow the user to navigate the dialog content.
+    // NOTE: We could set the focus to the first focusable child within the
+    // document, but this would usually be the "New circuit" button, which 
would
+    // skip over the rest of the document content.
     this.panel.addEventListener("popupshown", event => {
       if (event.target !== this.panel) {
         return;
       }
-      this.panel.focus();
+      this._panelElements.doc.focus();
     });
 
     // this.toolbarButton follows "identity-button" markup, so is a <xul:box>



View it on GitLab: 
https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/facc9a28f71b7526758f0b40ee3163d7ab486030

-- 
View it on GitLab: 
https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/facc9a28f71b7526758f0b40ee3163d7ab486030
You're receiving this email because of your account on gitlab.torproject.org.


_______________________________________________
tbb-commits mailing list -- tbb-commits@lists.torproject.org
To unsubscribe send an email to tbb-commits-le...@lists.torproject.org

Reply via email to