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

allow nvda to monitor changes to text in windows #17444

Open
fernando-jose-silva opened this issue Nov 26, 2024 · 5 comments
Open

allow nvda to monitor changes to text in windows #17444

fernando-jose-silva opened this issue Nov 26, 2024 · 5 comments
Labels
feature p4 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation.

Comments

@fernando-jose-silva
Copy link

Is your feature request related to a problem? Please describe.

Many programs, including Windows, provide updates on the progress of tasks and do not announce this to the screen reader.

Describe the solution you'd like

There should be a configuration window in nvda where I can specify that nvda monitor a region of a window, or even the entire window, for text changes, and if these changes are identified, they will be announced to the screen reader.
These configurations should allow the user to control:
The monitoring of a region (object) on the screen
The monitoring of the entire screen.
Save the monitoring so that it does not need to be created every time nvda restarts.
Delete existing monitorings.
Disable or enable existing monitorings.
Specify how often the object or window will be monitored.
Include warnings of possible slowdowns or inaccuracies during monitoring.
Configure how often the monitored text should be announced.
Allow the reading of the monitored text to be read automatically or on demand.
Some of these requests are in the obj Watcher add-on;
not all of them, but this request is important enough to be in the nvda core.
I will contact the developer of obj Watcher; suggesting what is specified here, however I think this functionality is good enough to be part of the nvda core.

Describe alternatives you've considered

Additional context

expecting programmers to be aware hasn't helped much lately.

@Adriani90
Copy link
Collaborator

I support this proposal. In fact, when implementing this, be sure to think about a second layer of voice that speaks the monitored content. Because when I monitor a part of a screen, I will most probably do something else in parallel and I certainly would not like the current voice to be interupted.
A parallel voice layer could be implemented with the speech refactor framework in #7599.
I guess also a new helper API would need to be developed in order to retrieve the information to be monitored without depending on focus, navigator or system caret or what so ever.
However, I struggle a bit with this approach because then we could monitor things that sighted people cannot see, so if this is implemented, I suggest to allow monitoring only when windows are snapped next to each other or when the monitored text is visible on the screen.

I can imagine that working with multiple monitors would finally become possible with this feature, and this would significantly improve the way how blind and sighted people work together.

@josephsl
Copy link
Collaborator

josephsl commented Nov 26, 2024 via email

@fernando-jose-silva
Copy link
Author

similar, yes, but it doesn't have everything, especially the suggestions from
@Adriani90
Again, having this in the nvda core is very advantageous.

@cary-rowen
Copy link
Contributor

I am the developer of objWatcher,

Just some quick answers to some points:

@Adriani90 wrote:

However, I struggle a bit with this approach because then we could monitor things that sighted people cannot see, so if this is implemented, I suggest to allow monitoring only when windows are snapped next to each other or when the monitored text is visible on the screen.

I may not agree with this, the Remote Assistance add-on has been operating something that is not visible on the screen (another computer), however we have to admit it is useful.
objWatcher sometimes helps me announce messages in the background instant chat program, and is probably why I developed this add-on in the first place.

A parallel voice layer could be implemented with the speech refactor framework in #7599 .

This is undoubtedly useful, but should not block the proposal from being implemented.

@fernando-jose-silva
I received your email, but I haven't had time to reply yet.

Regarding making the saved object persistent, I haven't looked into it yet, and I'm not sure if there is a reliable way to achieve this.

As for monitoring the entire screen, I haven't figured out how to implement it, but if there are too many changes on the screen, you can imagine how confusing it will be. For example, there are multiple progress bars on the Winrar compression/decompression window, and NVDA will report them separately. Progress changes.

Thanks,

@fernando-jose-silva
Copy link
Author

Thank you very much to everyone for the comments, and especially for the current developments, and for future developments.

@seanbudd seanbudd added p4 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority feature triaged Has been triaged, issue is waiting for implementation. labels Dec 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature p4 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation.
Projects
None yet
Development

No branches or pull requests

5 participants