Using the JAWS Scripts For Microsoft Teams
Last Revised February, 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 large part by this author's employer, Level Access, for which this author is most greatful.
Table of Contents
These scripts require the following for correct operation with Teams:
- JAWS 17.0.1806 or greater. (JAWS versions prior to 17.0 do not support web site specific scripts.)
The original JAWS 17.0 release did not include the
GetElementXML() function that was added in the
JAWS 17.0.1806 release in April, 2016.
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.
To install these scripts on a new system:
- Load JAWS if this has not already been done. This will require
administrative privileges on the computer.
- 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.
- 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.
- 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.
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 or modify the following commands and command sequences:
- [ 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.
- [ 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.
- Says and Brailles, after the title,
the name of the displayed program area (Activity, Chats, Teams, Files, etc.), and
any indicators ("badges") for missed events, such as chats or team messages.
- 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 idetntification 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:
- Focus is placed on popups, such as an organizational Login page, as appropriate when Teams itself tries to focus the main window but without allowing keyboard users to navigate.
- The virtual cursor is turned off by default to simplify navigation.
Use Ins+Z to enable the virtual cursor again if and when desired.
- Significant effort is included to reduce extra menu events, focus change announcements, and other extra speech resulting from using arrow keys to move among replies in a threaded conversation while using a web-based Teams
instance, as opposed to using the Desktop application.
These issues only occur under, and the efforts are therefor only applied during the use of, JAWS versions older than JAWS 2020.
SayLine JAWS command, when typed on a message list item, will
- Speak the message instead of saying "blank."
- Announce full messages instead of truncating very long ones.
- Virtualize the message for review if pressed twice quickly.
The normal function of this action is to spell what
SayLine would say; however, spelling an entire message, with all help information provided with it by Teams, is not practical and could crash JAWS for very
- Name menu buttons in the Notifications page of Settings.
- Indicate when a feed filter returns no results, as part of the name for the "Remove feed filter" button.
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.
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.
In JAWS versions 2019 and older, arrowing through replies in a thread, and possibly in other places, can 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
- JAWS acts like a menu is being activated and deactivated very quickly.
- JAWS gets stuck acting as if a menu is open when no menu is active.
- Focus jumps through replies in a thread to the final Reply button unexpectedly instead of moving up or down to the next message as requested.
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).
This is the revision history of these scripts, most recent revision first:
- Revision 71, released March 10, 2020
- A significant attempt is included to minimize problems in the web-based Chrome instance of Teams during navigation among replies in a threaded conversation. In the web-based Teams version, Up and
Down arrows to move among replies cause a large number of spurious menu events, focus changes, and extra speech.
These issues appear to apply only in JAWS versions older than 2020 and do not apply in the Desktop Teams application.
As such, the workaround code is written to apply only to those situations and to be ignored otherwise.
- Revision 62, released March 4, 2020
- Initial public release.
Revision 61 was published on February 21; but due to an oversight, there was no link provided to the scripts even though they were available via direct link.
This revision consists of the same code as revision 61.