Skip to content

Set the default MathCAT Braille code to AsciiMATH#19232

Closed
codeofdusk wants to merge 2 commits into
nvaccess:masterfrom
codeofdusk:mathcat-no-nemeth
Closed

Set the default MathCAT Braille code to AsciiMATH#19232
codeofdusk wants to merge 2 commits into
nvaccess:masterfrom
codeofdusk:mathcat-no-nemeth

Conversation

@codeofdusk

@codeofdusk codeofdusk commented Nov 18, 2025

Copy link
Copy Markdown
Contributor

Link to issue number:

Split from #19227.

Summary of the issue:

"Nemeth" is unsuitable as a default Braille output code, because:

  • Although Unified English Braille is the standard globally for English texts, mathematics codes in the English-speaking world have evolved very differently in different places. A vocal minority of North American Braille users prefer the Nemeth code alongside UEB due to its compactness compared to other systems (especially important on refreshable Braille displays with limited real estate) and/or for traditional or philosophical reasons. Other users find the Nemeth number representation system and modal nature confusing and prefer a system that represents symbols used in mathematical contexts in the same manner as they are represented in other contexts.
  • For non-English languages (for instance, various mainland European languages), Nemeth symbols conflict with numbers or other punctuation symbols, making the reading experience potentially misleading.
  • Nemeth notation is relatively unknown outside Canada and the US, and is likely to be especially unknown in developing countries.

Description of how this pull request fixes the issue:

This PR changes the default MathCAT Braille code to ASCIIMath.

ASCIIMath uses the punctuation set selected by the user’s existing output table. This has several advantages:

  • It improves clarity for users, since output is based on the symbols typically used by their language’s Braille table.
  • It makes logs easier to read for developers and users who do not know Braille, since literal ASCII text for each mathematical expression (rather than a specialized Braille encoding) is sent to LibLouis.
  • It is more approachable for users who have not yet learned a specialized mathematics code.
  • It avoids making a potentially controversial default choice that is unlikely to suit all users.

Nemeth, UEB, and other specialized codes remain available as options, and will likely be selected by many users, but which specialized code each user selects will depend highly on their background and preferences.

Testing strategy:

Tested that output appears as expected.

Known issues with pull request:

We could, for some languages, possibly set a smarter default (for instance, CMU is uncontroversial in the Spanish blind community), but that could be done (or not done) at a future time. ASCIIMath is never completely wrong, even if it is not always the optimal choice.

Code Review Checklist:

  • [n/a] Documentation: (out-of-scope, see Fixup MathCAT settings #19227)
    • 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.

Copilot AI review requested due to automatic review settings November 18, 2025 03:23
@codeofdusk codeofdusk requested a review from a team as a code owner November 18, 2025 03:23
@codeofdusk codeofdusk requested a review from seanbudd November 18, 2025 03:23

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR changes the default MathCAT Braille code from "Nemeth" to "ASCIIMath" to provide a more universally accessible default for math presentation in braille. ASCIIMath uses the punctuation set from the user's existing output table, making it more language-agnostic and approachable for users who haven't learned specialized mathematics codes. Nemeth, UEB, and other specialized codes remain available as user-selectable options.

Key Changes

  • Updated default brailleCode configuration value from "Nemeth" to "ASCIIMath"

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread source/config/configSpec.py Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@codeofdusk

Copy link
Copy Markdown
Contributor Author

CC @RyanMcCleary, @seanbudd.

@seanbudd

Copy link
Copy Markdown
Member

@codeofdusk since we know CMU is uncontroversial, can we please use it as default for Spanish?

If we build the infrastructure now, it means we can slowly add new defaults as appropriate for different languages.

Can we change the default option to f"Default for language ({defaultForLanguage})"?
Also add logic to default to ASCIIMath for all languages without defaults set.

I would also encourage emailing the translators email list to get some feedback on other logical defaults

@seanbudd

Copy link
Copy Markdown
Member

Vietnam, Finnish and Swedish options also exist for sensible defaults

@codeofdusk

codeofdusk commented Nov 18, 2025

Copy link
Copy Markdown
Contributor Author

since we know CMU is uncontroversial, can we please use it as default for Spanish?

@seanbudd I'll open an issue (I'd much rather do this in a follow-up) and might not get to it before 2026.1.

@seanbudd

Copy link
Copy Markdown
Member

@codeofdusk I'm not happy with accepting this PR as-is. If we are going to fix it, let's fix it right

@seanbudd

Copy link
Copy Markdown
Member

I would also suggest UEB as the default for English rather than ASCIIMath

@codeofdusk

Copy link
Copy Markdown
Contributor Author

@seanbudd I've opened #19233.

@seanbudd

Copy link
Copy Markdown
Member

Thanks @codeofdusk for opening #19233, after discussing internally, we are closing this PR over a proper fix inline with that issue

@seanbudd seanbudd closed this Nov 19, 2025
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.

3 participants