Using the JAWS Scripts For Microsoft Teams
Doug Lee
Last Revised April, 2020

This Guide provides tips for using Microsoft Teams (Teams) with JAWS For Windows and these scripts. When the scripts are installed and Teams is open and focused, this document can be opened via a double press of JAWSKey+F1 (or Insert+F1). For more general information about using Teams with a screen reader, consult Using Microsoft Teams With a Screen Reader.

Development of these scripts was funded in part by this author's employer, Level Access, for which this author is most grateful.

Table of Contents

System Requirements For JAWS Users

These scripts require the following for correct operation with Teams:

Note: As of September, 2019, running these scripts under JAWS versions older than the JAWS 2019 August update will require the companion Script Load Manager (slman) scripts to manage Electron app script loading for your JAWS version. If you are upgrading these Teams scripts, install the Teams script upgrade before installing the Script Load Manager.

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 Ins+Q while Teams 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. If you are using an old JAWS version, it may be necessary to install or reinstall the Script Load Manager (slman) scripts to manage Electron app script loading for your JAWS version.

Using Teams With JAWS and the Scripts

Script Commands and Features

Script commands for Teams all begin with a prefix key, by default the left bracket ([). This prevents script commands from interfering with any native keystrokes supported by Teams itself.

The scripts provide the following features, commands, and command modifications:

Message reading system
A system for improving the reading of messages. See The Message Reading System for details and relevant commands.
Automatic fix for Teams window structure problems when possible
Sometimes, Teams' accessibility information winds up owned by another window that is not part of Teams, which causes screen readers to become confused. These scripts try to detect and rectify this situation when Teams takes focus. If you hear an announcement like
Teams needs to be maximized and/or restored in order to fix a problem affecting screen readers. If this fails, restart Teams.
try flipping Teams between the Restored and Maximized states. If this does not work, restart Teams.
[ n and [ p
Move focus to the next and prior areas of the screen, respectively. These command sequences are duplicates of the native Ctrl+F6 and Ctrl+Shift+F6 commands and are included for those who prefer to avoid key combinations that require moving the hands away from the home row on the keyboard.
` (the grave accent key)
Moves focus to the next control that allows it. This key acts like Tab but is capable of reaching some controls that Tab may skip, such as links inside a message.
[ b
Bring up a list of buttons for selection. Press Enter on a button's name to click the button, or press Esc to close the list without activating any buttons. This command can be especially useful for finding "Hang up" and other call management buttons quickly.
[ t
Move focus to the first tab control on the screen, or the next one if more than one are available and one already has focus.
JAWSKey+F1 typed twice quickly
Opens this document in the default browser.
Ins+T
Says and Brailles, after the title, as many of the following as are applicable: If, in a one-on-one chat, the status appears as "Status unknown," it may be necessary to wait for Teams to update the status. If this condition persists for more than a minute, it may be necessary to sign into Teams.
Ctrl+JAWSKey+V typed three times quickly
Brings up, in a JAWS virtual viewer, a list of the Teams versions so far seen. Each version will be shown with the date on which it was first run with JAWS and these scripts. This is meant to simplify identification of problems arising from Teams updates, although the Teams HTML code can change without a corresponding change to the version number.

The scripts also provide the following features:

The Message Reading System

A Teams chat message can include several types of information: content, reactions, reply count, attachments, flags such as Edited, etc. The message reading system described in this section can simplify accessing specific parts of a message. This is accomplished in two ways:

Message Reading Format Customization

The key sequence [ f will cycle between available message formats. The default format is "Default custom," which rearranges information in messages in a way pleasing at least to this script author. The "Native" option reverts message reading to the native format presented by Teams itself.

The "Default custom" message format presents message information in the following order:

Conspicuously removed from this reading format is the message's help text. Use the sequence [ 8 to read the help text.

Note that any change to the message reading format via [ f will remain in effect until changed again, even if JAWS is restarted.

Reading Specific Parts of a Message On Demand

Sequences consisting of [ followed by a digit between 1 and 9 will read specific portions of the current message:

Unrecognized Message Formats

From time to time, a message may appear that the scripts are unable to recognize for format alterations, separation into parts, etc. This can occur because

Messages with an unrecognized format are always presented as if the "Native" message reading format is in effect; that is, without alteration from what Teams natively presents. Command sequences for reading portions of a message may produce error messages instead of information when applied to a Teams message with an unrecognized format.

Using the Calendar Page

Activate the Calendar page with Ctrl+4. Teams offers two calendar views: Day view and Agenda view. A button for the view not currently showing will appear in tab order.

The Day view appears by default and shows meetings in a table, in which Left and Right arrows move among meeting links and Enter on a link populates the Details area from the meeting. In the Agenda view, all meetings for the current week appear in a treeView. Pressing Enter on an meeting again populates the Details area with the details for that meeting. Details can be reached in either view via Tab.

Known Issues

Issues shown in this section may be fixed in future script and/or application revisions but are not addressed as of this writing. Note that specific issues may and may not be present depending on the exact version of Teams HTML or application code running.

The JAWS touch cursor may sometimes provide more information than the PC cursor, especially in Settings pages where it can find hints for fields, group headings, etc.

In JAWS versions 2019 and older, arrowing through replies in a thread, and possibly in other places, could cause any of the following anomalies:

These problems appear to be fixed in JAWS 2020. Revision 71 of these scripts attempts to mittigate these issues but may sometimes fail to do so, and may sometimes cause silence after an arrow to a new reply. Use the JAWS SayLine command to read any reply that receives focus without speaking, or to verify where focus finally settled after navigation.

TreeView item states (Collapsed and Expanded) are not always properly indicated.

Braille is not well supported in this application.

Some list controls allow navigation with up and down arrows to move out of the list, or to wrap from one end of the list to the other.

Activating one of several unread items in the Activity app on an iOS device clears all unread activities immediately from a simultaneously running instance of Teams on Windows, even though the as-yet unexamined activities remain marked as Unread in iOS. Last verified in Teams version 1.2.00.8864 on Windows and 1.0.72 on iOS (April 25, 2019).

Revision History

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

Revision 116, released April 19, 2020
Revision 108, released April 15, 2020
Revision 99, released April 14, 2020
Revision 98, released April 07, 2020
Revision 71, released March 10, 2020
Revision 62, released March 4, 2020