Skip to content

Cannot navigate system of equations from LaTeX array: ZoomIn errors / incomplete column navigation #535

@brichwin

Description

@brichwin

Summary

When navigating a system of equations as found on Linear Algebra with Applications, 1.1: Solutions and Elementary Operations, Exercise 1.1E7, MathCAT fails in two distinct ways depending on the version used:

  • MathCAT plugin 0.7.5 +NVDA 2025.3.3: An internal error is thrown immediately upon attempting to navigate the expression, blocking all navigation.
  • NVDA 2026.1 beta8 (MathCAT internalized): No error is thrown, and both lines of the expression are read correctly at the top level, but zooming into either row only allows access to the first column — arrowing right from column 1 announces "end of math" even though additional columns exist.

Environment

Component Version
NVDA (original report) 2025.3.3 x86
MathCAT (original report) 0.7.5 (add-on)
NVDA (follow-up) 2026.1 beta8 (2026.1.0.55204)
MathCAT (follow-up) Internalized in NVDA 2026.1 beta8
MathCAT Demo using v0.7.2
Speech rule set en/ClearSpeak, Simple or Enhanced navigation modes
OS Windows 11 24H2 (10.0.26100.8037)

Expression

LaTeX source:

\begin{array}[t]{rlrcr} x & - & 3y & = & 5\\ 2x & + & y & = & 1 \end{array}

MathML (as generated by MathJax 4.1.1):

<math xmlns="http://www.w3.org/1998/Math/MathML">
  <mtable columnspacing="1em" rowspacing="4pt" columnalign="right left right center right" align="baseline 1" data-frame-styles="" framespacing=".5em .125em">
    <mtr>
      <mtd>
        <mi>x</mi>
      </mtd>
      <mtd>
        <mo>&#x2212;</mo>
      </mtd>
      <mtd>
        <mn>3</mn>
        <mi>y</mi>
      </mtd>
      <mtd>
        <mo>=</mo>
      </mtd>
      <mtd>
        <mn>5</mn>
      </mtd>
    </mtr>
    <mtr>
      <mtd>
        <mn>2</mn>
        <mi>x</mi>
      </mtd>
      <mtd>
        <mo>+</mo>
      </mtd>
      <mtd>
        <mi>y</mi>
      </mtd>
      <mtd>
        <mo>=</mo>
      </mtd>
      <mtd>
        <mn>1</mn>
      </mtd>
    </mtr>
  </mtable>
</math>

Steps to Reproduce

  1. Load the MathML above in any context (original web page with MathJax, a standalone HTML5 file, or the MathCAT demo tool), or visit Linear Algebra with Applications, 1.1: Solutions and Elementary Operations, Exercise 1.1E7
  2. Place focus on the expression and enter math navigation mode.
  3. Attempt to navigate into the expression (ZoomIn / arrow keys).

Observed Behavior

NVDA 2025.3.3 + MathCAT 0.7.5 add-on

Navigation fails immediately with the following error logged to the NVDA log:

ERROR - external:globalPlugins.MathCAT.MathCAT.MathCATInteraction.reportFocus
Internal error: With en/ClearSpeak in Simple mode, can't ZoomIn from expression with id 'Mhlh64ol-2'
<math data-from-mathml='math' id='Mhlh64ol-0' data-id-added='true'>
  <system-of-equations data-from-mathml='mtable' align='baseline 1' columnalign='right left right center right' columnspacing='1em' data-frame-styles='' data-latex='\begin{array}[t]{rlrcr} x &amp; + &amp; 2y &amp; = &amp; 0\\ &amp; &amp; y &amp; = &amp; 1 \end{array}' framespacing='.5em .125em' rowspacing='4pt' id='Mhlh64ol-1' data-id-added='true'>
....[OMMITTED - see below for full NVDA Log]
  </system-of-equations>
</math>

