Chapter 7 Accessibility issues identified
Issues identified so far (tested with ChromeVox extension on Chromium browser on Linux) and WAVE Accessibility checker.
-
1.
LATExml 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.
ChromeVox pronounces labels of
enumerate
lists twice. -
3.
ChromeVox does not pronounce plain MathML formulas at all. (Solution: use MathJax with accessibility extensions loaded or selected in context menu.)
-
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.
Chrome renders plain MathML very badly (Solution: use MathJax or output formulas as HTML).
-
6.
Not sure how to get ChromeVox to (sometimes, at least) pronounce quotation marks.
-
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.
SVG images generated by LATExml 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 anaria-label
. This may not work on all screen readers sincearia-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.
ChromeVox does not pronounce text ellipsis (…), only math ellipsis (). (Hack: redefine
\dots
as\ensuremath{\dots}
). -
10.
ChromeVox pronounces “dot” ending sentences ending in formulas.
-
11.
ChromeVox pronounces symbols badly:
-
(a)
is “normal not sign” should be “logical not”.
-
(b)
is “right tack” but “” is “does not prove”.
-
(c)
is “true”.
-
(d)
is “normal white square” should be “box”.
-
(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">¬</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). -
(a)
-
12.
When using
\mathord{\sim}
for a tilde used as not with correct spacing, ChromeVox pronounces “” as “tilde times upper a”. (Solution: use\mathop{\sim}
; LaTeXML issue.) -
13.
\text
inside formulas produces an identifier; ChromeVox reads, e.g., as “upper A times and times upper B.” -
14.
align
’d displayed formulas don’t show up with MathJax rendered as SVG (Bookml issue). -
15.
Some things like
factoidbox
backgrounds and proof scope lines don’t get inverted in night mode (BookML issue)