Skip to content

Comments

Fix pronunciation of combining circumflex#18325

Merged
seanbudd merged 1 commit intomasterfrom
fixNormalizes
Jun 25, 2025
Merged

Fix pronunciation of combining circumflex#18325
seanbudd merged 1 commit intomasterfrom
fixNormalizes

Conversation

@SaschaCowley
Copy link
Member

Link to issue number:

Closes #17725

Summary of the issue:

NVDA speaks the combining circumflex character (U+0302) as "normalizes". While this is its Unicode name, it is unintuitive to users.

Description of user facing changes:

U+0302 is now pronounced as "hat" in English.

Description of developer facing changes:

None

Description of development approach:

Replaced "normalizes" with "hat" in source/locale/en/symbols.dic.

Testing strategy:

Ran NVDA and had it read "ê or ô".

Known issues with pull request:

"Hat" was chosen as a suitable replacement for "normalizes" as it is brief but part of established nomenclature (similar to the choice of "bang" for "!"). However, this may confuse users, as, when unicode normalization is enabled, when reading by character, the speech output will most likely not match that when navigating by a larger unit. For instance:

  • eSpeak (Max): "e circumflex normalized"
  • SAPI4 (Microsoft Mary/Mike/Sam): "e normalized"
  • SAPI5 (Microsoft Hazel/David/Zira): "e with circumflex normalized"
  • OneCore (Microsoft George/David/Catherine/Hazel/Zira/Susan/Mark/James): "e normalized"

Using "circumflex" could be a viable alternative that would partially mitigate this potential confusion.

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.

@coderabbitai summary

Copilot AI review requested due to automatic review settings June 25, 2025 02:46
@SaschaCowley SaschaCowley requested a review from a team as a code owner June 25, 2025 02:46
@SaschaCowley SaschaCowley requested a review from seanbudd June 25, 2025 02:46
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This pull request adjusts the pronunciation of the combining circumflex in the English locale, changing it from "normalizes" to "hat" to provide a more intuitive speech output.

  • Replaced "normalizes" with "hat" in source/locale/en/symbols.dic
  • Updates the pronunciation mapping for the combining circumflex
Comments suppressed due to low confidence (1)

source/locale/en/symbols.dic:273

  • [nitpick] While 'hat' is a brief and established term, consider clarifying or documenting the choice given that it may lead to confusion when users experience differing pronunciations with unicode normalization enabled. It might be worth evaluating whether 'circumflex' provides a clearer description for all voices.
̂	hat	none

@Adriani90
Copy link
Collaborator

Extending unicode normalization also for navigation by greater unit than character would also minimize thes inconsistency.
In that case, people using unicode normalization would hear „circumflex“, while people who turn it of would hear „hat“.

@SaschaCowley
Copy link
Member Author

@Adriani90 unicode normalization is already enabled for navigation by units larger than character, but the speech output is different. I'm not fully across the normalization code, so I can't tell you exactly why we get different output when navigating by character vs other units. Perhaps @LeonarddeR can shed some light on this?

@seanbudd seanbudd merged commit c2354c7 into master Jun 25, 2025
17 checks passed
@seanbudd seanbudd deleted the fixNormalizes branch June 25, 2025 05:23
@github-actions github-actions bot added this to the 2025.2 milestone Jun 25, 2025
@LeonarddeR
Copy link
Collaborator

From my memory, behavior should be as follows:

  1. Character navigation, always announce normalized, even when a character is composite
  2. Higher unit then character announces normalized when word navigation moves to a word that contains only one character that is normalized, otherwise it will still normalize bbut won't announce normalized.

@Adriani90
Copy link
Collaborator

Adriani90 commented Jun 25, 2025 via email

@LeonarddeR
Copy link
Collaborator

The primary goal of unicode normalisation for NVDA is to allow pronouncing characters that are otherwise unpronounceable or can't be brailled. However, if there is a definition of a character, that one should take precedence as it is most likely more accurate than the normalized result.

@Adriani90
Copy link
Collaborator

Adriani90 commented Jun 25, 2025 via email

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 incorrectly speaks 'normalizes' for characters with combining circumflex (ê, ô)

4 participants