JAWS Scripts For Discord
Doug Lee
Last Revised January, 2021

This document describes the scripts for Discord and provides tips for using this application with JAWS. This document can be opened from within the application via a double press of JAWSKey+F1 (or Insert+F1) when the scripts are running.

These scripts are written for both the Discord Windows app and the web client that can be run from http://discord.com/app. The scripts are more often tested against the Windows app, however.

The automatic chat announcement portion of these scripts borrows ideas and a small amount of code for selecting what of a message to speak from scripts written by Theodore (Ted) Cooke as obtained by this author on October 11, 2020 and apparently written in or before August of the same year.

Warning: At this writing (November, 2020), Discord is a rapidly evolving application and is subject to sudden and significant change. As a result, the commands and behaviors supported by and documented for these scripts may also be subject to change or failure without warning if a change in Discord causes scripts to fail.

Table of Contents

System Requirements For JAWS Users

In addition to any system requirements for the application, the following apply for JAWS users:

Script Installation Instructions

To install these scripts on a new system:

  1. Load JAWS if this has not already been done. This will require administrative privileges on the computer.
  2. Run JAWS as the user for whom the scripts are to be installed. This and the following steps must be performed for each user of the computer who will be using JAWS with these scripts.
  3. Download and run, or run directly, the installer for these scripts; and follow the on-screen directions. Be sure to install the scripts in the currently running JAWS version if a JAWS version list is presented.
  4. To verify successful installation, type Insert+Q from within the application. Part of the JAWS spoken response should be a revision number. If you do not hear a revision number, the scripts are not correctly loaded. In some cases, restarting JAWS may fix this issue.

Key Sequences

These scripts incorporate commands that consist of sequences of keystrokes, all beginning with a common prefix, or "command keystroke." This approach allows many script commands without the risk of conflicting with application keystrokes. See the "Multi-Key Command Sequences" section of the "Common Script Elements" document for further details, including how to explore the available script commands (similar to exploring a menu system), and how to change the Command keystroke if necessary.

By default, the Command keystroke for these scripts is [. This document may refer to this keystroke as [ or Command; so, for example, [ Tab and Command Tab both refer to typing the prefix keystroke, then separately the Tab key. Some sequences may consist of more than two keystrokes, or "levels"; for example, [ d r would refer to typing [, then d, then finally r.

Native Discord Accessibility Features

Discord itself includes various accessibility features as of this writing. Chief among these is a large set of keyboard shortcuts, documented on the Discord site under "Windows Discord hotkeys." Note that Ctrl+Tab and Ctrl+Shift+Tab cycle forward and backward through your servers as well.

Script Commands and Features

These scripts provide the following general commands beyond those provided by the application itself:

These scripts provide three sets of commands for efficiently reading direct and text chat messages. The following commands keep track of a current position among messages that will be remembered until changed or until JAWS is restarted or the current Discord window is replaced with another that supports chat navigation. A position is remembered separately for each Discord chat navigated with this system.

This final set of commands reads messages without altering JAWS' idea of which message is "current": Note: These message navigation commands are limited to visible messages due to the way Discord is written; therefore, for example, [ 1 may read the latest displayed message rather than the latest posted message if the latest post is currently not shown on screen. Using these commands to read messages near the start or end of the visible messages often will, though, scroll more messages onto the screen automatically.

These scripts also provide the following features:

Known Issues

The following issues are known and may be encountered during use of the application with these JAWS scripts. These issues may be fixed in a future update to the scripts or to the application itself.

On or just before October 30, 2020, a Discord update caused Enter in the server tree to stop switching to the highlighted server. This should be fixed by Discord internally.

Pending event counts may be out of date from time to time in the JAWS virtual view of the Discord window. Typing the screen refresh command, Insert+Esc, will fix this.

When announcing the "Roles" list control in a user information popup dialog, JAWS may say an extra word like "modal" or "vertical" between "listbox" and the list of roles for a user.

Braille support is not well tested and is likely incomplete.

Revision History

This is the revision history of these scripts, most recent revision first:

Revision 96, January 27, 2021, tested against application version 0.0.308 as updated November 6, 2020

Revision 92, December 08, 2020, tested against application version 0.0.308 as updated November 6, 2020

Revision 90, November 29, 2020, tested against application version 0.0.308 as updated November 6, 2020

Revision 78, November 07, 2020, tested against application version 0.0.308 as updated November 6, 2020

Revision 74, November 02, 2020, tested against application version 0.0.308 as updated October 30, 2020

This release is largely aimed at addressing some problems that appeared in the Friday, October 30, 2020 Discord release. This Discord version can be identified by the Home link being part of, rather than above, the server tree. There are also other features that are not related to the Discord update, as listed below.

Revision 68, October 25, 2020, tested against application version 0.0.308 as updated October 12, 2020

Revision 16, May 9, 2019, tested against application version 0.0.305

Initial release for Aleric to test: