[v4.1.0] Speech output misreads adjacent identifiers (e.g., "F C right arrow up tack F D right arrow" instead of " Ray FC up tack ray FD" )
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 10.9k
- Forks
- 1.2k
- PR merge metrics
- No merged PRs in 30d
Description
[v4.1.0] Speech output misreads adjacent identifiers (e.g.,
. "F C right arrow up tack F D right arrow" instead of "Ray FC up tack ray FD" )
Issue Summary
In MathJax 4.1.0, the speech output (screen‑reader rendering) incorrectly interprets adjacent MathML identifiers in certain cases.
For consecutive elements:
==> read incorrectly as "F C right arrow up tack F D right arrow".
In MathJax v2.7.4, the same expression is read correctly in speech output.
With the newer MathJax v4.1.0, the speech output begins misreading adjacent identifiers, specifically interpreting:
This behavior appears only in v4.x and seems related to changes in the updated Speech Rule Engine integration.
Could you please advise whether any configuration changes, settings, or recommended overrides are available in v4.1.0 to prevent this incorrect interpretation?
Steps to Reproduce:
- Load the HTML example below using MathJax 4.1.0
- Enable speech or screen‑reader output (e.g., ChromeVox, NVDA, JAWS).
- Listen to how MathJax reads the expression.
- Compare the spoken output for below math
Expected Behavior
MathJax should read adjacent MathML identifiers literally and consistently, without injecting extra semantic meaning.
For this expression, the expected reading is something like:
- "Ray FC up tack ray FD" —not “F C right arrow up tack F D right arrow” or similar interpretations.
Technical details:
- MathJax Version: 4.1.0
- Client OS: Windows 10
- Browser: Chrome/Firefox/Edge
I am using the following MathJax configuration:
MathJax = {
...
};
and loading MathJax via
<script src="https://cdn.jsdelivr.net/npm/mathjax@4.1.0/tex-mml-chtml.js"></script>
Supporting information:
HTML test case and screenshot are attached:
Sample HTML File:
FC_right_arrow_up_tack_FD_right_arrow.html
Screenshot:
Request for Guidance
Could you please suggest a MathJax configuration, script, or global setting that would prevent adjacent identifiers—such as above math —from being read incorrectly as
“F C right arrow up tack F D right arrow” in speech output?
Additional Information:
Its works with MathJax v2.7.4 the same expression is read correctly in speech output:
Sample HTML File:
Mathjax-2.7.4-math-speech-issue-Ray-AB.html
Screenshot:
We are specifically looking for a global and dynamic solution, since modifying or rewriting the source MathML is not an option in our environment.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the attached FC_right_arrow_up_tack_FD_right_arrow.html example and reproduce the speech output using MathJax 4.1.0, then compare it with the MathJax 2.7.4 sample. Trace the updated Speech Rule Engine integration and MathJax configuration entry points to determine whether a global override exists; done means identifying a supported configuration or documenting the required source-level fix.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- accessibility
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100