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

NVDA controller client: allow choosing speech prioiryty when speaking #11028

Closed
LeonarddeR opened this issue Apr 18, 2020 · 1 comment · Fixed by #15734
Closed

NVDA controller client: allow choosing speech prioiryty when speaking #11028

LeonarddeR opened this issue Apr 18, 2020 · 1 comment · Fixed by #15734
Milestone

Comments

@LeonarddeR
Copy link
Collaborator

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

External software can use the NVDA controller client library to make NVDA announce text. This is used by twitter clients like TWBlue and Chicken Nugget, for example. This functionality is also used internally, for example by the live region handler.

However, the new speech priority support is not added to the NVDA controller client. It would be helpful if it were, See #10622 for a use case.

Describe the solution you'd like

I propose adding a nvdaController_speakTextEx function that adds:

  • An enum parameter for the speech priority
  • A boolean value that allows one to cancel speech before speaking. I think it should only cancel speech within the speech queue of the given priority. If someone wants to cancel all the speech, they can use nvdaController_cancelSpeech instead.

Describe alternatives you've considered

Add these new parameters to nvdaController_speakText. I'm afraid this can't be done without breaking backwards compatibility though. Could you confirm this @michaelDCurran?

@feerrenrut
Copy link
Contributor

Related: #9079

@nvaccessAuto nvaccessAuto added this to the 2024.1 milestone Nov 23, 2023
seanbudd pushed a commit that referenced this issue Nov 23, 2023
)

Fixes #11028
Fixes #5638

Summary of the issue:
The NVDA Controller client has been stable for a long time, but it lacked support for modern speech features, such as priority and callbacks.

Description of user facing changes
None.

Description of development approach
Added the following functions to the controller client:

nvdaController_getProcessId: To get the process id (PID) of the current instance of NVDA the controller client is using.
nvdaController_speakSsml: To instruct NVDA to speak according to the given SSML. This function also supports:
Providing the symbol level.
Providing the priority of speech to be spoken.
speaking both synchronously (blockking) and asynchronously (instant return).
nvdaController_setOnSsmlMarkReachedCallback: To register a callback of type onSsmlMarkReachedFuncType that is called in synchronous mode for every <mark /> tag encountered in the SSML sequence provided to nvdaController_speakSsml.
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.

3 participants