Skip to content

Follow-up #17905: Speak typed characters in classic Calculator when echo mode is 'Only in edit controls'.#17913

Merged
seanbudd merged 4 commits into
nvaccess:betafrom
cary-rowen:fixWin32Calc
Apr 8, 2025
Merged

Follow-up #17905: Speak typed characters in classic Calculator when echo mode is 'Only in edit controls'.#17913
seanbudd merged 4 commits into
nvaccess:betafrom
cary-rowen:fixWin32Calc

Conversation

@cary-rowen

@cary-rowen cary-rowen commented Apr 7, 2025

Copy link
Copy Markdown
Contributor

Link to issue number:

Addresses #17670 for the classic Windows Calculator. Follow-up to PR #17905.

Summary of the issue:

Similar to the issue observed in the modern Windows Calculator, the classic Windows Calculator's display area does not consistently trigger character echo when NVDA's "Speak typed characters" setting is configured to 'Only in edit controls'.

Description of user facing changes

Users will now hear typed characters echoed when typing into the display field of the classic Windows Calculator, even when the "Speak typed characters" option is set to 'Only in edit controls'.

Description of development approach

This change mirrors the approach taken for the modern Calculator in PR #17905.
The event_typedCharacter method within the Display overlay class (which specifically targets the display controls of the classic Calculator in calc.py) is modified. When this event occurs and the original speakTypedCharacters mode is EDIT_CONTROLS, the mode is temporarily switched to ALWAYS before calling the parent class's event handler. The original mode is then restored in a finally block.

Testing strategy:

Manual testing with the classic Windows Calculator (Windows 10 LTSC, calc.exe):

  1. Set NVDA's "Speak typed characters" setting (Keyboard Settings) to 'Only in edit controls'.
  2. Open the classic Calculator (calc.exe).
  3. Type numbers and operators (e.g., 1, +, 2, *, 3, =).
  4. Confirm each typed character is spoken.
  5. Change the setting to 'Always' and confirm characters are spoken.
  6. Change the setting to 'Off' and confirm characters are not spoken.

Known issues with pull request:

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

@cary-rowen cary-rowen requested a review from a team as a code owner April 7, 2025 22:26
@cary-rowen cary-rowen requested a review from seanbudd April 7, 2025 22:26
@cary-rowen cary-rowen changed the base branch from master to beta April 7, 2025 22:27
@seanbudd seanbudd added the conceptApproved Similar 'triaged' for issues, PR accepted in theory, implementation needs review. label Apr 8, 2025
Comment thread source/appModules/calc.py Outdated
Comment thread source/appModules/calc.py Outdated
Comment thread source/appModules/calc.py Outdated

@seanbudd seanbudd left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks @cary-rowen

@seanbudd seanbudd merged commit dfb442d into nvaccess:beta Apr 8, 2025
@github-actions github-actions Bot added this to the 2025.2 milestone Apr 8, 2025
@burmancomp

Copy link
Copy Markdown
Contributor

What do you think about supporting classic calculators which can be downloaded from winaero. For example:

https://winaero.com/download-old-classic-calculator-for-windows-11/

@josephsl

josephsl commented Apr 9, 2025

Copy link
Copy Markdown
Contributor

Hi,

I think not - I think we should target apps preinstalled on Windows, especially apps powered by more modern technologies. We could say that Winaero repackaged apps are useful, and this is where add-ons can come in to offer additional support.

Thanks.

@burmancomp

Copy link
Copy Markdown
Contributor

I realized I can use profile.

@seanbudd seanbudd modified the milestones: 2025.2, 2025.1 Apr 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

conceptApproved Similar 'triaged' for issues, PR accepted in theory, implementation needs review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants