-
Notifications
You must be signed in to change notification settings - Fork 61
Cannot navigate system of equations from LaTeX array: ZoomIn errors / incomplete column navigation #535
Description
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>−</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
- 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
- Place focus on the expression and enter math navigation mode.
- 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 & + & 2y & = & 0\\ & & y & = & 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.