LeonarddeR / rdAccess

Remote Desktop Accessibility for the NVDA screen reader
GNU General Public License v2.0
10 stars 1 forks source link
citrix horizon nvda-addon rdp rds

RDAccess: Remote Desktop Accessibility

The RDAccess add-on (Remote Desktop Accessibility) adds support for Microsoft Remote Desktop, Citrix, or VMware Horizon remote sessions to NVDA. When installed on both the client and the server in NVDA, speech and braille generated on the server will be spoken and displayed in braille on the client machine. This enables a user experience where managing a remote system feels as seamless as operating the local system.

Features

Changelog

Version 1.4

Version 1.3

Version 1.2

Version 1.1

Version 1.0

Initial stable release.

Getting Started

  1. Install RDAccess on both a client and server copy of NVDA.
  2. The remote system should automatically start speaking using the local speech synthesizer. If not, in the NVDA instance on the server, select the remote speech synthesizer from NVDA's synthesizer selection dialog.
  3. To use braille, enable automatic braille display detection using the braille display selection dialog.

Configuration

After installation, the RDAccess add-on can be configured using NVDA's settings dialog, accessible from the NVDA Menu by choosing Preferences > Settings... Then, choose the Remote Desktop category.

This dialog contains the following settings:

Enable Remote Desktop Accessibility for

This list of checkboxes controls the operating mode of the add-on. Choose between:

To ensure a smooth start with the add-on, all options are enabled by default. However, you are encouraged to disable server or client mode as appropriate.

Automatically Recover Remote Speech after Connection Loss

This option is only available in server mode. It ensures that the connection will automatically be re-established when the Remote Speech synthesizer is active and the connection is lost, similar to braille display auto-detection.

This option is enabled by default. It is strongly encouraged to leave this option enabled if the Remote Desktop server has no audio output.

Allow Remote System to Control Driver Settings

When enabled in the client, this option allows you to control driver settings (such as synthesizer voice and pitch) from the remote system. Changes made on the remote system will automatically reflect locally.

Persist Client Support When Exiting NVDA

This client option, available on installed copies of NVDA, ensures that the client portion of NVDA is loaded in your remote desktop client even when NVDA is not running.

To use the client portion of RDAccess, changes need to be made in the Windows Registry. The add-on ensures that these changes are made under the profile of the current user, requiring no administrative privileges. Therefore, NVDA can automatically apply the necessary changes when loaded and undo these changes when exiting NVDA, ensuring compatibility with portable versions of NVDA.

This option is disabled by default. However, if you are running an installed copy and you are the only user of the system, it is advised to enable this option for smooth operation when connecting to a remote system after NVDA starts.

Enable Microsoft Remote Desktop Support

This option, enabled by default, ensures that the client portion of RDAccess is loaded in the Microsoft Remote Desktop client (mstsc) when starting NVDA. Changes made through this option will be automatically undone when exiting NVDA unless persistent client support is enabled.

Enable Citrix Workspace Support

This option, enabled by default, ensures that the client portion of RDAccess is loaded in the Citrix Workspace app when starting NVDA. Changes made through this option will be automatically undone when exiting NVDA unless persistent client support is enabled.

This option is available only under the following conditions:

Citrix Specific Instructions

There are important points to note when using RDAccess with the Citrix Workspace app:

Client-Side Requirements

  1. The Windows Store variant of the app is not supported.
  2. After installing Citrix Workspace, you need to start a remote session once to let RDAccess register itself. This occurs because the application copies system settings to user settings during the initial session setup. Following this, RDAccess can register itself under the current user context.

Server-Side Requirement

In Citrix Virtual Apps and Desktops 2109, Citrix enabled the so-called virtual channel allow list, restricting third-party virtual channels, including the channel required by RDAccess, by default. For more information, see this Citrix blog post.

Explicitly allowing the RdPipe channel required by RDAccess is not yet tested. For now, it is best to disable the allow list altogether. If your system administrator has concerns, feel free to address the issue here.

Issues and Contributing

To report an issue or contribute, refer to the issues page on Github.

External Components

This add-on relies on RD Pipe, a library written in Rust backing the remote desktop client support. RD Pipe is redistributed as part of this add-on under the terms of version 3 of the GNU Affero General Public License.

[[!tag dev beta]]