Skip to content

[v4.1.0] Multiple speech regressions: symbols announced incorrectly in Speech output but correct in AssistiveMML #3497

@sobhanadrink

Description

@sobhanadrink

Issue Summary

In MathJax v4.1.0, some MathML constructs are announced incorrectly when MathJax speech output is enabled.
The same expressions are read correctly when AssistiveMML is enabled, indicating a regression or inconsistency between speech generation and Assistive MathML.

This affects screen reader users relying on MathJax speech (mjx-speech / aria-label) and results in incorrect or missing mathematical meaning.

Environment

  • MathJax version: 4.1.0
  • Browser: Firefix
  • OS: Windows 10
  • Screen reader: NVDA (also reproducible via aria-label inspection)

Steps to Reproduce:

  • Load the sample HTML attached below using MathJax 4.1.0
  • Enable MathJax speech output (default behavior)
  • Listen to the spoken output or inspect mjx-speech aria-label
  • Compare with output when AssistiveMML is enabled

Expected Behavior

  • MathJax speech output should match the semantic meaning conveyed by AssistiveMML.
  • Common mathematical concepts (Delta, greatest integer, hat, given, frown above) should be announced correctly.

Issue 1: Delta announced incorrectly

  • Problem: Δ announced as “normal triangle”
  • Expected: “Delta”
  • AssistiveMML reading (correct): fraction with numerator Delta d and denominator Delta t end fraction equals …

Issue 2: Greatest Integer not announced

  • Problem: White square brackets ⟦ ⟧ are not announced as “greatest integer”
  • Expected: “greatest integer of negative 1.7”
  • AssistiveMML reading (correct): h of negative 1.7 equals left white square bracket negative 1.7 right white square bracket equals negative 2

Issue 3: Hat not announced

  • Problem: f̂ is read as just “f”
  • Expected: “f hat”
  • AssistiveMML reading (correct): f hat of c

Issue 4: “Given” announced as “divides”

  • Problem: | announced as “divides”
  • Expected: “given”
  • AssistiveMML reading (correct): p of open paren b given a close paren

Issue 5: Frown above not announced

  • Problem: Accent ⌢ not announced
  • Expected: “frown above”
  • AssistiveMML reading (correct): quantity p a with frown above

Technical details:

MathJax Version: 4.1.0
Client OS: Windows 10
Browser: Firefox
Screen reader: NVDA
Speech Mode: MathJax speech (mjx-speech)

I am using the following default MathJax configuration

and loading MathJax via

<script src="https://cdn.jsdelivr.net/npm/mathjax@4.1.0/tex-mml-chtml.js"></script>

Supporting information:

  • Minimal reproducible example: Included below
  • No console errors
  • Issue appears limited to MathJax speech generation
  • AssistiveMML consistently produces correct output

Why This Is a Bug

  • AssistiveMML and speech output should be semantically consistent
  • Incorrect speech output results in loss of mathematical meaning

Sample HTML (Minimal Reproducible Example)
Mathjax-4.1.0-math-symbols-speech-output.html

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    Code ExampleContains an illustrative code example, solution, or work-aroundSREv4

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions