JAWS Scripts For TeamSpeak
Doug Lee
Last Revised October, 2023

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 effectively. 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

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 Insert+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 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.

Commands and Features

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

Summary of Features

Navigating Chat Messages

The following table shows the commands available for navigating chat messages without altering focus. Note that the command key, [ by default, can be followed by any number of navigations without another command key. Press Esc when done navigating with these.

Commands and sequences for reading chat messages
Navigation Key Sequences
First chat message [ Home or [ H
Previous chat message [ Left or [ J
Repeat current chat message with position information [ NumPad5 or [ K
Next chat message [ Right or [ L
Last chat message [ End or [ ;

Title Announcement Enhancements

Insert+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

If Backspace says "blank" instead of announcing the character being erased, you can temporarily add a Space at the end of the current line while editing. JAWS only has trouble announcing the last character on an edit line in this application.

Pressing the Application 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.

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. This box may not exist in all TeamSpeak versions.
  2. Shift+Tab once to the previous control, which is the tree of available actions. If you do not find this tree, use Shift+Tab to look for it. In some TeamSpeak versions, Tab skips over it.
  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, if the Options screen is not now closed, 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 or the key sequence [ B.

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, Insert+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 318, October 15, 2023, tested against application version 3.6.2

Revision 299, October 28, 2022, tested against multiple application versions

Note: Please read this section carefully before upgrading, as some commands and features have changed. In particular, several key combinations that have for years been duplicated by multi-key sequences are removed in order to avoid key conflicts. This will be explained, followed by the other changes and fixes.

This script release was tested against

Command changes: The non-layered equivalents for most of the script commands, long considered deprecated, are now removed. This will avoid various possible collisions with application keystrokes and user-defined TeamSpeak hotkeys, as well as avoiding occasional issues where TeamSpeak or JAWS or Windows comes to believe incorrectly that the Alt or Ctrl key is stuck down. The following list will help users of the old commands switch to the key sequence equivalents:

Other changes in this release:

Revision 285, February 15, 2022, tested against application version 3.5.7.0 (Qt 5.12.3)

Revision 277, December 8, 2021, tested against application version 3.5.7.0 (QT 5.12.3)

26 older revisions back through August 5, 2013

Revision 266, December 15, 2020, tested against application version 3.5.5.0 (Qt 5.12.3)

Revision 261, August 12, 2020, tested against application version 3.5.3.0 (Qt 5.12.3)

Revision 243, May 17, 2020, tested against application version 3.5.3.0 (Qt 5.12.3)

Revision 233, November 7, 2019

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

Revision 231, 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, 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, August 4, 2018

Revision 175, August 2, 2018

Revision 171, September 2, 2017

Installer updates:

Revision 170, August 31, 2017

Revision 165, November 8, 2016

Revision 148, August 10, 2016

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

Revision 144, 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, November 30, 2015

Revision 136, 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, August 4, 2015

Revision 128, July 24, 2015

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

Revision 126, 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, February 28, 2014

Revision 57, 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.

Changes in this JAWS script revision:

Revision 47, 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, 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, August 11, 2013

Revision 35, August 11, 2013

Revision 26, 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, August 5, 2013

Initial release, with the following features: