JAWS Scripts For Unigram
Doug Lee
Last Revised March, 2024

This document describes the custom scripts for Unigram 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.

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.

Script Commands and Features

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

These scripts also provide the following features:

Tips and Tricks

Unigram includes a number of native keyboard shortcuts that will likely be of much use to screen reader users. Use the letter O to move directly to the area of the page that contains the shortcut list. (This is the JAWS command for moving to the next article on a page.)

Recent Unigram versions allow both coarse and fine playback speed adjustment for voice messages. A quick way to manage playback speed:

  1. Start playing a voice message, then pause it with [ Space. This will place focus on the button that will now be called Play.
  2. If you want to adjust speed while the message is actually playing, use Space or [ Space to resume playback.
  3. Tab past Volume to the Speed button and press Space. This opens a menu containing a left/right slider and various specific speeds as options.
  4. To select a specific listed speed, use Up and Down arrows to find it and press Enter to activate it and close the menu.
  5. If you instead wish to adjust the speed more precisely, use Up and Down arrows to locate the left/right slider control, then use Left and Right arrows to select a speed. Beware that Unigram may take a moment to change the playback speed as you arrow among fine-grain speed options. Press Enter when done to close the menu.

To copy a single message to the Windows clipboard, place focus on it and use the Copy option in the Context menu for the message. Starting in Unigram, Ctrl+C will also copy the focused message, properly formatted, to the clipboard.

To select several messages at once, such as for copying as a block to the clipboard:

  1. Find the first message you wish to select.
  2. Open the Context menu via the Menu key, then choose Select. The message you chose will be selected, and Unigram will be in a message selection mode.
  3. Arrow among the other messages and use Space to select or unselect messages. JAWS will say "checked" when you select and "not checked" when you unselect a message. In addition, JAWS will say "selected" before any selected message as you arrow through the list.
  4. When done selecting messages, use the Context menu again to choose the action you wish to perform on the messages. Performing an action will exit the selection mode and unselect the selected messages.
  5. If you wish instead to cancel the selection process, press Esc to exit the selection mode and unselect messages without performing an action.

The JAWS touch cursor sometimes might provide more information than the PC cursor, especially in Settings pages where it can find hints for fields, group headings, etc. By Unigram 10.2 however, these tend also to be reachable via the Tab key.

In some cases, the JAWS "read box in tab order" command, Insert+B, is a handy way to read a screen. Active call screens are good examples.

If Enter on a Settings page name does not open the page (depends on Unigram version), Tab to and press Space on the button by the same name to open the page.

After opening a Settings page or subpage, it is necessary to Tab several times to reach the first field of the newly opened screen area.

When setting input and output devices in Settings > Advanced > Call Settings, use F4 rather than Alt+Down to open the combo boxes and then arrows to find a device and Enter to select it.

When setting a color theme in Settings > Chats, use Left and Right arrows to move among choices (Light, Dark, etc.), then Tab to the radio button corresponding to the last-selected list item and press Space to select the desired theme. Arrows will not move focus directly among these radio buttons.

A fast way to scroll through members of a group is to type an at sign (@) into the chat's edit box, then use Up and Down arrows to scroll through members via the autocomplete box. Press Backspace when done, to clear the at sign out of the edit box. Be aware that this trick will cause members to see that you are typing. Also, this will only show the first 20 members. You can also use this trick to look for specific members by typing partial names after the at sign; just remember to clear all characters out of the edit box when finished exploring.

To play a voice or video message, find it in the chat message list, Tab once to its Play link, and press Space to play. The Context menu, reached with the Application key, also provides alternatives such as saving, opening in another application, and opening the message's containing folder to facilitate manipulation of these messages via Windows Explorer. Voice message files have a .oga extension and are Ogg-encapsulated Opus data readable by players that can handle this format, including the Groove Music app. Video messages have a .mp4 extension.

To start recording a voice message in the current chat, type Ctrl+R. Type the same keystroke a second time to send the recording when finished, or type Ctrl+D to discard the recording without sending. This functionality is provided natively by Unigram and does not require scripts.

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.

If a channel message is forwarded into a group and the user reads the message from the group's message history, JAWS will announce the number of views of the original channel message but will not indicate the number of times the forward, in the group itself, has been seen. This information is available to assistive technology and is probably also visually shown, though this visual display has not been verified.

According to the last test, it is not currently possible to hear the name of a sticker before sending it. This would need to be fixed in the application.

In some situations, notably large group conversations, it is possible to hear computer code-like material instead of a message. At this time, it appears that all of the following must be true simultaneously for this anomaly to occur:

  1. The current conversation is a large group chat.
  2. The chat was opened but no navigation via focus among messages has yet taken place.
  3. The user uses the scripted chat navigation system to read messages instead of moving focus.
Moving focus among messages should fix this anomaly.

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 224, March 28, 2024, tested against application version

Revision 215, February 26, 2024, tested against application version

Revision 209, January 23, 2024, tested against application version

Revision 205, November 16, 2023, tested against application version

This revision is for those who have upgraded to Unigram 10.2. Do not update to this script revision before updating Unigram to 10.2, or some script features may stop working until you upgrade Unigram.

20 older revisions back through February 16, 2020

Revision 196, September 27, 2023, tested against application version

Revision 189, September 4, 2023, tested against application version

Revision 161, November 17, 2022, tested against application version

Revision 158, July 28, 2022, tested against application version

Revision 135, May 4, 2021, tested against application version

Revision 134, April 26, 2021, tested against application version

Revision 129, March 27, 2021, tested against application version

Revision 122, November 11, 2020, tested against application version

Revision 118, October 12, 2020, tested against application version

Revision 108, June 07, 2020, tested against application version

Revision 105, May 01, 2020, tested against application version

Revision 97, April 19, 2020, tested against application version

Revision 86, March 29, 2020, tested against application version

Revision 80, March 13, 2020, tested against application version

Revision 79, March 12, 2020, tested against application version

Revision 64, March 09, 2020, tested against application version

Revision 63, March 08, 2020, tested against application version

Revision 53, March 07, 2020, tested against application version

Revision 32, February 25, 2020, tested against application version

Revision 19, February 16, 2020, tested against application version