Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows 10 Calculator: repeated typed character announcement if speak typed characters is enabled #9428

Closed
josephsl opened this issue Apr 1, 2019 · 0 comments · Fixed by #9429
Milestone

Comments

@josephsl
Copy link
Collaborator

josephsl commented Apr 1, 2019

Hi,

Technical discussion from #5760, but way different:

Steps to reproduce:

  1. Start Windows 10 Calculator.
  2. From Calculator, enable speak typed characters (NvDA+number row 2).
  3. Enter some calculations.

Actual behavior:

NVDA may repeat typed characters twice.

Expected behavior:

NVDA does not repeat typed characters.

System configuration

NVDA installed/portable/running from source:

Installed

NVDA version:

Alpha.16982

Windows version:

Windows 10 Version 1903 (build 18362)

Name and version of other software in use when reproducing the issue:

Calculator

Other information about your system:

Main development computer for Windows 10 App Essentials add-on

Other questions

Does the issue still occur after restarting your PC?

Yes

Have you tried any other versions of NVDA?

Yes - 2019.1, 2018.4.1

Technical information:

This is caused by UIA notification event from Calculator: whenever characters are entered (at least for calculations), Calculator asks UIA to fire notification event with display string containing current expression. This results in repetitions. In older Calculator versions, live region change event was responsible for repetitions.

Thanks.

josephsl added a commit to josephsl/nvda that referenced this issue Apr 1, 2019
…ess#9428.

Calculator raises UIA notification event (live region change event in older releases and in some screens) to communication progress and results of calculations. However, this results in repetitoins if typed character announcement is turned on. Thus, as part of this new app module, suppress repetitive announcements if possible.
josephsl added a commit to josephsl/nvda that referenced this issue Jul 29, 2019
…ess#9428.

Calculator raises UIA notification event (live region change event in older releases and in some screens) to communication progress and results of calculations. However, this results in repetitoins if typed character announcement is turned on. Thus, as part of this new app module, suppress repetitive announcements if possible.
josephsl added a commit to josephsl/nvda that referenced this issue Aug 14, 2019
…uld not allow NVDA to repeatedly announce calculation results or expressions. Re nvaccess#9428.

With the advent of alwasy on top i.e. compact overlay mode in Calculator, additional UIA automation ID's were added for calculation results and expressions in overlay mode. Because of ine length concerns, the additional ID's, together with the existing ones, are now housed inside a list of known ID's causing NVDA to announce expressions repeatedly. Not only this makes it easy to add more ID's in the future (either through NVDA Core or add-ons), it improves readability for name change and notification event handler methods (and keeps the lines short).
josephsl added a commit to josephsl/nvda that referenced this issue Dec 17, 2019
josephsl added a commit to josephsl/nvda that referenced this issue Dec 17, 2019
josephsl added a commit to josephsl/nvda that referenced this issue Jan 2, 2020
feerrenrut pushed a commit that referenced this issue Nov 30, 2020
Fixes #9428.

Calculator raises UIA notification event (live region change event in older releases and in some screens) to communication progress and results of calculations. However, this results in repetitions if typed character announcement is turned on. Thus, as part of this new app module, suppress repetitive announcements if possible.

* Windows 10 Calculator: remove live region handler.

In the old days of Calculator, live regions were used from various places, including calculator expressions, unit conversion and other places. Now that uIA notification event and some name change events will take care of this, remove live region change event support code (and also becasue NVDA itself will announce live regions if possible).

* Calculator: updates to notification and name change event handling due to UI changes in 2019.

* Calculator: gather a list of UIA automation ID's for objects that should not allow NVDA to repeatedly announce calculation results or expressions. Re #9428.

With the advent of always on top i.e. compact overlay mode in Calculator, additional UIA automation ID's were added for calculation results and expressions in overlay mode. Because of line length concerns, the additional ID's, together with the existing ones, are now housed inside a list of known ID's causing NVDA to announce expressions repeatedly. Not only this makes it easy to add more ID's in the future (either through NVDA Core or add-ons), it improves readability for name change and notification event handler methods (and keeps the lines short).

* Calculator: support always on top (compact overlay) mode.

In August 2019, Calculator app (preview) added always on top mode. As the name suggests, this puts standard calculator on top of other windows. Because of this, UIA tree has been changed, so work with old and new tree structure.

* Calculator: announce more notifications except display updated activity ID.

Display updated activity ID should be ignored unless needed, as it causes repetitions when entering calculations while speak typed characters is on.
@nvaccessAuto nvaccessAuto added this to the 2020.4 milestone Nov 30, 2020
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 a pull request may close this issue.

2 participants