Skip to content

MathJax v4.1.1

Latest

Choose a tag to compare

@dpvc dpvc released this 19 Feb 21:55

This is mainly a bug fix release that resolves a number of issues from v4.1.0. The key fixes include:

  • In v4.1.0 we introduced movable and sizable dialog boxes (e.g., for "About MathJax" or "Show Math As..." dialogs), but the CSS for the positioning was incorrect and could cause the page to scroll to the top or to position the dialog outside the of the visible portion of the page when a dialog is opened. That CSS is fixed in this version.

  • Version 4.1.0 introduced a dark-mode color scheme for MathJax when the system dark-mode is selected by the user. This caused two issue:

    • If the page doesn't itself have dark-mode coloring, then selecting an expression for exploration could cause the background and foreground colors to not have enough contrast.
    • When a dialog was opened, the link colors for the rest of the page could be altered accidentally.

    In order to resolve the first of these issues, v4.1.1 includes a new ui/no-dark-mode extension that can be added to the loader.load array in your page's Mathjax configuration; this will prevent the dark-mode color scheme from being used for the explorer and dialog boxes (thought he MathJax contextual menu will still use dark mode colors).

    The second issue is resolved in 4.1.1 by adding proper prefixes to the CSS for the links used in dark-mode dialogs.

  • The expression explorer in v4 can be started by clicking on a term in an expression. If the expression includes HTML elements like text input areas, checkboxes, drop-down menus, etc., this feature interfered with the user's ability to interact with those items. Version 4.1.1 allows clicks and keystrokes to pass through to those HTML elements, and allows the user to tab to focusable elements within the expression. When exploring an expression that contains focusable elements, pressing the enter or tab key will focus the first item focusable within the currently selected sub-expression.

    A similar issue was that mouse clicks were being stopped but the explorer, so were not bubbling up to elements containing math expressions. For example, a <button> or <label> tag would not receive mouse clicks if they were on math contained within the tag. Version 4.1.1 now passes mouse events on to the containing elements.

  • V4.1.1 contains a number of improvements to accessibility and speech output. For full details see SRE release notes for beta.4 and beta.5. In summary

    • Clearer semantic distinction of fences with reduced omissions in clearspeak and explicit handling of floor and ceiling functions (English only for the moment).
    • Improved handling of stacked expressions with better speech output for above and below expressions, as well as explicit output of empty bases, where appropriate, and collapsing of scripts where they are visually indistinguishable.
    • Unwrapping of singleton lines into their contained expressions. A single line makes sense if tagged or in the context of a matrix or case statement but not on its own.
    • Label prefixes for clearspeak are now spoken according to the actual multi-line preference.
    • Distinguishe between simple empty elements and phantom elements that lead to spaces. (This could be improved in the future.)
    • Fix issues with missing phantom elements in mfenced elements.
    • Improves semantic treatment of empty script elements.
  • Speech was not being properly added to in-line expression that include potential line breaks (for automatic in-line breaking) in SVG output. This is fixed in v4.1.1.

Additional fixes and the details for the various changes are described in the links below.


User Interface Changes

Output

Miscellaneous

  • Update windows paths to include file:// in node applications and fix tests. (mathjax/MathJax#3481) (#1404, #1418)

  • Add version number to default font URLs on jsdelivr. (#1423)

  • Use serializeXML() rather than outerHTML() in README example code. (#1405)

  • Simplify component copy configuration blocks. (#1406)

  • Update components compilation to use pnpm. (#1413)

  • Update handling of CSS border parts like border-color and add tests for that. (mathjax/MathJax#3490) (#1408)