JAWS Scripts For Zello
Doug Lee
Last Revised October, 2020

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

Table of Contents

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 Features In Brief

These scripts provide the following commands beyond those available in Zello itself on Windows:

These scripts also provide the following features beyond those provided by Zello itself on Windows:

Finally, there are some experimental features described later in this document.

System Requirements For JAWS Users

There are no known system requirements for these scripts beyond those These scripts require JAWS 17.0 or later. The scripts were written against Zello 1.16 for Windows and modified subsequently to support various changes in Zello versions 1.18 through 1.86 and

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 while the application is in focus. 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.

How To Use Zello

This section provides brief guidance on general Zello usage.

Signing In

On first launch, Windows Zello brings up a screen from which to create a new Zello account. If you already have one, press Esc on this screen to return to the regular Zello sign-in screen, then log in with your Zello name and password. If you do not already have a Zello account, fill out the account creation form. You can use the "Check availability" button to verify whether the user name you want is available.

Adding Channels and Users

If you know a user's Zello name, use "Add a contact" in the Tools menu to add the user to your Contacts list. You will need the user's exact Zello name or email address.

Zello also supports channels, or named discussion areas, in which users may participate as a group. Zello allows some searching for channel names via the "Add a channel" dialog, again reached from the Tools menu. Type a full or partial channel name into the Edit box, then tab to the list of matches. Selecting a match and pressing Enter will add the channel to your Contacts list.

From a channel in your Contacts or Recents list, you can also open a Context menu with the Applications key and choose "Show online users" to get a list of users currently participating in (or listening to) that channel. From any participant in this list that is not already in your Contacts list, you can again press the Applications key to get an "Add user" option with which to add that user individually to your contacts.

Where Your Voice Is Sent

By default, holding down F7 transmits your voice to a person or channel. (This keystroke can be changed in the Control page of Tools/Options.) The selected line in the Contacts or Recents list, whichever is showing, determines where any transmission you send will go. If you are in the History list, beware of this, as the current History list line may not indicate where F7 would begin sending your voice.

What You Will Hear

In normal operation, you will hear all transmissions to all channels to which you are connected. Exceptions to this occur when your status is Away or Busy or if you are in Solo mode with a person or channel.

Special User Statuses

