-
-
Notifications
You must be signed in to change notification settings - Fork 631
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
NVDA is not announcing Item Status property changed events in WPF #13973
Comments
Hi, item status property event is defined in NVDA but there is no default implementation that works across apps (item status is retrieved as part of UIA object description getter in NVDA); this event was added specifically to support Action Center (quick settings in Windows 11) item changes. I have a feeling that this issue can be reproduced quite easily, and once I find it, I’ll publish a workaround in the form of an add-on. Thanks.
|
Maybe the reporter should consider adding your windows essentials add on to
start with. NO idea if it will help in this case as its outside of my
experience, but its a good start.
Brian
…--
***@***.***
Sent via blueyonder.(Virgin media)
Please address personal E-mail to:-
***@***.***, putting 'Brian Gaff'
in the display name field.
----- Original Message -----
From: "Joseph Lee" ***@***.***>
To: "nvaccess/nvda" ***@***.***>
Cc: "Subscribed" ***@***.***>
Sent: Tuesday, August 02, 2022 12:51 PM
Subject: Re: [nvaccess/nvda] NVDA is not announcing Item Status property
changed events in WPF (Issue #13973)
Hi, item status property event is defined in NVDA but there is no default
implementation that works across apps (item status is retrieved as part of
UIA object description getter in NVDA); this event was added specifically to
support Action Center (quick settings in Windows 11) item changes. I have a
feeling that this issue can be reproduced quite easily, and once I find it,
I’ll publish a workaround in the form of an add-on. Thanks.
--
Reply to this email directly or view it on GitHub:
#13973 (comment)
You are receiving this because you are subscribed to this thread.
Message ID: ***@***.***>
|
Hi, it won’t help in this situation as I also need to confirm the report and think about how to support UIA item status property change event properly. What I wrote earlier still holds – there is no base implementation for handling item status events across aps – I contributed the needed changes to NVDA Core a few years ago specifically to deal with Windows 10 Action Center then. The solution is quite easy and difficult: easy because the base implementation can speak and braille item status property, difficult because one needs to hunt for a way to duplicate the issue described in a slightly easier way as not everyone uses Visual Studio (I can try duplicating it myself as I do have VS2022 on my system, but think about others who do not). Thanks.
|
Hi, Update: what I suspected is happening. Technical: as reported, UIA does fire item status property change event when the grid header changes. NVDA does include an example implementation of item status event handler for Windows 10 Action Center. The solution to this issue is to expand Action Center app module solution to UIA NVDA objects with one specific workaround: remove duplicate announcements via timestamp checks and/or caching. As promised, I will come up with a solution via Windows App Essentials NVDA add-on (as soon as within the next ten minutes, although the solution (for now) will result in duplicate item status announcements). Transforming the add-on solution into an actual NVDA screen reader pull request can take some time as we need to discuss design choices, but the idea is simple: add By the way, there is an add-on called Event Tracker that will log events as they occur, including (surprisingly enough) UIA item status property event. Thanks. |
Hi, Here it is - linked is a try build of Windows App Essentials add-on that should resolve this issue. The official solution requires more thought since it must also resolve duplicate item status output: Thanks. |
…perty event. Re nvaccess#13973. Announce item status UIA property whenever it changes provided that there is no pending event of the same coming from the same element. Note that both the element name and item status are announced.
…nnouncements. Re nvaccess#13973. Borrowing from Windows 10 Action Center (ShellExperienceHost) app module: cache item status propety for the element so it can be compared to the text coming from item status property event, and if they match, drop the event. This also removes the need to use event handler's pending events function.
…perty event (#14080) Closes #13973 Summary of the issue: In parts of Visual Studio 2022 and possibly other apps, NVDA is not announcing item status property changes. Description of user facing changes NVDA will announce item name and status when the status changes. Description of development approach Add base implementation of UIA item status property event handler in base UIA NVDA object, borrowing heavily from an existing implementation in ShelExperienceHost (Windows 10 Action Center) app module introduced in 2019 * NVDAObjects.UIA: introduce base implementation of UIA item status property event. Re #13973. Announce item status UIA property whenever it changes provided that there is no pending event of the same coming from the same element. Note that both the element name and item status are announced. * NVDAObjects.UIA: cache item status property text to avoid duplicate announcements. Re #13973. Borrowing from Windows 10 Action Center (ShellExperienceHost) app module: cache item status propety for the element so it can be compared to the text coming from item status property event, and if they match, drop the event. This also removes the need to use event handler's pending events function. Co-authored-by: Sean Budd <sean@nvaccess.org>
…atus property event (#14080)" (#14136) This reverts commit a4644ef. This reverts commit a4644ef. Link to issue number: reverts #14080 re-opens #13973 Summary of the issue: Based on discussion in #14086 (comment), it appears that #14080 makes the behaviour worse when using WPF projects in VS. Description of user facing changes #13973 is now an issue again Description of development approach reverts #14080
@seanbudd is there any update on the fix of this bug |
@josephsl are you planing to integrate your solution in Win10Apps into NVDA core for this issue? Is There something that can be done from the WPF team as external fix? cc: @siagupta0202, @anjali-wpf, @arpitmathur, @dipeshmsft, @himgoyalmicro, @harshit7962 maybe you can help here as well. |
Hi, I have removed support for UIA item status property change event from my add-on a long time ago, and it is unlikely that I'll work on it. Thanks. |
So does this now need an external fix from WPF? Should we report this to the WPF team? Or is this completely a bug in NVDA?Von meinem iPhone gesendetAm 09.07.2024 um 02:24 schrieb Joseph Lee ***@***.***>:
Hi,
I have removed support for UIA item status property change event from my add-on a long time ago, and it is unlikely that I'll work on it.
Thanks.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: ***@***.***>
|
Hi, A bit complicated - Narrator may or may not exhibit this issue. If it doesn't, then a solution from NVDA may need to be implemented along with a discussion with WPF team inside Microsoft. Part of the reason for removing item status property event from Windows App Essentials was due to duplicate announcement problem and other issues after implementing it. It is unlikely to come back because I'm doing everything I can to minimize my participation in NVDA community (life priorities). Thanks. |
Steps to reproduce:
Expected behavior:
Clicking on the column headers triggers a AutomationPeer.RaisePropertyChangedEvent to fire for the AutomationElementIdentifiers.ItemStatusProperty.
When using Narrator, this event will be announced in the form of a message that states the new item status. When the sort direction is ascending, it will announce "Column Name - Ascending". Likewise, when the sort direction is descending, it will announce "Column Name - Descending".
The video below shows a user interacting with the "Select a certificate in Azure Key Vault" dialog in Visual Studio. In this dialog, there is a WPF DataGrid which is used to display information about code signing certificates that are stored in a Key Vault. The DataGrid contains 4 columns, each with a column header: Name, Status, Expiration Date, and Thumbprint. The user clicks on the Status column header and after Narrator finishes introducing some dialog context, it announces "Status Ascending". The user clicks on the Status column header again and Narrator announces "Status Descending" because the sort direction is now descending. Once more, the user clicks the column header to sort in ascending order and Narrator announced "Status Ascending". The user then performs these same steps on the Expiration Date column header where Narrator announced "Expiration Date Ascending" and "Expiration Date Descending" respectively.
narrator.mp4
Actual behavior:
When using NVDA, there is only an announcement when the column header is hovered or first clicked, but none when the sort direction changes.
The video below shows a user interacting with the "Select a certificate in Azure Key Vault" dialog in Visual Studio. In this dialog, there is a WPF DataGrid which is used to display information about code signing certificates that are stored in a Key Vault. The DataGrid contains 4 columns, each with a column header: Name, Status, Expiration Date, and Thumbprint. The user hovers over the Status column and NVDA announces "Status". The user clicks on the Status column header and after NVDA finishes introducing some dialog context, it announces "Status header item 2 of 4". The user clicks on the Status column header again to make the sort direction descending and NVDA makes no announcement. Once more, the user clicks the column header to sort in ascending order and NVDA makes no announcement. The user then performs these same steps on the Expiration Date column header where NVDA is once again not announcing the new Item Status of the column header.
2022-08-02.00-03-07.mp4
NVDA logs, crash dumps and other attachments:
nvda.log
System configuration
NVDA installed/portable/running from source:
Installed.
NVDA version:
2022.2
Windows version:
Edition Windows 11 Pro
Version 21H2
Installed on 10/5/2021
OS build 22000.795
Serial number MJ0EK6FF
Experience Windows Feature Experience Pack 1000.22000.795.0
Name and version of other software in use when reproducing the issue:
Microsoft Visual Studio Enterprise 2022 (64-bit) - Preview
Version 17.3.0 Preview 5.0
Other information about your system:
N/A
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.
Have only tried latest version of NVDA.
If NVDA add-ons are disabled, is your problem still occurring?
No add-ons are installed.
Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?
Yes.
The text was updated successfully, but these errors were encountered: