Using the JAWS Scripts For Skype for Windows
Last Revised June, 2020
This Guide provides tips for using Skype for Windows with JAWS For Windows and these scripts.
When the scripts are installed and Skype is open and focused, this document can be
opened via a double press of JAWSKey+F1 (or Insert+F1).
These scripts and this documentation apply to Skype for Windows, an Electron app.
As of June 29, 2020, there are two ways to obtain Skype for Windows:
Skype and these scripts work identically in both cases.
This newly unified Electron Skype app, formerly in this document called Skype 8, is now simply called Skype or Skype for Windows.
- By downloading and installing Skype for Windows Desktop.
- Natively in Windows 10 itself. Microsoft documentation as of this writing refers to this version as Skype for Windows 10 (version 15).
Before June 29, Skype for Windows 10 was a UWP application and had its own JAWS scripts on this author's website.
Table of Contents
System Requirements For JAWS Users
These scripts require
JAWS 17.0 or greater. (JAWS versions prior to 17.0 do not support web site specific scripts,
and skype runs inside a Google Chrome window.)
The current scripts are most carefully tested under JAWS 2020.
Note: As of August, 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.
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 Ins+Q while
skype 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.
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.
Using skype With JAWS and the Scripts
This section and its subsections provide tips for using skype with JAWS and these scripts.
Native skype Keyboard Shortcuts
skype provides several keyboard shortcuts. These work with or without JAWS or these scripts.
Microsoft maintains a list of the native shortcuts on
the "What are hotkeys and how do I use them in Skype?" page,
which also lists hotkeys for other Skype versions on Windows and other operating systems.
Be sure to select the correct tab for this Skype version. Tabs are located under the hotkey table near the bottom of the page.
As of this writing (June 29, 2020), the correct tab is called "Skype for Windows Desktop and Windows 10 (version 15)."
JAWS Script Commands and Features
As of September, 2018, and in coordination with JAWS 2018 and 2019 Skype scripts released by Freedom Scientific, some commands have duplicate keystrokes and/or sequences so that users of the built-in Skype scripts will not need
to learn different ways of accessing the same features.
In the below list, Ins refers to the Insert key. The CapLock key will also work in place of Ins when the Laptop keyboard layout is in effect.
The scripts provide the following commands:
- Command e moves focus to the chat input edit box for the displayed conversation, if there is one.
The JAWS command Ctrl+Ins+e and the JAWS sequence Ins+Space q e also work.
Alt+Shift+e works natively as well.
- Command h moves focus to the displayed conversation's chat message history list.
The JAWS command Ctrl+Ins+y and the JAWS sequence Ins+Space q h also work.
- Alt+1 moves focus to the Conversations list (this is not actually a script command but a native Skype command.)
The JAWS command Ctrl+Ins+n and the JAWS sequence Ins+Space q c also work.
However, these scripts simply translate those commands into Alt+1, whereas the built-in JAWS Skype scripts implement these commands by directly setting focus to the Conversations list. The behavior of these commands
in these scripts versus in the built-in scripts may therefore differ from time to time.
- Command t announces who is typing in the displayed conversation.
- [ Shift+t brings up a list of tabs available on the current screen. Use arrows to read the tab names, Enter to close the list and activate a tab, and Esc to close the list without
selecting a tab.
This feature will not work in early versions of JAWS 17.
- The standard JAWS Quick Settings command, JAWSKey+v, includes settings specific to these scripts:
- "Typing Sounder," checked by default, causes a sound to play while someone is typing in the current conversation.
- "Typing Announce" causes JAWS to announce who is typing each time this changes. This option is unchecked by default because skype natively says "Typing" whenever someone starts typing.
- Command w opens the home page for these scripts in the default web browser.
- Ins+F1, typed twice in quick succession, opens this document in the default browser.
The scripts also provide the following features:
- The JAWS virtual cursor is turned off each time skype takes focus, to simplify navigation.
The built-in JAWS skype scripts also do this as of this writing.
Use Ins+Z while in Skype if you want to turn the virtual cursor on or back off manually.
- JAWSKey+B, the standard JAWS command for reading a dialog in tab order, works with most if not all skype screens.
- JAWSKey+Q, along with announcing the active configuration name, will announce the revision number of these scripts.
- The JAWS
SayWindowTitle command, Ins+T, can include several extra pieces of information depending on the current screen:
- The number of unread messages when displayed.
- The name of the active tab when there is one.
- An indication when the Search box is open.
- The name of the active conversation if there is one, or "Home" if not.
When a conversation is displayed and such information is available, the conversation contact's presence information and/or mood text is also included.
When a call arrives in skype, signaled by the incoming call sound, focus Skype and then Tab to see caller information and buttons for handling the call.
This is made much easier by assigning a global Windows shortcut keystroke to launch the Skype window. To do this:
- Move to the Windows Desktop, such as with Win+m.
- Find the "Skype" icon using arrow keys, and type Alt+Enter to open the Properties page for the shortcut.
- Tab to the "Shortcut key" box, then type your preferred shortcut key combination, such as Ctrl+Alt+Shift+K.
- Press Enter to save the assignment. Now to focus Skype, just type the key combination you entered.
Use Alt+1 to focus the conversation list.
Sometimes, such as after a Search via Ctrl+Shift+s, it may take two invocations of Alt+1 to focus the Conversations list. This is native Skype behavior.
Press Enter on a conversation in the Conversations list to display the conversation and place focus in the input edit box for it.
In the event focus does not land in the input box, use the scripted Command e sequence to move focus there.
Use Alt+2 to pop open the contact list.
Since the contact list is searched by the "Search Skype" box (quickly reachable with Ctrl+Shift+s), it may rarely be necessary to
open the contact list directly.
A fast way to start a new conversation:
- Type Ctrl+Shift+s to focus the "Search Skype" box.
- Type the name or partial name of your intended contact, then Tab several times to reach the search results.
- Use Up and Down arrows to find your intended contact.
If at first you do not find the contact, go through the results again as the list may be updated over time as more matches are found.
- Press Enter to open a conversation and focus the input edit box.
If focus does not land in the input box, use the scripted Command e sequence to move focus there.
- To call the contact immediately once the conversation is displayed, type Ctrl+Shift+P for a voice call or Ctrl+Shift+K for a video call.
Warning: The Ctrl+Shift+P and Ctrl+Shift+K hotkeys for making voice and video calls will call the
displayed contact, not the contact whose entry is focused in the conversation list if that is a different contact. To be sure you are
calling the correct contact while navigating the conversation list, press Space
or Enter before making a call.
In a conversation history list, there may be an entry like "Conversation read up to this point by one person." Pressing Tab on this entry will focus a button with the same name. Pressing Enter (not
Space) on this button will bring up one or more buttons indicating who has read the conversation up to this point.
Arrows will move among buttons when more than one are present.
Pressing Enter on any button in this set will bring up the corresponding person's profile. Press Esc to close the set of buttons and return to the conversation history list.
Focus may actually land on the "Conversation has been read..." button, but arrows will again move through history entries.
Issues shown in this section may be fixed in future script and/or application
revisions but are not addressed as of this writing.
There is not the usual system in these scripts for navigating among chat messages. Historically this has been done with Alt with
numbers to read recent messages, and Alt with arrows, Home, End, and NumPad5 to read
sequentially while keeping track of a current position.
The implementation of skype's chat message list does not afford this type of navigation.
Opening this document from within skype by typing Ins+F1 twice in quick succession may leave the JAWS virtual cursor inactive. Use Ins+Z to turn the virtual cursor back on if this occurs.
Arrowing through a chat participant list while constructing a group chat may occasionally become slow. Alt+Tab out of and back into Skype if this occurs.
This solution should work under JAWS 2019 but possibly not under any older JAWS version.
The cause of this issue is not known.
Under JAWS versions older than 2019,
leaving and returning to Skype via Alt+Tab or other means may, depending on the active screen, cause the scripts to unload and to be replaced with the scripts for Google Chrome. Much effort has gone into mittigating
this situation, but it still occurs due to differences in how various JAWS versions load scripts for Electron applications.
The following tricks may help:
- Use Insert+q at any time while in Skype to find out whether the scripts are loaded. If so, the response will begin with a revision number.
- Move to a different control in the screen, such as a button, and try again.
- Type Ctrl+Insert+Esc to reload all scripts and configurations, then Tab and see if the scripts load.
Braille support is not complete.
This is the revision history of these scripts, most recent revision first:
Revision 174, released June 30, 2020, tested against application version 220.127.116.11
If you did not install revision 173, released on June 29, follow the instructions at the top of the next section.
This revision fixes the following issues found in revision 173:
- Extra speech on Alt+Tab into Skype. This was indirectly caused by the renaming of these scripts from "skypeelectron" to "skype."
- Failure of Skype to focus an actual control instead of the top-level document in certain cases, such as when opening the Settings page.
This is a JAWS script workaround to a Skype bug that remains as of Skype 8.61.
- JAWS saying "Document, about:blank" on some focus changes, such as into a Settings page.
- Incomplete function signature for overriding the JAWS
This is a technical detail but basically is a way of avoiding difficult-to-diagnose bugs resulting from information being lost among scripts from different files and script sets while Skype is in focus.
- JAWS silently but very rapidly calling
SayObjectTypeAndText when focus is on a Settings page and possibly at other times.
This bug would have no obvious user impact unless by raising CPU usage unnecessarily.
This issue appears to exist in the JAWS Skype default scripts as well, as of this writing (June 30, 2020).
- Incorrect Skype version number documented as tested in the next section heading. Revision 173 was tested against Skype 8.61.
This revision also adds two parameters to the
Options section of
skype.jcf to duplicate the behavior of the default JAWS Skype scripts, though the options should already have taken effect in revision
173 because they exist in the shared instance of that file:
Revision 173, released June 29, 2020, tested against application version 18.104.22.168
To install these scripts, please follow the following procedure:
- If you have installed scripts for Skype for Windows 10 (Skype UWP), run the uninstaller for these or remove them manually.
- Do the same for any scripts for Skype 8 for Windows Desktop, though this installer should catch those automatically.
- Install these scripts, allowing the installer to run the uninstaller for existing Skype 8 for Windows Desktop scripts if they are found.
- Restart JAWS after the installation of these scripts is complete.
Notes for script translators:
- skypeelectron is replaced with just skype in the names of both translator XML files; rename yours accordingly.
A few strings will also have changed in order to remain consistent with the new naming conventions.
- skypeelectron.qsm is now skype.qsm, and it should refer to skype.qs instead of skypeelectron.qs..
- In skype.qsm (after you rename it), remove the "8" from the symbol names starting with "Skype8." This should make it work in the new scripts.
Changes in this revision:
- The scripts and documentation are prepared to work under both Skype 8 for Windows Desktop and Skype for Windows 10 version 15.
As of June 29, 2020, these are identical and are the same Electron app that was formerly called Skype 8 for Windows Desktop.
Scripts and documentation now therefore refer to this Skype version simply as "Skype" or "Skype for Windows."
- 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.
- The documentation of how to handle the Command key in these scripts is up to date with respect to recent changes.
- Removed the JAWS dictionary (jdf) file that was only present to fix a bug in Skype 8.43 "message sent" announcements.
- Fixed a confusing error message produced by typing Insert+t after closing Skype with Alt+F4.
Caught by Nikola Stojsic (NS).
JAWS will now say, "GetXMLDocument returned nothing," instead of,
XML document must have a top level element.
The error messages occur because Skype, at this moment, is no longer in focus and is therefore unable to provide JAWS with necessary information for the scripts that enhance the JAWSKey+t response.
at line 0 column 0
Revision 162, released April 26, 2020, tested against application version 22.214.171.124
- Screen readers respond better to activation of Table of Contents links in this document.
- The messages for these scripts are now distributed in XML rather than jsm files so that translators can create translations with no need for script source recompilation.
See the Script Translation Procedure document for details on how to translate these scripts, including how to update the XML message file.
- 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.
You will find that JAWS will even remember, unless you edit this out, which specific key you use; e.g., LeftShift and RightShift are different keys, if you want them to be.
In fact, weird key combos like LeftShift+RightShift+s are legitimate key combinations.
The system is documented in more detail in the Multi-Key Command Sequence section of my Common Script Elements page, also just released alongside this script update but shared
Revision 149, released April 13, 2020, tested against application version 126.96.36.199
- Insert+t is enhanced:
- If there is an active tab, its name is included.
- If the Search box is open, this is indicated.
- Conversation information is reported when on screen even when the Search box is open
and when a tab other than Chats is active.
- Detection of the Home screen should be more reliable.
- JAWS announces items in the New Call list as the user arrows through it.
- [ Shift+t brings up a list of tabs available on the current screen. Use arrows to read the tab names, Enter to close the list and activate a tab, and Esc to close the list without
selecting a tab.
This feature will not work in early versions of JAWS 17.
- Bug fix: The JAWS SayLine command works in JAWS user buffers (such as help screens) and when the PC cursor is not active, rather than being silent in some cases.
Revision 137, December 16, 2019, tested against Skype 188.8.131.52
- Typing indicator sounds and announcements, when enabled by the user, work in Skype 8.55, where their structure in Skype itself changed slightly.
- Navigation in a conversation's chat message list will announce some material that was previously not spoken:
There may be other special message types that say more than before.
- For a voicemail, the amount already played.
- For a completely played voicemail, the correct length - though "0 seconds" still speaks first until Skype itself fixes that issue.
- For a finished call, the duration of the call.
Revision 130, August 30, 2019, tested against Skype 184.108.40.206
- Fixed the command sequence for changing the scripts' Command key, by default [ JAWSKey+c, so it stores the result in the correct file. This bug was an unexpected interaction between the Script Load Manager
(SLMan) and the Skype scripts, and thus would only have affected users of JAWS versions older than the last August update to JAWS 2019.
Revision 128, August 23, 2019, tested against Skype 220.127.116.11
- This script update no longer includes code to attempt self-loading into JAWS versions older than the August 2019 update. Use the companion Script Load Manager (slman) scripts
to make these scripts function in older JAWS versions.
If you are upgrading these Skype scripts, install the Skype script upgrade before installing the Script Load Manager.
- The JAWS
SayWindowTitle command, Insert+t, will announce contact online status and/or mood text when available in a split-out conversation window, just as for a conversation in the main Skype window.
This improves support for the Skype 8.51 split-view mode.
Revision 123, July 24, 2019, tested against Skype 8.50
- Added protection against repeated, per-JAWS load restart requests to restart JAWS again.
These could occur in a rare circumstance, though at this writing no instances of this have been reported.
Revision 121, July 10, 2019, tested against Skype 8.48 and 8.49
- JAWS again announces dates as you arrow past them in chat history.
- The scripts attempt to reconfigure their own loading strategy based on your JAWS version. This may cause you to be prompted to restart JAWS once on first using this updated script set; this is normal.
The purpose of this adjustment is to try to make the scripts load reliably in each of JAWS 17, 18, 2018, and 2019, despite differences among JAWS versions in how scripts are loaded for Electron apps.
Revision 113, April 18, 2019, tested against Skype 8.43
- Very long chat messages should read completely on arrows and
SayLine rather than being truncated at approximately 1,000 characters.
- Spoken messages produced when a chat message is sent, with or without editing, should be normal in Skype 8.43 rather than being control names like "MessageComposer.MessageEditedLabel."
Revision 102, February 12, 2019, tested against Skype 8.38
- The checkbox lists seen while creating group chats are supported. Note that, as currently implemented in Skype, Enter rather than Space toggles checkboxes in these lists.
Also beware that navigation in these lists may be very slow and require frequent
SayLine commands under JAWS versions older than 2019.
- By default, a sound plays while someone is typing into the current conversation.
JAWS can also announce who is typing each time this changes, though this feature is disabled by default to avoid duplicating the native "Typing" announcement made by Skype 8 itself.
Both of these new features can be turned on and off from Quick Settings (JAWSKey+v).
- The long documented Command t command for checking who is typing now works as intended.
skypeelectron.jcf is no longer overwritten during a script install or update. Instead, the installer makes sure that required settings exist in it. This prevents script updates from resetting user preferences.
skypeelectron.jsm, accidentally omitted in the previous release, is now included. This will be useful to script translators.
There is now also a
- There are further refinements to the support for JAWS 17, 18, and 2018 to try to make sure the scripts load as expected under those JAWS versions.
- This documentation is updated to reflect a change or two in native Skype keystrokes since Skype 8's initial release.
Revision 86, February 6, 2019, tested against Skype 8.38
- Command h works in Skype 8.38. Tested in regular, private, and SMS message windows.
- JAWS versions starting with the January update to JAWS 2019 should not say "region" after every chat history entry.
- The scripts make an attempt to reconfigure their own means of loading in JAWS 18 and older, and in old versions of JAWS 2018.
- Source code to the scripts is no longer included. See my Script Distribution Policy document for details. As one side effect, this will cause installation to run much faster.
Revision 73, November 29, 2018, tested against Skype 8.32 through 8.34
- Speech and Braille indicate chat history dividers like "Today" and "Yesterday" as they are jumped over during history navigation with arrows. This material is spoken in a lower voice to distinguish it from the newly
selected history entry.
- Documented how to find out who has finished reading messages in a conversation.
- Supported a few features of the built-in JAWS 2018 and 2019 Skype 8 scripts by borrowing code from them:
- Improved speech on Alt+Tab into Skype.
- Support for the native JAWS 2018 and 2019 keystrokes for moving to chat input box, chat history list, and Conversations list.
The Conversations list command though uses the native Skype Alt+1 command here instead of a UIA refocus algorithm as in the built-in JAWS scripts.
Revision 60, August 31, 2018, tested against Skype 8.28
- Fixed a bug resulting from changes to support the August JAWS 2018 update: Changing the Command key from its default of [ to another key works again.
Revision 59, August 22, 2018, tested against Skype 8.28
Updates to improve support for the August update to JAWS 2018, and a few general improvements:
* These additions are adapted from the Skype 8 scripts that shipped with the August update to JAWS 2018.
- Fixed notification announcements like "Message sent" for the August JAWS 2018 update.
- Avoided double loading of scripts caused by a change in how JAWS 2018 loads scripts for Electron apps. This change may cause JAWS to say "Reloading" once after any update to these scripts is installed.
- Braille and the
SayLine command work in chat history lists.*
- JAWS does not say "region" on every chat history list entry as the user arrows among them.*
- Command h works in an active call when the chat area is shown.
Revision 47, August 14, 2018, tested against Skype 8.27 and 8.28
- The standard JAWS command for reading dialogs in tab order, Ins+B, should work on most if not all Skype dialog screens.
- This Guide includes the script revision history.
Revision 45, July 23, 2018, tested against Skype 8.25
- In addition to the conversation name when a conversation is shown, the JAWS
SayWindowTitle command, Ins+T, will say the active conversation contact's presence information and/or mood text when available.
- Arrows that were inappropriately silent during navigation with the virtual PC cursor should now speak normally.
- JAWS should no longer repeat "Skype Preview" and "file://Index.html" during navigation with Tab and Shift+Tab.
- A small typo in the script users guide that may have caused some text to be displayed in an unusual font is fixed.
There are also two typos fixed in commands in the "Useful Tips" section of the guide; thanks to Michele Barbi for catching those.
Revision 39, July 17, 2018, tested against Skype 8.25
Skype 8 users should upgrade to Skype 8.25 if not already done before downloading this script update. Changes:
- Command h, the command to move to chat history, works in Skype 8.25.
- Alt+1 works properly and natively in Skype 8.25 and is therefore no longer scripted. The command now works with and without these scripts.
- Ins+T includes the displayed unread message count and also the name of the active conversation if there is one, or "Home" if not.
- The user guide for these scripts now calls this Skype version "Skype 8," as Microsoft seems to do, rather than "Skype Electron."
- Up and down arrows no longer say 'blank' sometimes before reading the next/previous entry in a chat history list.
SayAppVersion (Ctrl+JAWSKey+V) says the full Skype version including the build number.
- the installer will try drives D and E along with C for location of JAWS program when unable to read the registry.
(This was prompted by an actual event at a corporate work site.)
Revision 28, April 20, 2018, tested against Skype 8.19
- The Alt+1 command for moving to the conversation list works in Skype 8.19, though a Tab is necessary after this command before arrows will navigate the list.
- Translators: Translate the
sutil___scConvList value in
skypeelectron.jsm into the name of the conversation list to make the above feature work. Be careful to preserve letter casing.
Revision 21, February 26, 2018, tested against several Skype Electron versions up through 8.16
Fixed Ins+T's ability to name conversations in many cases.
Revision 20, February 25, 2018, tested against several Skype Electron versions up through 8.16
This is the first release of these scripts.