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)