Traceback (most recent call last):
  File "C:\Users\mstores\AppData\Roaming\nvda\addons\MathCAT\globalPlugins\MathCAT\MathCAT.py", line 260, in reportFocus
    text: str = libmathcat.DoNavigateCommand("ZoomIn")
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Expand for Full NVDA Log
INFO - __main__ (16:59:28.257) - MainThread (29800):
Starting NVDA version 2025.3.3 x86
INFO - core.main (16:59:29.649) - MainThread (29800):
Config dir: C:\Users\mstores\AppData\Roaming\nvda
INFO - config.ConfigManager._loadConfig (16:59:29.657) - MainThread (29800):
Loading config: C:\Users\mstores\AppData\Roaming\nvda\nvda.ini
INFO - core.main (16:59:39.639) - MainThread (29800):
Windows version: Windows 11 24H2 (10.0.26100.8037) workstation AMD64
INFO - core.main (16:59:39.639) - MainThread (29800):
Using Python version 3.11.9 (tags/v3.11.9:de54cf5, Apr  2 2024, 10:00:00) [MSC v.1938 32 bit (Intel)]
INFO - core.main (16:59:39.639) - MainThread (29800):
Using comtypes version 1.4.11
INFO - core.main (16:59:39.682) - MainThread (29800):
Using configobj version 5.1.0 with validate version 1.0.1
INFO - synthDriverHandler.setSynth (16:59:44.773) - MainThread (29800):
Loaded synthDriver sapi5
WARNING - mathPres.initialize (16:59:44.837) - MainThread (29800):
MathPlayer 4 not available
INFO - core._setUpWxApp (16:59:45.343) - MainThread (29800):
Using wx version 4.2.2 msw (phoenix) wxWidgets 3.2.6 with six version 1.17.0
INFO - brailleInput.initialize (16:59:45.428) - MainThread (29800):
Braille input initialized
INFO - braille.initialize (16:59:45.428) - MainThread (29800):
Using liblouis version 3.34.0
INFO - braille.initialize (16:59:45.429) - MainThread (29800):
Using pySerial version 3.5
INFO - braille.BrailleHandler._setDisplay (16:59:45.444) - MainThread (29800):
Loaded braille display driver 'noBraille', current display has 0 cells.
INFO - core.main (16:59:46.652) - MainThread (29800):
Java Access Bridge support initialized
INFO - UIAHandler.UIAHandler.MTAThreadFunc (16:59:47.563) - UIAHandler.UIAHandler.MTAThread (24788):
UIAutomation: IUIAutomation6
INFO - external:globalPlugins.MathCAT.MathCAT.MathCAT.__init__ (16:59:50.787) - MainThread (29800):
MathCAT 0.7.5 installed. Using rules dir: C:\Users\mstores\AppData\Roaming\nvda\addons\MathCAT\globalPlugins\MathCAT\Rules
INFO - core.main (16:59:51.860) - MainThread (29800):
NVDA initialized
INFO - updateCheck.AutoUpdateChecker._started (16:59:53.617) - MainThread (29800):
Performing automatic update check
ERROR - external:globalPlugins.MathCAT.MathCAT.MathCATInteraction.reportFocus (17:10:12.125) - MainThread (29800):
Internal error: With en/ClearSpeak in Simple mode, can't ZoomIn from expression with id 'Mhlh64ol-2' inside:

  
    
      
        
          x
          +
          
            2
            ⁢
            y
          
          =
          0
        
      
    
    
      
        
           
           
          y
          =
          1
        
      
    
  

Traceback (most recent call last):
File "C:\Users\mstores\AppData\Roaming\nvda\addons\MathCAT\globalPlugins\MathCAT\MathCAT.py", line 260, in reportFocus
text: str = libmathcat.DoNavigateCommand("ZoomIn")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OSError: Internal error: With en/ClearSpeak in Simple mode, can't ZoomIn from expression with id 'Mhlh64ol-2' inside:





x
+

2

y

=
0








y
=
1





No navigation of the expression is possible.

NVDA 2026.1 beta8 (MathCAT internalized)

  • Entering navigation mode and hearing the full expression read aloud works correctly.
  • Both rows of the system are announced correctly at the top level.
  • Zooming into the column level of either row (row 1 or row 2) only allows access to the first <mtd> (column 1).
  • Pressing the right arrow key after column 1 announces "end of math" instead of moving to the next column.
  • This behavior is consistent across:
    • The original web page (MathJax-rendered)
    • A minimal standalone HTML5 file containing only the MathML above
    • The MathCAT demo tool (tested with both the LaTeX source and the MathML directly)

Expected Behavior

After zooming into a row of the system of equations, all the columns should be navigable left-to-right. Right-arrowing from column 1 should move to column 2, and so on through all <mtd> elements in the row.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions