Chapter 7 Accessibility issues identified

Issues identified so far (tested with ChromeVox extension on Chromium browser on Linux) and WAVE Accessibility checker.

  1. 1.
    ​

    generates repetitive TITLE tags on navigation links and page titles which results in ChromeVox to e.g. announce this page as “Chapter 7 Accessibility issues identified triangular bullet forall x: a11y triangular bullet forall x: a11y” (LaTeXML bug)

  2. 2.
    ​

    ChromeVox pronounces labels of enumerate lists twice.

  3. 3.
    ​

    ChromeVox does not pronounce plain MathML formulas at all. (Solution: use MathJax with accessibility extensions loaded or selected in context menu.)

  4. 4.
    ​

    ChromeVox does not pronounce formulas unless accessibility option “Speech; Speech Output” is enabled and page reloaded (Possible solution: MathJax configuration file, see https://docs.mathjax.org/en/latest/options/accessibility.html).

  5. 5.
    ​

    Chrome renders plain MathML very badly (Solution: use MathJax or output formulas as HTML).

  6. 6.
    ​

    Not sure how to get ChromeVox to (sometimes, at least) pronounce quotation marks.

  7. 7.
    ​

    ChromeVox says “application” after every formula. (Only happens when formula is selected, not when reading running text—I think it indicates the context menu is clickable. There should be a way to remove the MathJax context menu, but then the accessibility settings of MathJax aren’t configurable.)

  8. 8.
    ​

    SVG images generated by don’t get ALT tags. ChromeVox pronounces labels only. Solutions:

    • ‣
      ​

      Use BookML to convert to SVG files and use \blmDescription command for ALT tag. This works but you may not like the resulting SVG, e.g., text is in Computer Modern.

    • ‣
      ​

      Explicitly wrap the diagrams in a div with an aria-label. This may not work on all screen readers since aria-label is supposed to be used only on interactive elements

    Both of these require BookML and don’t work with plain LaTeXML. (LaTeXML issue)

  9. 9.
    ​

    ChromeVox does not pronounce text ellipsis (…), only math ellipsis (…). (Hack: redefine \dots as \ensuremath{\dots}).

  10. 10.
    ​

    ChromeVox pronounces “dot” ending sentences ending in formulas.

  11. 11.
    ​

    ChromeVox pronounces symbols badly:

    1. (a)
      ​

      ¬ is “normal not sign” should be “logical not”.

    2. (b)
      ​

      ⊢ is “right tack” but “⊬” is “does not prove”.

    3. (c)
      ​

      ⊨ is “true”.

    4. (d)
      ​

      □ is “normal white square” should be “box”.

    5. (e)
      ​

      ◇ is “normal white diamond” should be “diamond”.

    The pronounciation, it seems, is provided by MathJax, which e.g., produces the following MathML code for ¬:

        <math xmlns="http://www.w3.org/1998/Math/MathML" id="p3.m1" alttext="\neg" display="inline" class="ltx_Math">
      <semantics>
        <mi data-semantic-type="identifier" data-semantic-role="unknown" data-semantic-font="normal" data-semantic-id="0" data-semantic-speech="normal not sign" mathvariant="normal">&#xAC;</mi>
        <annotation encoding="application/x-tex">\neg</annotation>
      </semantics>
    </math>
      
    

    The “normal” part in “normal not sign” is a bug in LaTeXML where it convers some symbols to <mi mathvariant="normal"> tags instead of <mo> tags (LaTeXML issue).

  12. 12.
    ​

    When using \mathord{\sim} for a tilde used as not with correct spacing, ChromeVox pronounces “∼⁢A” as “tilde times upper a”. (Solution: use \mathop{\sim}; LaTeXML issue.)

  13. 13.
    ​

    \text inside formulas produces an identifier; ChromeVox reads, e.g., A⁢ and ⁢B as “upper A times and times upper B.”

  14. 14.
    ​

    align’d displayed formulas don’t show up with MathJax rendered as SVG (Bookml issue).

  15. 15.
    ​

    Some things like factoidbox backgrounds and proof scope lines don’t get inverted in night mode (BookML issue)