JAWS Scripts For TeamSpeak
Doug Lee
Last Revised May, 2020

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

Table of Contents

Why Scripts For TeamSpeak?

TeamSpeak includes a number of accessibility features, but JAWS natively does not interpret much of TeamSpeak's accessibility information in a useful way for JAWS users. These scripts aim to fill the gap between TeamSpeak's accessibility support and JAWS' expectations. The scripts also provide several useful commands for retrieving information and accessing TeamSpeak features.

System Requirements For JAWS Users

There are no known system requirements for these scripts beyond those for TeamSpeak itself. The scripts were written and tested against the following software versions:

Later versions of TeamSpeak may also work with these scripts, but older TeamSpeak versions will not. Both 32-bit and 64-bit versions of TeamSpeak are supported. JAWS 17.0 or higher is required. JAWS versions older than 2019 have not been tested carefully.

Script Installation Instructions

To install these scripts on a new system:

  1. Install 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 Ins+Q from within TeamSpeak. 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.

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 key 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 key, 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.

Commands and Features

This section and its subsections describe the commands and features provided by these scripts.

Summary of Features

Title Announcement Enhancements

Ins+T, the JAWS SayWindowTitle command, includes a number of enhancements beyond saying just the title of the active window. The items included are, in this order and as applicable:

Tips , Tricks, and Caveats

This section and its subsections provide useful tips and information for performing various tasks in TeamSpeak.

General Information

Pressing the Applications key on the menu bar (after pressing Alt to activate the menu bar) will present a menu of options allowing parts of the TeamSpeak display to be made visible or invisible. Of particular interest is the Master Volume control, which allows adjustment of the overall TeamSpeak volume. The default value for this slider is 0, and it can be moved with arrows to become positive or negative. This is also how users can customize the TeamSpeak toolbar to make frequent actions easier.

Unfortunately, as of QT 5.12.3, assistive technology such as JAWS has no reliable way to determine which items in menus are checked and which are not.

When using the RightMouseButton command on a tab control, arrow left and right before clicking to make sure JAWS knows which tab is active. Otherwise, the click may be applied to the first visible tab regardless of which one is active.

Creating and Editing Hotkeys In Options

The following procedures should help with creating and editing hotkeys in TeamSpeak:

To edit or create a hotkey, go to the Hotkey Setup screen as just described, then follow these steps:

  1. Tab several times, past the key definition box, until JAWS says "Show Advanced Actions." Depending on the action you want to assign to a key, you may need to check this box. When in doubt, check it, so all possible actions can be found below.
  2. Shift+Tab once to the previous control, which is the tree of available actions.
  3. Using the four arrows, Right arrow in particular to expand tree nodes, locate the action you want. Toggling the aforementioned "Show Advanced Actions" checkbox may help here. Make sure, before attempting to assign a key to an action below, that the action you are choosing is an actual action, not a tree node with further descendants. For example, when Advanced Actions is checked, "Toggle Playback Profile" (under "Playback Profile") has a descendant for each available playback profile.
  4. To choose the action and move to the key assignment stage, press the JAWS LeftMouseButton command twice in quick succession. This will effect an actual double click on the selected action. Focus will automatically move to a control that allows you to type the keystroke you wish to use. If this does not happen immediately, try the double click again. If this still does not happen, you probably selected an item with subactions, in which case the clicks only expand or collapse the list of them.
  5. Type the keystroke just as if you were using it; e.g., type Ctrl+Shift+O if you want to make Ctrl+Shift+O execute the action you selected earlier. Focus will return to the action you selected in the Actions list.
  6. To save the keystroke, press Enter, which presses the OK button. Focus will now return to the table of key assignments.
  7. To close the Options screen, press Enter and then Esc. The Enter actually opens an edit screen on the currently highlighted key assignment, and the Esc closes both that and the Options screen.

Customizing the TeamSpeak Toolbar

The TeamSpeak toolbar can be customized to contain frequently accessed features. In some cases, doing this can simplify or even improve the accessibility of frequent operations. To customize the TeamSpeak toolbar:

Once the toolbar consists of your preferred set of actions, access any of them using JAWSKey+F8.

Advanced Information

The below information is likely to be of use only to advanced users of TeamSpeak.

