Skip to content

Fix NVDA reading the Unicode hyphen (U+2010) as hyphen (#19114)#19248

Merged
seanbudd merged 1 commit into
nvaccess:masterfrom
sidkar5:fix/u2010-hyphen
Nov 21, 2025
Merged

Fix NVDA reading the Unicode hyphen (U+2010) as hyphen (#19114)#19248
seanbudd merged 1 commit into
nvaccess:masterfrom
sidkar5:fix/u2010-hyphen

Conversation

@sidkar5

@sidkar5 sidkar5 commented Nov 21, 2025

Copy link
Copy Markdown
Contributor

Link to issue number:

Resolves #19114

Summary of the issue:

NVDA reads the Unicode hyphen (U+2010) differently from the standard ASCII hyphen-minus (U+002D). When U+2010 appears inside compound words like "open‑source", NVDA would read it explicitly as “open hyphen source” which is incorrect.

Description of user facing changes:

Compound words containing U+2010 are now read naturally without calling out “hyphen.”

Description of developer facing changes:

Added the following line to source/locale/en/symbols.dic under Standard punctuation/symbols:
hyphen most always
This ensures U+2010 is preserved inside words but not spoken explicitly.

Description of development approach:

U+2010 (Unicode hyphen) previously had level=0 and preserve=0, causing it to be read aloud as “hyphen” inside words. By adding an entry in source/locale/en/symbols.dic: This sets an appropriate level and preserve value so that U+2010 is preserved in compound words but not explicitly spoken.

Testing strategy:

Manually tested examples:

  • open‑source -> "open source" (U+2010)
  • open-source -> "open source" (U+002D)
  • utility‑first -> "utility first" (U+2010)
  • GDPR‑compliant -> "GDPR compliant" (U+2010)
  • out‑of‑the‑box -> "out of the box" (U+2010)

Confirms that NVDA is reading these compound words read correctly, with "hyphen" now not being spoken explicitly in the U+2010 case.

Known issues with pull request:

Note that due to the small nature of this change, I decided not to include a change log entry.
Currently, this change only updates source/locale/en/symbols.dic. It is unclear whether U+2010 should also be added to other locales and may require further review.

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.

Resolves nvaccess#19114

NVDA reads the Unicode hyphen (U+2010) differently from the standard ASCII hyphen-minus (U+002D).
When U+2010 appears inside compound words like "open‑source", NVDA would read it explicitly as “hyphen” which is incorrect.
Compound words containing U+2010 are now read naturally without calling out “hyphen.”
    
Added the following line to source/locale/en/symbols.dic under Standard punctuation/symbols:
hyphen  most  always
This ensures U+2010 is preserved inside words but not spoken explicitly.
    
U+2010 (Unicode hyphen) previously had level=0 and preserve=0, causing it to be read aloud as “hyphen” inside words.
By adding an entry in source/locale/en/symbols.dic:
This sets an appropriate level and preserve value so that U+2010 is preserved in compound words but not explicitly spoken.
    
Manually tested examples:
- open‑source   -> "open source"          (U+2010)
- open-source   -> "open source"          (U+002D)
    
Confirms compound words read correctly.
No other functionality affected.
@seanbudd

Copy link
Copy Markdown
Member

Is this ready for review?

@sidkar5 sidkar5 marked this pull request as ready for review November 21, 2025 03:39
@sidkar5 sidkar5 requested a review from a team as a code owner November 21, 2025 03:39
@sidkar5 sidkar5 requested a review from seanbudd November 21, 2025 03:39
@seanbudd

Copy link
Copy Markdown
Member

Thanks @sidkar5

@seanbudd seanbudd merged commit 9fac0d8 into nvaccess:master Nov 21, 2025
38 of 41 checks passed
@github-actions github-actions Bot added this to the 2026.1 milestone Nov 21, 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.

NVDA reads Unicode hyphen (U+2010) differently compared to hyphen-minus on a keyboard

2 participants