WIP: Use remote on Secure Desktop to send speech and braille to the user copy#18789
WIP: Use remote on Secure Desktop to send speech and braille to the user copy#18789LeonarddeR wants to merge 5 commits into
Conversation
|
@SaschaCowley is probably the best reviewer here |
|
@LeonarddeR did you investigate freeing the display in the user copy at secure desktop transitions? |
|
Sorry @SaschaCowley I didn't want to pass you, but recalled @seanbudd had done the most remote work.
No, but I think this has been tried in the past. The problem here lies in the reconnection part after closing the secure desktop, at least there won't be instant braille. I can prototype this though. |
|
This probably means that we cannot configure consistent specific speech parameters for speech parameters on secure screens. Also more generally (for speech or braille), what happens if two user sessions are currently opened with 2 NVDA running while on a secure screen? |
This should be possible when attaching a specific config profile to the secure screen. This is only possible when hacking profile triggers manually, though.
The first secure screen initiates the control server, so the secure screen copy uses the first user's session. |
Yes this remains possible with a hack, but clearly less user-friendly:
That's a good news: there is no mix. And what happens in the following use cases: |
|
I actually don't think Braille works properly here yet, we need to set receiving braille properly on the user copy. I created #18810 as an alternative approach. I think the current pr has too much pitfalls to deal with, especially the case where Windows mutes the user copy. Leaving this open until comparisons / considerations of approaches are complete. |
|
I'm convinced that #18810 is a better idea. |
Fixes #2315 Summary of the issue: Currently, braille doesn't work properly on secure screens because the braille display is held by the logged in copy. Description of user facing changes: When NVDA is installed, it disconnects braille when entering secure desktop and reconnects when exiting it. Description of developer facing changes: None Description of development approach: 1. Added a secure desktop switch extension point to the braille handler. 2. Set a private class property on the braille display driver to ensure the display isn't cleared, in order to make it clear that the `secure desktop` was entered. This is communicated with an `ui.message` in IAccessibleHandler. 3. When leaving secure desktop and auto detect was enabled, try to reconnect to the last detected display before doing a full scan. Testing strategy: - [X] Tested via USB with a APH Mantis Q40 - [x] Tested via Bluetooth with a APH Mantis Q40 as the only Bluetooth device available - [x] Tested both automatic detect and manual display selection cases Known issues with pull request: 1. After exiting the secure desktop, it takes some time before the display is back in action. I must say though that with Bluetooth this isn't considerably slower 2. When using a custom braille display driver bundled in an add-on, the add-on needs to be available on the system copy of NVDA. This has always been the case though, but is fixable with the approach in #18789. 3. When using manual braille display selection, reconnecting to the display after closing the secure desktop happens on the main thread. This can lead to a temporary freeze of NVDA, depending on how long it takes for the driver to connect. Note however that the same freeze would occur when starting NVDA.
Link to issue number:
Fixes #2315
Summary of the issue:
Currently, braille doesn't work properly on secure screens because the braille display is held by the logged in copy.
Description of user facing changes:
Braille and speech will be send to the logged in copy. Apart from working braille, this has an additional benefit, namely that it is no longer necessary to copy third party braille display drivers and synth drivers to the system config. Unless I'm mistaken, this should therefore greatly reduce the need to have add-ons in the system config.
Description of developer facing changes:
The bridge module in _remoteClient has been removed as it is no longer used. I'm happy to restore it if desirable.
Description of development approach:
no speechto avoid double speaking._remoteClient.transport.RemoteExtensionPointto be able to provide a return type for deciders. Therefore we can ensure that waves and tones played on the secure desktop will only be propagated to the user copy and won't be playing within the sd copy.Testing strategy:
Known issues with pull request:
Code Review Checklist: