This document explains how to use Skype 4.1 with the JAWS Scripts For
Skype. This document applies specifically to the Skype 4.1 release of
June 30, 2009 (Skype version 4.1.0.136), which contains more accessibility
features than available in previous Skype 4 versions.
The document is laid out such that major sections are level 2 headers
and subsections are level 3 or higher headers. JAWS users can thus navigate
quickly among sections with the h command and by typing
header level numbers.
Table of Contents
The following steps should be taken before Skype 4.1 can work effectively
with JAWS and these scripts:
- Change to Classic Windows format:
JAWS will not see the menu bar if you use the default "Skype" window
format instead of the old "Classic Windows" format. To change this:
- Type Alt+T for the Tools menu, then O for
the Options dialog. You should land on the General Settings page.
- Tab a few times to find the option that says, "Visual
style of the window." If this is set to "Skype," press
DownArrow once to change it to "Classic Windows."
- Save the change by pressing Enter, or if you're not
running the scripts yet, Tab to "Save" and press
Enter there.
- Enable accessibility features:
Some Skype 4 versions provide one or two options to improve accessibility. To turn
these on:
- Type Alt+T for the Tools menu, then A for the
Accessibility menu.
If you do not find Accessibility in the Tools menu, look in the View
menu, which can be opened with Alt+V.
Some Skype 4 versions may not provide the Accessibility menu at all.
If you don't find it, you probably have one of these Skype versions,
and you can skip this change.
- You will most likely land on "Extended Keyboard Navigation."
If this option or the "Simplified Graphics" option below it is not
checked, press Enter on it to check it.
This will also close the menus.
- Repeat the previous two steps until both items are checked, then
Esc out of the menus when this is done.
Some Skype 4 versions may not provide both options.
- Enable Compact view:
Seasoned Skype 3 users may want to turn on the Compact view, which puts chats,
now called "conversations", into separate windows so they can be
reached via Alt+Tab. To enable this view:
- Type Alt+V for the View menu, then UpArrow
to find the "Compact View" line.
If you instead find "Default View," you are already using Compact view.
- If you find "Compact view," press Enter to turn the
view on. This will probably open a conversation window immediately.
If so, you can use Esc to close it and return to the main
Skype window.
The JAWS scripts provide the following features over what Skype itself
provides:
- JAWSKey+T for identifying where you are in Skype.
This includes announcement of which main-pane list is active if one
is, and also the name of the current conversation if focus is in one.
- Ctrl+Shift+O for listing online contacts, and
various Command O sequences for listing subsets
of these.
- Ctrl+Shift+E for reading the Account panel.
Former Skype 3 users note: This panel no longer contains missed events.
Missed events appear in each conversation to which they belong.
- Ctrl+numbers to jump to various parts of the Skype window,
though they are not really "tabs" as they were in Skype 3. The Command
T numbers work also. The assignments are as follows:
- 1 for the contact list.
- 2 for the conversation list, or Inbox.
- 3 for the live conversation list (this is where active calls go).
- 4 for the input box in the current conversation if there is one.
- 5 for the message list for the current conversation if there is one.
- 6 for the current conversation's profile area if it is visible.
This currently just reads the area without switching focus to it.
Type the command twice to focus the area.
- 8 for the History list.
- Alt+numbers to read conversation messages when focus is in a conversation pane.
Double Alt+numbers work to virtualize conversation messages also.
- Alt+left and right arrows, Alt+Home, and Alt+End, to move through
messages in a conversation sequentially. This is particularly useful
in rapid conversations, where the messages read by Alt+numbers change
quickly.
- Indication of which messages are new, not delivered, and edited.
- F2 to toggle on/off the announcement of timestamps with
messages in a conversation, assuming timestamps are enabled in Skype itself.
- Ctrl+Tab from a conversation window for cycling among conversation
windows. This should work in both Compact and Default views.
- Typing announcements and sounds and the corresponding commands to
control them.
- JAWSKey+F8 for toolbar items and other clickable items
in the current window.
Some Skype 4 versions may include controls without names, which will
show up in this list looking like "Item 1 push button - Unnamed."
A later Skype version may provide more appropriate names for these.
- Enter for "Save" in Options (this has been a
scripted feature, not a native Skype feature, for a long time).
- Ctrl+Shift+C for recompiling the Skype scripts from
within Skype.
- Ctrl+Shift+W for going to the Skype scripts home page.
- JAWSKey+F1 twice quickly to go to this manual.
Here are some quick tips on how to do specific things in Skype 4.1 when
the scripts are running:
These instructions are based on Skype 4.1 as released on June 30,
2009.
JAWS users can jump from item to item using the letter i.
- Open a new conversation (like a chat in Skype 3)
- Press the Applications key on a contact entry in the
Contact list, then choose Send IM.
If you have configured Skype to open a conversation on Enter, rather
than starting a call, Enter should work just as well here.
Ctrl+1 will focus the contact list.
- Return to a conversation that's already open
- Use Ctrl+Tab from another Skype window to find it if
you use Compact view.
You can also press Ctrl+2 for the Conversation list, find the
conversation you want, press the Applications key, and
choose Send IM.
Again, Enter can be configured to do this as well.
If you are using Default view, where conversations appear in the main
Skype window, you can press Space on a conversation list
entry to display the conversation without leaving the conversation
list. This makes Alt+numbers and Alt+arrows work without changing
focus.
- Check the time at a contact's location
- Open or find the conversation as above, then use Ctrl+6
to read the profile area. The time is included there.
Note that the time is not shown in the Contact list, even visually, as
it was in Skype 3.x.
- Call someone in your contact list
- From the Contact or Conversation list, arrow to the contact of
interest, pop up the Context menu by pressing the
Applications key, and select Call.
Enter can be configured to start a call or start a text
conversation, so depending on your personal preference,
Enter may work here as well..
Note that starting a call
will put the conversation in the Live Conversations list rather
than the Conversation list.
By the way, when a call is active, that person's entry in your contact
list will be gone; it literally moves from Contacts to the Live
Conversations list.
It will move back when the call ends.
- Call the person you're typing with in a conversation
- Tab to the Call button and press Space.
- Call a phone number that is not in your contact list
- Choose "Call Phones" from the View menu.
When the Call Phones page opens, type the number and press Enter.
- Dial digits while in a call, such as to control an answering
machine or voicemail service
- Just press the desired digits. Skype 4.1 focuses the Dial Pad
whenever you start a call with a telephone number.
If this does not work, type Ctrl+Shift+D to focus the Dial Pad first.
- Hang up a call
- Use Ctrl+3 to move focus to the Live Conversations
list, select the call, and use the Context menu to select End Call.
The person's entry will migrate back to the Contacts list after a few
seconds.
If you have configured hot keys, a hot key such as Alt+PgDn
can also be used to end a call.
- Play a voicemail
- Find the voicemail's entry in the conversation message list for
that person, then Tab to the Play button and press
Space.
- Stop a playing voicemail
- Same as above, but the button will be called "Stop" when the
voicemail is already playing.
- Accept or refuse an incoming file transfer
- Find the file transfer's entry in the conversation message list for
that person, then Tab to the Save or Cancel button and press
Space.
- Change your mood text
- In the main Skype window, tab until you hear the words "mood message"
and either your current mood text or a message like, "Add video or
write a message here for your friends to see." Press Space there to
open an edit box, even though JAWS may not have said "button" or
"link." Type your message and press Enter to leave the edit box.
- Use the Skype directory
- Choose "Directory" from the View menu in the main Skype window to
open the Directory page.
I have not tested this area of Skype very thoroughly for accessibility
however.
- Use the "Shop" feature of Skype
- Choose "Shop" from the View menu in the main Skype window to
open the "Shop" page.
You may then need to press Tab once to get JAWS to
recognize the page as an HTML environment.
This is a summary of things that will be new to seasoned Skype 3.x
users. This is far from a complete list.
- JAWSKey+Q correctly says these scripts are for Skype 4, not
Skype 3.
- Access to Call Phones, Directory, and Shop panes. Use
the View menu to open them.
- The Command system now has a help facility:
At any command level, Tab and Shift+Tab will
cycle through the command keys available at that level, and
JAWSKey+Tab will repeat the last choice.
- The Command key system now includes most commands so they can
easily be found.
- SkypeCommandEnter.wav is no longer included as it was never used,
and SkypeCommandExit.wav is renamed to mkcsExit.wav.
- Visible contacts are now called Connected contacts.
- Command O V for listing visible contacts is now
Command O C.
The following features of the JAWS scripts for Skype 3 will not work
in Skype 4 and may never be revived, at least in the same form, due
either to being obsolete or to there being insufficient means to implement them
again. Typing most of these commands will now pass the keystrokes to
Skype, as these keystrokes are no longer assigned to JAWS scripts.
- Ctrl+E to check the end time of a call in History.
- Alt+Accent for clicking for previous chat messages.
The "Click for previous chat messages" line does not exist in
Skype 4.
- Ctrl+Accent for getting information about the active
Skype tab. There are no longer Skype tabs per se.
- Ctrl+Shift+I for technical call info. This command was
barely working already, but it probably won't work at all now.
- Ctrl+Shift+L for picking a contact and action.
Much of this command's functionality was based on irregular use of
Skype command-line features that do not work identically or at all in
Skype 4. Use the Context menu for a contact or conversation list
entry instead.
- Ctrl+M for changing mood text. This probably will not come back
as it is provided by Skype itself on the main Skype window.
Translating the scripts, as of script version 4.1d, should only involve
editing the jsm and jsd files, not the code (jss) files.
Script translation will involve two kinds of translation, described in
the following two subsections.
This is translation of what JAWS will say to the user. This requires
- Translating the "msg" constants in all jsm files into appropriate
text for the new language, and
- Translating the descriptive text in jsd files similarly.
Translating "msg" constants should be fairly self-explanatory. Where
necessary, the jsm file should include comments above a constant
explaining how and/or where it is used, to provide necessary context
for the translation.
Translating a jsd file involves careful translation of only those
parts of the file that are descriptive text that can be spoken to the user.
Descriptive text appears on the following line types:
- :Synopsis.
- :Description.
- :Param (but do not translate parameter names, types, or "ByRef").
- :Returns (but do not translate the return type).
Upon completing this type of translation, whatever script code
functions properly in the target language should speak in that
language. However, another type of translation is often required to
achieve correct script functionality in another language.
This is translation of text that is contained in Skype and that the
scripts need to check for. Translating this text is not merely a
translation into appropriate text in the target language. Rather, the
new text must precisely match what Skype itself will show or provide
for the string being translated. Strings of this type will appear in
jsm files as constants or messages and will usually begin with "sc."
As an example of why this type of translation is necessary, consider a
hypothetical screen containing many fields, one of which is a "Home
Phone" field. The "Home Phone" field contains a button which, when
pressed, brings up a list of area codes and their countries. This
button is not natively accessible though, so a hypothetical script is
written to make F4 pop up the area code and country list,
but only if pressed on the "Home Phone" field. In another language
of the application, "Home Phone" will be written in that language.
In order for the F4 script to work, it must know exactly
what the application will use for the name of the "Home Phone" field
in the target language. Translating "Home Phone" arbitrarily will
not work, because the script code will look for the actual screen text
shown by the application.
Some literal text sought in Skype by the scripts appears visibly on
screen, but some text is drawn from MSAA properties that are not shown
visibly. For this reason, it is not always possible to determine what
text to use just by looking at screens.
Suggested steps for finding the text to use for this type of
translation:
- Pick a string to translate and find it in Skype itself, while
running with Skype in English. If the text does not appear on screen,
note the area it should apply in, such as Conversation list items.
- Save a copy of Skype's English language file, then also a copy of
Skype's language file for the target language. These can be saved
from Tools > Change Skype Language > Edit Skype Language File.
Use the "Save as" button to save a copy of the files.
- Find the string you are translating by searching for it (or part
of it) in the English language file. There may be more than one
match; use the string names at the left of each line, which tend to
denote where the string is used or relevant, to figure out which
string you want.
- Using the string's name from the English file, find the
translation of that string in the target language's file.
- Replace the jsm English text as appropriate with the text you
found in Skype's target language file.
If a particular string proves hard to understand or translate,
describe the problem on the
SkypeEnglish
mailing list so someone there (possibly me) can help.