Right-clicking on a bookmark in the Bookmarks menu, then pressing the Down arrow once, will open a context menu allowing you to edit the bookmark, connect to it normally, or connect to it by creating a new tab. The final of these options is a way to make multiple simultaneous connections to different servers.

Once multiple connections exist at once, it may help to make TeamSpeak activate the microphone in the current tab every time you navigate among server tabs. Do this in Preferences > Application.

When multiple server tabs are showing, the JAWS SayWindowTitle command, Ins+T, will name the active server and indicate its position among the tabs and the number of tabs showing. Close the active tab with Ctrl+W or via right-clicking and choosing the appropriate Close option.

If you have connected to one server multiple times simultaneously using different tabs, use the status line reading command, JAWSKey+PgDn, to identify which of your nicknames is active in the current tab.

When there are multiple server tabs open and a hot key is assigned to toggle microphone mute, the announcements "Microphone muted" and "Microphone activated" can be incorrect with respect to the active server tab. Use arrows to find your name in the active tab to see whether "Microphone muted" speaks after the name. (This issue was verified on March 18, 2015, in TeamSpeak for Windows version 3.0.16.

Revision History

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

Revision 243, released May 17, 2020, tested against application version 3.5.3.0

Revision 233, released November 7, 2019

This revision significantly speeds up navigation in the TeamSpeak channel tree under some conditions.

Revision 231, released October 30, 2019

This is the first officially released script version to support TeamSpeak 3.3.0, which brought with it some significant changes to its MSAA and UIA support. Beta scripts for TeamSpeak 3.3.0 were released in June, 2019 but without accompanying notes or updated documentation. Changes in this release since revision 183, the final script revision to support TeamSpeak 3.0:

Revision 183, released November 25, 2018

Note that there is some incomplete code in this release for handling tree-grid controls, such as found in Channel Permissions. This control type does not work well yet with JAWS.

Revision 176, released August 4, 2018

Revision 175, released August 2, 2018

Revision 171, released September 2, 2017

Installer updates:

Revision 170, released August 31, 2017

Revision 165, released November 8, 2016

Revision 148, released August 10, 2016

Arrowing to a semi-permanent channel in the channel tree now says "Semi-Permanent channel" instead of "Semi- channel."

Revision 144, released December 15, 2015

This revision fixes the installer's ability to install into non-English JAWS 17 folders and makes sure to compile in compatibility mode to make translated jsm files work as expected.

Revision 142, released November 30, 2015

Revision 136, released September 30, 2015

The main change in this revision is that the installer works in JAWS 17 public beta 2. The change is necessary because of a change in script compiler flags between public betas 1 and 2 of JAWS 17.

Revision 131, released August 4, 2015

Revision 128, released July 24, 2015

The extra information reported on navigating among channel tree items now works under TeamSpeak 3.0.17.

Revision 126, released July 3, 2015

After much experimentation and a number of battles with QT5, it's time for a major script update.

Note: This update works with TeamSpeak 3.0.16, which uses QT 5.21. These scripts will probably not work well with older TeamSpeak versions.

New features:

Revision 62, released February 28, 2014

Revision 57, released January 7, 2014

This is the first script revision that supports TeamSpeak client version 3.0.14.0, which is a beta TeamSpeak client as of this writing and which seems to fix numerous crashes that occur in older TeamSpeak clients. Thanks to Zack Benton for pointing out this beta and how to install it. Click here for the Frequently Asked Questions section on how to get the TeamSpeak beta.

Changes in this JAWS script revision:

Revision 47, released September 10, 2013

It is now possible to turn on/off the speaking of message timestamps on Alt+numbers/arrows via the JAWS Quick Settings dialog accessed with JAWSKey+V.

The "Radius" and "Angle" spin boxes on the setup screen for 3D sound are now named correctly.

Triplets of fields for setting limits on what servers appear in the Server List screen are better named. These triplets consist of a checkbox followed by spin boxes for minimum and maximum values for user count and slots.

More occasions where JAWS incorrectly said "Status bar not found" are fixed.

Revision 39, released August 11, 2013

Fixed a bug that could sometimes cause chat commands to fail with the message, "Not in main window," even when focus is in the main window.

Revision 36, released August 11, 2013

Revision 35, released August 11, 2013

Revision 26, released August 6, 2013

As the user arrows through the channel tree, some extra information may be spoken about the highlighted entry. Currently, the extra items announced are

Revision 22, released August 5, 2013

Initial release, with the following features: