JAWS Scripts For Skype For Business For Office 365
Doug Lee
Last Revised February, 2020
This document describes the scripts for Skype for Business for Office 365 (SfB)
and provides tips for using this application with JAWS.
This document can be opened from within SfB via a double press
of JAWSKey+F1 (or Insert+F1).
These scripts were made possible in part by funding and resources
provided by
Level Access while it was known as SSB BART Group, for which
this author is most grateful.
Table of Contents
Supported Software
These scripts are written for Skype for Business for Office 365,
the actual application name for which is lync.exe.
For simplicity, this document will refer to this application
simply as "SfB."
These scripts work in JAWS 17 and later.
They will not work with older JAWS or Communicator/Lync versions.
For links to all script sets for other SFB/Lync versions, visit the main Skype For Business script page.
Note: The official name for this Microsoft product is
Skype for Business.
This is not to be confused with the consumer-grade Skype products now also owned by Microsoft (Skype 8 for Windows Desktop and Skype UWP for Windows 10).
These scripts and this document refer exclusively to the Skype for
Business (SfB) that is the rebranded Microsoft Lync.
For scripts and documentation pertaining to Skype, refer to the
JAWS Scripts For Skype page.
Key Sequences
These scripts incorporate commands that consist of sequences of keystrokes, all beginning with a common prefix, or "command keystroke."
This approach allows many script commands without the risk of conflicting with application keystrokes.
See the "Multi-Key Command Sequences" section of the "Common Script Elements" document for further details, including
how to explore the available script commands (similar to exploring a menu system),
and how to change the Command key if necessary.
By default, the Command keystroke for these scripts is [.
This document may refer to this keystroke as [ or Command;
so, for example, [ Tab and Command Tab both refer to typing the prefix key, then separately the Tab key.
Some sequences may consist of more than two keystrokes, or "levels"; for example, [ d r would refer to typing [, then d, then finally r.
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:
- When a conversation is in focus, Command h and
Command e move to the history and input edit windows, respectively.
Sufficiently new SFB versions also provide Ctrl+Shift+M as a native keystroke to move to the input window.
Command i does the same as Command e for historical reasons.
- In a non-conversation window, notably the main SFB window, the scripted commands for moving to the input box (Command e and Command i) will move focus to the input box in the active window.
In the main SFB window, this is the Search box.
The SFB-native Ctrl+Shift+M command does not act in a non-conversation window as of this writing.
- In a conversation window,
Alt+1 announces the timestamp of the latest message received in this window, or the currently
displayed typing indicator, whichever is on screen at the time.
Note that messages sent by you do not change what this command reads.
- From a conversation in a tabbed conversation window,
Ctrl+F4 closes the active tab.
Sufficiently new SFB versions also support use of Esc for this purpose.
- When focus is on an entry in a conversation window's chat message
(history) list, Ins+F7 or JAWSKey+F7 brings up a
list of links in the focused chat entry for review and/or activation.
In sufficiently new SFB versions, Tab will reach links (though possibly without confirming speech), and Enter will activate a link. This also allows calling phone numbers found in a chat message.
- Typing the JAWS
SayLine
command, Ins+Up, three times in quick succession
while focus is on a list item (such as in a conversation history) will
bring up the list item in a JAWS virtual viewer for review. This can
be particularly useful for long chat entries.
- In an active meeting or call, Command s announces who is currently speaking.
- Command c focuses the displayed result list when typed within
the main SfB window. This may be contacts, conversations, etc., depending on the active tab in the main window.
When typed in a conversation window that contains more than one conversation, this command will focus the list of conversations. In this list, use arrows to review available conversations by name, and Space to switch
to one.
- In the main window, Command n focuses the "Change my note" field.
- If a window contains multiple panes, Ctrl+` and
Ctrl+Shift+` cycle forward and backward, respectively,
through the available panes. Ins+T will also report that
multiple panes are available.
- Ins+H brings up a short summary of scripted keystrokes.
- Typing Ins+F1 twice in quick succession brings up the
manual for these scripts in the default browser.
These scripts also provide the following features beyond those provided by
SfB itself:
- Automatic announcement of incoming chats in the current chat
window (with user toggle in JAWS Quick Settings).
- Complete reading on arrows of chat messages in chat history
windows. (In at least some SFB versions, long messages could otherwise be cut short.)
- Faster handling of chat message entry, which can otherwise become slower and slower over the course of a text conversation that lasts longer than a few minutes.
- Customization of the
SayWindowTitle
script (Ins+T) to include several items for user convenience:
- The correct main window title in SFB versions where this would not otherwise speak natively.
- The names of any active tabs or subtabs in the main window.
- For tabbed conversation windows, the number of available conversation tabs.
- The number of available panes in the current window, if more than one are available.
- Any notifications, such as for missed conversations or voicemails (main window only).
- For conversation windows, contact online/offline status and other shown status text.
- Improved reading in the contact list.
- Improved naming of many buttons in the application.
- Automatic announcement of the meanings of many emoticons.
- "Not checked" announcement for toggle buttons.
- A functional Ins+B (
ReadBoxInTabOrder
) command.
System Requirements For JAWS Users
There are no known system requirements for these scripts beyond those
for SfB itself. However, JAWS versions older than 17.0 will not
work with these scripts.
Script Installation Instructions
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 Insert+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.
In some cases, restarting JAWS may fix this issue.
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.
- In "Ringtones and Sounds," uncheck "Mute incoming IM alert sounds
when viewing an IM conversation." This should make SfB produce a
sound for an incoming chat even when it arrives in the focused chat
window.
- As desired, do any of the following to save screen space in various situations:
- In Personal, uncheck "Show pictures of contacts."
- In Contacts, change "Display my contacts with" from "Contact name
and picture (two lines)" to "Contact name only (one line)."
- On the IM page, check "Hide pictures in IM."
- On the IM page, uncheck "Show emoticons in messages."
This was required for correct emoticon announcement in older Lync and
Communicator versions but should no longer be necessary.
- In Meetings under "When I join meetings," check "Show IM" and/or
"Show the participant list" if you anticipate routinely accessing
these controls during a meeting.
- Sufficiently new versions of SFB provide a built-in audio typing indicator sound. To use this, check "Play a sound when viewing an IM conversation and someone is typing" on the
Ringtones and Sounds page.
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 a tabbed conversation window, use Ctrl+Tab and Ctrl+Shift+Tab to move among conversations. You can also move to the list of conversations
by typing Shift+Tab a few times,
then use up and down arrows to review conversation names and Space to switch to a particular conversation.
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.
Known Issues and Workarounds
This script set does not implement the normal chat management command set
(Alt with numbers, arrows, Home, End,
and NumPad5). SFB does 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.
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.
Revision History
This is the revision history of these scripts, most recent revision first, since the previous (SFB 16) script version:
Revision 394, released June 25, 2020, tested against SFB/Office version 16.0.13001.20198
- Screen readers respond better to activation of Table of Contents links in this document.
- For those who need to change the Command key, the left bracket ([) by default, the system is significantly improved, so that you need not type the key or key combination out as a name or string of key names. You may
edit the keystroke names before accepting them, but JAWS will type them out for you now.
The system is documented in more detail in the Multi-Key Command Sequence section of my Common Script Elements page.
- The installer contains version and product information visible from the Details tab in Windows Explorer, to better identify its contents. This update is being applied to all projects.
- A "directives" text file is included that provides information on how to install this set of scripts manually.
See "Handling Directives Files" in the "Common Script Elements" document for further information.
Revision 388, released February 6, 2020, tested against SFB version 16.0.12430.20184 and about 19 earlier versions released after July 24, 2019
- This is the first version specifically designed for SFB 365.
- The minimum JAWS version supported is now 17.0 rather than 16.0.
This permits use of some newer methods of finding information in SFB windows.
- Command e (and for historical reasons, Command i) move focus to the Search edit box in the main SFB window, in addition to their normal function of moving focus to the input box in a conversation window.
- JAWS' normal internal translation of standard phrases now apply to these scripts when they are run in a non-English language.
- Fixed a rare cross-project bug that could cause JAWS to speak or Braille out-of-date information about the current screen.
For technical details on the bug and fix, refer to The JAWS Script Cache Life Cycle (CLC) Bug and Resolution.
In these scripts, a possible effect of this bug was the announcement of a closed conversation's title in place of the title of the current conversation.
- The release notes for this version of the SFB scripts are now part of the manual rather than being separate.