JAWS Scripts For Skype for Business 2015/2016 and Microsoft Lync 2013
Doug Lee
Last Revised May, 2017

This document describes the scripts for Skype for Business 2015/2016 (SfB) and Microsoft Lync 2013 ((Lync). and provides tips for using these applications with JAWS. This document can be opened from within SfB or Lync 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.

These scripts were made possible in part by funding and resources provided by SSB BART Group, for which this author is most greatful.

Table of Contents

Supported Software

These scripts are written for Skype for Business 2015/2016 and Microsoft Lync 2013, the actual application name for both being lync.exe. For simplicity, this document will refer to these application versions simply as "SfB."

These scripts work in JAWS 15 and later. They will not work with older JAWS or Communicator/Lync versions. Earlier JAWS versions do not include sufficient support for UI Automation (UIA), which is required for scripting this application.

Note: The official name for this Microsoft product is now Skype for Business, but there was previously a Skype for Business offering by the Skype company. The Skype for Business application now produced by Microsoft is basically Microsoft Lync 2013 with a new name and appearance. These scripts and this document refer exclusively to the Skype for Business (SfB) that is the rebranded Microsoft Lync, and occasionally to the prior version of the application, Microsoft Lync 2013. For scripts and documentation pertaining to Skype and the older Skype for Business packaging thereof, refer to the JAWS Scripts For Skype page.

Script Features In Brief

Note: SFB itself provides many commands and features for blind users. Refer to the following Microsoft documents for further information:

These scripts provide the following commands beyond those available in SfB itself. Note that the word "Command" below, when appearing as part of a keystroke sequence, refers to the prefix key for all script command key sequences. By default, this is the left bracket ([) key. See the "Key Sequence Help section for more details on key sequences, including how to change the command key if necessary.

These scripts also provide the following features beyond those provided by SfB itself:

System Requirements For JAWS Users

There are no known system requirements for these scripts beyond those for SfB itself. However, JAWS versions older than 15.0 will not work with these scripts.

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

SfB Configuration For Optimal Use With JAWS

The following SfB option settings may improve SfB's usability via JAWS. These items are located in the Tools/Options dialog (Alt+T O). Switch among pages by arrowing through the treeView of page names. All of the following suggestions are optional.

Tips For Using Skype For Business With These Scripts

To focus the main SFB screen, type Ctrl+Alt+Shift+3 (a native SFB keystroke).

To hear any notifications, such as notice of missed conversations or voicemails, type Ins+T from the main SFB screen. The scripts will make JAWS include these notifications after the screen title and, when applicable, the names of any active tabs on the screen.

To switch quickly among tabs on the main screen, use Ctrl with numbers; for example, Ctrl+1 switches to the Contacts tab. These keystrokes are native to SFB itself and will work with or without the scripts being loaded.

In some lists, such as Contact lists, the JAWS SayLine command, normally Ins+Up, may announce more information than is automatically announced on arrowing among list items or when tabbing into the list. Technically, arrowing among items and tabbing into the list will announce the Name of the item, whereas the SayLine command uses more script logic to determine what to announce. As SFB evolves, the precise content of these announcements may change based on the structure of accessibility information provided by Microsoft for the list items.

Key Sequence Help

These scripts incorporate several commands that consist of sequences of keystrokes, all beginning with a common prefix, or "command key." By default, the command key is the left bracket ([) key; see below for how to change it if necessary.

In addition to the commands documented elsewhere, the following commands are also available, at any level:

If you need to change the command key, type the current command key followed by either JAWSKey+C or Ins+C. An edit box will appear into which you may type your desired command key. The current key will initially appear in the box. Then Type or spell out your desired command key and press Enter to apply the change. If the keystroke requires modifiers like Shift or Ctrl, spell those out; do not simply type, for example, A when you mean shift+a. Example keystrokes exactly as they should be typed:

Warning: If you accidentally set the command key to something you cannot type, you will currently need to edit it in these scripts' .jcf file in the JAWS user directory under the MKCSOptions section.

Known Issues and Workarounds

This script set does not implement the normal chat management command set (Alt with numbers, arrows, Home, End, and NumPad5). Lync 2013 and Skype for Business 2015/2016 do not provide a means, even via scripting, to implement this navigation system. These scripts do provide Alt+1 to read the timestamp of the last received message in a chat window.

In some SFB versions, arrowing or tabbing to a contact in the contact list may announce different information than would be spoken by the JAWS SayLine command, Ins+Up. This is because of variations among accessibility properties provided by SFB itself. Arrows and tabs use just the Name property of the newly focused list item, whereas the SayLine command uses much more involved script logic to determine what to speak. As SFB evolves, the precise content of these announcements may change based on the structure of accessibility information provided by Microsoft for the list items.

As a special case of the above issue, tab and arrows may report outdated information as compared to SayLine; for example, arrowing to a contact may say "Away 5 mins," whereas SayLine might say "away 30 mins." Future versions of SFB will likely be better at keeping these list item names up to date.

JAWS may say "button" more often than it should. This is because many SfB controls are parented in UIA by controls that call themselves buttons. The scripts silence some but perhaps not all of these extra announcements.

Sometimes, pressing Tab from a message in the chat history list will encounter one or more extra tab stops before reaching the chat input box. These may say nothing, "Rich edit control," or the name of a chat participant. It may be more efficient to use Command i to jump directly to the chat input box in such cases. Sufficiently new SFB versions also provide Ctrl+Shift+M as a native keystroke for this purpose.

Arrowing among messages in a chat history list can encounter silent spots, where an up or down arrow appears to do nothing. Continue to arrow past such spots. No information is skipped; it just appears as if arrows now and then fail to leave the current item and move to the next one. This is considered a bug in some older SFB versions but appears to have been fixed in newer versions.