Welcome to Screen Reader Scripting, a site for all things pertaining to scripting of screen readers for the blind, including Jaws for Windows, Window-eyes, Dolphin, and Orca. At this point in time, the content will focus specifically on training opportunities which I personally provide, but, over time, I hope it will become a significant resource for all things related to scripting of screenreaders.

Because some of the content pertains to instructional materials which I have created, those posts are password-protected, and therefore only those who have purchased the materials will have access.

Again, welcome–I hope you enjoy your stay and will find what you're looking for here, and, if there's anything we can do to make your stay more enjoyable, please don't hesitate to leave a comment. Please note, however, that the ability to do so is available only to *registered* users. So sign up today and become a part of the screenreader scripting community!

Programs for the Scripting Course

Several programs are referenced throughout the scripting manual. The latest version of Teamtalk should still work with the scripts in the manual & may be installed from:



Click the following link to download Calendar Magic





I’m not responsible for any decrease in protection of your PC if you fail to heed the following warning.


The following program is an earlier version of MalwareBytes. If you have a later version, please do not install this earlier version to the default directory. Instead, make a new folder prior to installation, then install this program to that folder. Failure to do so may decrease your computer’s protection. You have been duly warned!


Scripts for Xampp

Xampp, which is available from www.apachefriends.org, makes it easy to have a webserver on your computer by installing the most common elements you'll need, e.g., Apache, Mysql, php, as well as FileZilla, Tomcat, & Mercury.


While scripts are not at all necessary for the operation of the application, they do make using the GUI a bit easier. So, here they are. Enjoy.


Sample Content


In response to requests for a sample of my scripting materials, i.e., a "try-before-you-buy" type of arrangement, I am providing this sample material. Because of the class structure, it was pretty nigh unto impossible to start each lecture on a chapter boundary; therefore, this lecture begins at the portion of Chapter 3 regarding constants. I hope it gives an adequate representation of how this course is taught. The files contained in the zip archive is chapter 3 of the lecture, as well as the 3rd class in the series. Enjoy.

Table of Contents

Table of Contents

Chapter 1 Getting started
This chapter discusses the definition of a script, the layered or hierarchical approach Jaws uses when looking for scripts, & the naming conventions of the default and application script files. By the end of this chapter, the student should be able to do the following:
Know the definition of a script.
Understand the naming conventions used by Jaws script source files. And
Understand the order in which Jaws looks to find scripts assigned to the keys you press.
Chapter 2 Script Manager
By chapter’s end, you’ll learn everything you need to know about the Script Manager, including:
How to create/open a script file using the Jaws Script manager (the easy way-you already know the standard Windows hard way);
include files
How to create a new script;;
Structure of a script;
How to Save a script;;
How the script compiler works;
User vs. shared scripts
Where scripts are stored
Binary script files
Keystrokes available in Script Manager
What to do about compiler errors;
Scripts vs. functions-an overview;
Inserting functions into your script;
Getting help.
Chapter 3 Some General Concepts
By the end of this chapter, you’ll understand:
what is focus
What is a cursor
The various cursors available in Jaws and what they do
What is a text unit and which ones are used by Jaws
Data types-int, string, handle, object
Chapter 4 Getting a Handle on Windows

On completion of this chapter, you will:
Understand the definition and importance of a window handle;
Understand the concept of window class;
Understand a control iD;
Understand the concept of window type/subtype;
Understand at least some of the built-in functions that return a handle;
Understand the use of the Jaws ‘home row’ utility and ScreenSensitiveHelpTechnical scripts;
Understand the concept of window level and hierarchy, e.g., parent and child windows, prior and next windows, etc.;

 Chapter 5 Decisions, Decisions, Decisions
In this chapter, we will discuss the following:
Returning values from functions
Assigning a return value to a variable
Making decisions using if-then-endif
More complex decisions with else & elif
Chapter 6—Stringing Me Along
By the end of the chapter, you’ll understand:
The definition of a string;
Null string;
Retrieving Text
Finding Strings
Comparing Strings
Analyzing Strings
Extracting Text From Strings
Manipulating strings
Speaking Strings
Changing Case of Strings
Chapter 7 Here We Go Loopty-loop
In this chapter, we’ll learn about:
while loops;
For loops.
Collections; and
forEach loops
Chapter 8 RoadMap for a scripting project

Chapter 9—User Interaction and the HJ Dialog  
In this chapter, we’ll discuss many of the script-building tools that have as their basis the HJ dialog. These functions often, but not always, begin with the letters dlg. However, because one of these is the verbosity options dialog, we’ll also need to talk about retrieving and saving various user options. By chapter’s end, you’ll have a very good grasp of how to use the functions based on the HJ dialog facility.

Chapter 10—Colors, Attributes, Moving, Mouse, And Keyboard
By chapter’s end, you should have an understanding of:
• Functions related to colors;
• Text attributes and how to get and set them;
• The moveTo() function in its various forms;
• Functions to move and click the mouse; and
• Various ways of passing keystrokes to an application.  

Chapter 11: Events