JAWS Scripts For TeamTalk Classic
Doug Lee
Last Revised July, 2014

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, both from now on referred to simply as TeamTalk.) 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:

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 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 PC.
  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 PC who will be using JAWS with these scripts. Do not attempt to install these scripts into a JAWS version older than 11.0 latest update. Doing so is likely to cause compilation problems and could disable any existing scripts for this application for that JAWS version.
  3. Run the script installer and follow its instructions. At this writing, the installer is only capable of installing into JAWS English (enu) folders. If you need to install the scripts into a different language, it will be necessary to move the scripts from the enu folder to that folder after running the installer.

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:

* For now, private chat window messages appear in reverse order, as this is the order in which they appear in the TeamTalk Classic client itself.

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.

Checking TeamTalk Status

Ctrl+Shift+S will announce a summary of TeamTalk status information, including an indication of whether TeamTalk is connected to a server, whether Push-To-Talk and/or Voice Activation are enabled, and whether channel messages are shown in the TeamTalk window. Pressing this command twice quickly will announce a somewhat more verbose version of the same information.

Automatic Reporting of TeamTalk Status Changes

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.

Warning: This feature has not been well tested when multiple TeamTalk clients are running simultaneously on the same machine.

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

Alt+1-9/0 read chat entries in reverse order in private chats.

Ctrl+Left and Ctrl+Right, when typed in a channel's chat window, are scripted to move by word as is usual in JAWS; however, sometimes they can cause focus to move out of the chat window at this time.