With the scripts running, Ctrl+Shift+S or [ S will announce your current status. Press twice quickly or type [ Shift+S to change your status from a popup menu. You can also edit the wording of the "Available" status by choosing "Change status message" from the Tools menu.

If your status is Away or Busy, all incoming messages will be queued without playing. Numeric unplayed message counts will begin appearing visually beneath each person and channel entry in the Contacts list where unplayed messages exist. Clicking on such a number will begin playing saved messages. As you arrow through the Contacts list, these numbers will read between the channel name (for a channel of course) and the online user count for the channel.

There is also a "Headphones" status. This appears to play messages immediately just as "Available" does.

If you change your status to "Offline," you will be signed out of Zello and returned to the Zello login screen.

Solo Mode

You can perform various actions on a person or channel from its Contacts list entry via the Context menu key. One such option is "Enable solo mode." In solo mode, your transmissions still go to the selected person or channel as usual, but only messages from that person or channel will play immediately. Messages to all other persons and channels will quietly queue up as if you were using status Away or Busy.

Solo mode is ended by any of these actions:

Note that arrowing through the list without transmitting or setting another solo mode will not end solo mode.

Message History

The History page, accessible with Alt+V and then the History option, lists all undeleted messages in chronological order. Pressing Enter on a message entry will play that message and begin playing all messages from that one to the end of the list. Esc will close the History list and stop any of this automatic message playing. Pressing Enter on one message while another is playing will abort the playing of one message and start playing the one currently selected.

It is also possible to get a subset of message history from a particular user or channel. From the Contacts list, find the channel or user of interest and press the right arrow key. Press Esc to leave this list and return to the Contacts list.

Some consider it wise to delete history periodically via Context menu entries on list items, in order to avoid bogging Zello down with a massive message backlog.

Handling User Authorization Requests

When focus is on a Contacts list entry corresponding to a user, the available Context menu for the entry may include an "Add user" choice. Activating this will send the user an authorization request. Authorizing a user allows direct messaging between you and that user.

When an event such as an authorization request arrives in Zello, a number indicating how many are pending will appear on the Zello status line to the right of your status. With the scripts running, Ctrl+Shift+E or [ E will announce the number of pending events. Pressing this command twice quickly or typing [ Shift+E will open a menu of pending events from which you may select one to address.

Useful Tips and Tricks

Here are some potentially useful tricks for improving efficiency in Zello using these scripts:

These scripts provide a way to search the contact list for various types of entries. When focus is in the Contacts list, Use Ctrl+LeftArrow and Ctrl+RightArrow to switch among possible search types and Ctrl+UpArrow and Ctrl+DownArrow to search for the previous or next match. For example, when the search type is "New messages," which is the setting that takes effect when the scripts first load, Ctrl+UpArrow and Ctrl+DownArrow move to the previous and next channel containing new messages, respectively. The possible search types are

New messages
Finds channels and users with unread messages. This is handy when in Busy status with many channels and/or users in the contact list. On finding a channel or user with unplayed messages, you can use Ctrl+Shift+P or [ P to play or skim through them.
Disconnected channels
Finds channels that are disconnected. This is useful during bouts of Internet connectivity problems, as Zello can sometimes inadvertently disconnect from random channels in such a situation.
Solo mode
Finds the channel or user in solo mode, if any.
First user
Finds the first contact list entry that is a user as opposed to a channel.
Note that the searches for first user and solo mode expect to find only one result (if any), so there is no functional difference for these searches between Ctrl+UpArrow and Ctrl+DownArrow.

Finding Out Who Last Spoke

Use the Recents tab in the main window to find out who last spoke and from which channel (if any). The top entry in the listView in that tab will indicate the last speaker and channel and how long ago the message was sent. See also the experimental features section for another way to do this.

Finding New Channels

Zello itself includes means for searching for channels, but the results are limited to five matches for each search, and there is no apparent way to page through more results. The Zello web site, however, includes a means for searching for channels and finding all results for a search.

Warning The following directions apply to the Zello web site as of June 1, 2012. As web sites often change, however, these directions may go out of date at some point.

To search for channels from the Zello web site:

Checking Channel Participants

Pressing the Application key while on a channel in the Contact list brings up a context menu that includes an option for showing the current channel participants. Pressing Enter on a channel line also shows participants. While focus remains in a channel's participant list, JAWS will report the names of users joining and leaving the channel.

Skipping the Rest of the Current Message

Some Zello users can transmit very long messages. If you find it necessary to silence Zello, such as for an incoming call or to hear a screen reader, you can switch temporarily to the History page by typing Alt+V and then H. This action has the side effect of silencing the current transmission. Press Esc to return to the page you were in (Contacts or Recents). This trick has not been verified since Zello 1.16.

Experimental Script Features


Automatic Announcement of Who Is Transmitting

This feature is currently turned on/off by Shift+F2 or the sequence [ A. The feature is off by default and is turned off every time the computer restarts or JAWS is reloaded.

When this feature is enabled, the scripts use an undocumented feature of Zello to announce the following events as indicated:

Hands-Free Magic

This feature is currently turned on/off by Shift+F3 or the sequence [ H. The feature is off by default and is turned off every time the computer restarts or JAWS is reloaded.

This experimental feature is aimed at users of FreeTalk Wireless headsets and other devices that include a button that sends the Alt+Pageup keystroke. The popularity of Skype prompted this feature to appear in some wireless headsets years ago.

When this feature is enabled, Alt+Pageup performs the following actions as indicated:

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.

Typing the JAWS SayLine command twice in quick succession will not cause JAWS to spell list entries in some cases. This is true with or without these scripts.

JAWS may sometimes fail to see off-screen model (OSM) text at least under Windows 10. Restarting JAWS sometimes fixes this. While JAWS is unable to see OSM text though, several things will not likely work correctly, including

Note that the OSM issue is not related to Zello, though the effects of OSM failure on Zello are due to Zello's lack of native accessibility support in some areas.

Zello 1.22 allows popup notifications when messages are being transmitted or received, but these popup notifications are completely inaccessible to screen readers and are probably best left disabled (unchecked in Zello Options). This advice needs to be re-examined under Zello or later.

This author has found the following problems in Zello 1.17 that did not appear in Zello 1.16 (this list needs to be re-examined under Zello or later):

Further details on apparent zello bugs appear on this author's PC Zello 1.17 Bug List page.

Revision History

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

Revision 160, released February 03, 2021, tested against application version

Revision 156, released October 05, 2020, tested against application version

Revision 135, released September 26, 2018

This revision supports Zello 1.86 and JAWS 2019 public beta, requires JAWS 14 or later, and includes numerous code upgrades and some bug fixes. Details:

Revision 117, released October 14, 2017

This update comes after a long silence (since March, 2013), during which there were a few updates to Zello itself and the release of several major upgrades to JAWS. I stopped working on these Zello scripts in 2013 first because of the number of serious Zello bugs I encountered starting in 2012 and the fact that new releases of Zello were introducing new bugs; and then because I detected very little community interest in Zello scripts. Zello's popularity increased suddenly in 2017 as Zello became a popular application for helping with Texas hurricane relief efforts, but I still detected no interest in Zello scripts in the blind community until October.

Warning: I still regard Windows Zello as buggy, based on brief tests I ran in August, 2017. However, I provide this script update in case it is useful. For examples of bugs I initially saw in 2012, some of which I believe still exist, visit my PC Zello 1.17 Bug List page.

Included updates in this script revision:

Revision 102, released March 29, 2013

This is an update to support Zello 1.30. Features and notes:

Revision 101, released November 29, 2012

This release contains a few documentation updates for Zello 1.22. Also, channels with an invalid password count in searches as disconnected channels. This means you can use Ctrl with arrows to find channels whose passwords need updating.

Revision 93, released July 29, 2012

This is another fairly major update and addresses some issues in Zello 1.18 and 1.19.

Enhancements and fixes:

Revision 77, released June 23, 2012

This is a fairly major update and the first script version that includes features specifically aimed at Zello 1.17. These scripts still work with Zello 1.16 as well.

New features and fixes:

Revision 51, released June 11, 2012

Heads Up: Ctrl+Shift+A, the keystroke that announced the number of pending authorization requests, is now Ctrl+Shift+E. This change conforms to Zello's actual intentions: The count is really the number of pending events of any kind. Currently the only type of event supported in Windows Zello is authorization requests, but the script author expects text alerts eventually to be included there.

This update includes the following enhancements:

This script update also includes a few experimental features, disabled by default but accessible via special hotkeys. These are described in the manual. The experimental features currently included allow you to hear user and channel names when people talk, hear which channel you are sending to before you start speaking, and use certain wireless headsets to start/stop transmission or review unplayed messages without having to use the keyboard. A link to the manual appears near the top of this page.

Revision 25, released May 29, 2012

Several features added:

Revision 4, released May 25, 2012

Initial release version with the following features: