Skip to content

Add visual highlighting for web math navigation#20372

Draft
RyanMcCleary wants to merge 14 commits into
nvaccess:masterfrom
RyanMcCleary:highlight-math
Draft

Add visual highlighting for web math navigation#20372
RyanMcCleary wants to merge 14 commits into
nvaccess:masterfrom
RyanMcCleary:highlight-math

Conversation

@RyanMcCleary

@RyanMcCleary RyanMcCleary commented Jun 21, 2026

Copy link
Copy Markdown
Contributor

Link to issue number:

Partially addresses #19191. To fully resolve that issue, we would want to implement highlighting for Microsoft Word as well.

Summary of the issue:

When navigating math, there is currently no visual highlighting showing the focused subpart. Visual highlighting is very useful for low-vision users and can make it easier to use speech and magnification together while reading math.

Description of user facing changes:

Adds a new highlighter for math, which highlights the currently focused subpart of the math being navigated in orange. I also considered making this part of the browse mode highlighter, and I'm still definitely open to suggestions on this front. I decided to leave it as a separate highlighter because math navigation is distinct from browse mode, even though it's usually activated from browse mode. I chose orange as the highlighting color because it's easier for me to see on a white background than yellow.

Description of developer facing changes:

Adds a new math highlight context to the vision framework and wires MathCAT navigation updates to it. The MathCATInteraction class now takes a source object as a constructor parameter (the source object is the root of the MathML being interacted with). A new file source\mathPres\MathCAT\navNodeMapping.py was also added. This file contains functions that are used to map from MathCAT's current navigation node to the corresponding IA2 object.

Description of development approach:

Testing strategy:

Known issues with pull request:

Code Review Checklist:

  • Documentation:
    • Change log entry
    • User Documentation
    • Developer / Technical Documentation
    • Context sensitive help for GUI changes
  • Testing:
    • Unit tests
    • System (end to end) tests
    • Manual testing
  • UX of all users considered:
    • Speech
    • Braille
    • Low Vision
    • Different web browsers
    • Localization in other languages / culture than English
  • API is compatible with existing add-ons.
  • Security precautions taken.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant