-
-
Notifications
You must be signed in to change notification settings - Fork 734
Description
Hi,
Discussed on the following NVDA users list thread: https://nvda.groups.io/g/nvda/topic/nvda_2024_2_beta_1_and/106097471
Steps to reproduce:
Prerequisite: Windows 10 or 11:
- Open Notepad or other text editors or move to an edit field.
- Type a number or an expression (say, 12.34).
- Copy the number to the clipboard.
- Open Calculator.
- Press Control+V to paste the copied nubmer into the display field.
Actual behavior:
NVDA does not announce the pasted number/expression completely (for example, NVDA says "12" when pasting 12.34).
Expected behavior:
NVDA announces the pasted number completely.
NVDA logs, crash dumps and other attachments:
None
System configuration
NVDA installed/portable/running from source:
Installed
NVDA version:
alpha-31971,c5954630 x86
Windows version:
Windows 11 23H2 beta (22635.3640)
Name and version of other software in use when reproducing the issue:
Windows Calculator 11.2403.6.0
Other information about your system:
Used as a development workstation
Other questions
Does the issue still occur after restarting your computer?
Yes
Have you tried any other versions of NVDA? If so, please report their behaviors.
Reproducible with 2024.2 (beta) and earlier
If NVDA add-ons are disabled, is your problem still occurring?
Yes
Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?
N/A
Technical information:
When the display field (housing expressions) change, both UIA notification and property/name change events are fired. At the moment NVDA ignores name change event except in specific cases; name change event coming from display field is ignored. When a number or an expression is pasted from the clipboard, NVDA will report whatever the UIA notification says, and unfortunately, the display string reported by this event is incomplete (more so if numbers after the decimal point are present). Unlike notification event, name change event does report the entire number/expression, but NVDA will catch it if the focus is on the display field (effect of selective UIA event registration).
There are at least two possible solutions, none of which will resolve this issue completely:
- Allow limited handling of name change event in the display (calculator results) field. This works if focus is on the display field itself.
- In UIA notification event handler, check both the display string and the field name/value for the element raising the notification. This doesn't work as the name of the element firing this event is set to an empty string.
This requires either a fix from Microsoft to refine Calculator's UIA notification event, or revisiting the decision to set event registration to selective in Windows 11 22H2 and later and subsequent issues identified. If we have no intention to revisit selective event registration decision, then the next best thing would be alerting Microsoft folks about UIA notification display string issue (if Microsoft does say notification event does present the entire number (say, "12.34" instead of "12"), then the ball comes back to our side of the court.
Thanks.