JAWS Scripts For TeamTalk Classic
Doug Lee
Last Revised March, 2017

This document describes the scripts for TeamTalk4Classic and TeamTalk5Classic (from now on referred to simply as TeamTalk) and provides tips for using this application with JAWS. This document can be opened from within TeamTalk via a double press of JAWSKey+F1 (or Insert+F1).

This document is laid out for easy navigation using JAWS HTML heading navigation commands: H will move through all headings, 2 through major sections, and 3 and 4 through any subsections or subsubsections.

Table of Contents

Why Scripts For TeamTalk?

There are other sets of TeamTalk scripts out there at this writing, providing various features beyond those accessible in the classic TeamTalk client natively. Besides this, the classic TeamTalk client is very accessible already, without the need for any custom scripts. (This applies to both TeamTalk4Classic and TeamTalk5Classic client versions, though much more to version 5.)

These scripts are not required for effective use of TeamTalk. They do, however, provide a few features beyond TeamTalk itself and are publicized here in case these are sufficiently useful to people besides the script author. See the Summary of Commands and Features section for a list of features provided by these scripts.

System Requirements For JAWS Users

There are no known system requirements for these scripts beyond those for TeamTalk itself. JAWS 12.0 or newer, or the very latest update for JAWS 11, is required. JAWS versions older than 12.0 have not been carefully tested with these scripts. The scripts were written against TeamTalk 4.1 and various 5.x versions and also work with TeamTalk 4.2 through at least 4.4. Only the Classic versions of TeamTalk are supported.

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. Run the script installer and follow its instructions.
  4. To verify successful installation, type Ins+Q from within TeamTalk. 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.

Summary of Commands and Features

This section is a summary of the commands and features provided by these scripts. For details on each, refer to the next section and its subsections.

From any TeamTalk window:

When in a tree of channels and participants:

In a channel or private chat window:

* Messages in a private chat window appear most recent first. These scripts correct this, but timestamp information appears after rather than before the message to which it applies as a consequence.

Commands and Information

This section and its subsections describe the commands made available by these scripts in detail.

Enter To Enter a Room or Chat

With the scripts running, Enter on a room name will enter the room if you are not already in it. Enter on a person's name will open a chat window for that person. More generally, Enter will perform a double click at the current PC cursor location, with whatever effect that may happen to cause.

Moving Focus Among Controls

In the main TeamTalk window, Ctrl+Shift+C will focus the channel tree. In the main window and in private chat windows, Ctrl+Shift+E and Ctrl+Shift+H focus the chat text input box and the chat message history area, respectively. These commands are simply for convenience and speed.

Checking TeamTalk Status

While the scripts are running, JAWS will announce automatically any changes in the following on-screen indicators, which appear as checkboxes in a toolbar near the top of the TeamTalk window. For each of these, JAWS will say the indicator name along with "Enabled" or "Disabled" when the indicator changes.

Additionally, if TeamTalk connects to or disconnects from a server, JAWS will say "Connected" or "Disconnected," respectively.

Ctrl+Shift+S will announce a summary of TeamTalk status information. This generally consists of a list of those items from the above set that are currently checked. Pressing this command twice quickly will announce a somewhat more verbose version of the same information.

Scanning For Members

The scripts add commands for searching for members on the current server, so the user need not rifle through all levels of an involved tree structure of channels to find them all.

There are two basic ways of searching for members: in tree order, and in order of arrival on a server. Users will most likely use the first of these methods most often, but the second may sometimes be useful for spotting newcomers. (The native Ctrl+Shift+U command in TeamTalk itself is also useful for this, however.)

The commands for searching for members in tree order are

Ctrl+DownArrow and Ctrl+UpArrow
Search forward or backward from the current point for the next member, at any tree level. If a member is found, you will be moved to that member's entry in the tree, and if necessary, the tree will be expanded to include that node on screen.. If no next member is found, JAWS will say "No more members."
Ctrl+Home and Ctrl+End
Move to the first or last member in the tree, again expanding and placing focus on the member's entry as necessary.

The commands for moving in order of arrival are similar but include an additional Shift key:

Ctrl+Shift+DownArrow and Ctrl+Shift+UpArrow
Search forward or backward from the current point for the next member, in order of arrival. If a member is found, you will be moved to that member's entry in the tree, and if necessary, the tree will be expanded to include that node on screen.. If no next member is found, JAWS will say "No more members."
Ctrl+Shift+Home and Ctrl+Shift+End
Move to the first or last member in arrival order, again expanding and placing focus on the member's entry as necessary.

Note: The method used for determining member arrival order is based on observations and not on any documented or promised TeamTalk behavior. As such, both the functionality itself and the accuracy of the ordering are subject to change or error. In other words, the author believes that the above commands move in arrival order per channel but has not managed to prove that this is ever or always true.

Cycling Through Channel and Chat Windows

The scripts make Ctrl+` and Ctrl+Shift+` move forward and backward, respectively, through all visible channel and chat windows, including those from all currently running instances of TeamTalk. "Forward" usually means in order of creation on screen.

Useful Tips and Tricks

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

Keeping Track of What Is Unread In a Chat

The Alt-with-arrow commands for reading sequentially through chat messages keep track of the last message read in each channel and chat window. This means that, if you use these commands consistently, you can check for new messages in a chat window just by using Alt with arrows. This is far more practical than Alt with numbers in a very busy text chat.

Finding a New Chat Message Quickly

the following plan produces a quick way to find any chat window from anywhere in Windows:

Known Issues

Sometimes, the reporting of who is online versus idle and/or who is currently sending sound stops working on arrows through a channel's participants. This occurs when the icon that indicates these things scrolls wholely or partly beyond the edges of the window. The scripts attempt to prevent this by auto-scrolling the treeView such that the icons are fully visible, but this occasionally fails. If JAWS does not say "online" or "idle" for a participant, first try maximizing the window by typing Alt+Space and then x. If that does not help, try using the left arrow to close all nodes, then navigate back down to the entry of interest. This usually causes the status indications to work again. (The Ctrl+G native TeamTalk command introduced in TeamTalk 5.1 is more reliable.)