Screen Readers - ATs | Accessibility

Standards Based Development

BlackBerry Screen Reader

BlackBerry Screen Reader Icon

www.blackberry.com/screenreader BlackBerry Screen Reader Icon

IDEAL Web Reader

IDEAL Web Reader is a self-voicing browser for Android. Also comes with a plug-in that adds self-voicing capabilities to WebView for Accessibility.

jaws (Job Access With Speech)

MAGic is the screen magnifer that works with JAWS.

Freedom Scientific Developer of Jaws for Windows screen reader and Magic screen magnification software.

The JAWS Help file located in the jss (JAWS Script Source) is probably the best place to start for learning how JAWS works, as well as how to script for JAWS.

HotSpotClicker for JAWS

HotSpotClicker for JAWS is a free set of JAWS scripts which you can use in conjunction with any application to provide increased accessibility and convenience. You can define locations on the screen where mouse clicks need to be performed, or where there is information you want spoken, and, if you like, associate that location with a hot key. When you press the hot key, the click is performed, or the information is spoken. You can also create a hot key to set focus on a particular control, and even implement custom tab ordering for applications that do not honor the tab key, or override the tab handling presently implemented in the application.

jaws Scripts

JAWS 14 Script Demo

The GetScreenXML function was introduced in JAWS 14; GetScreenXML function obtains screen content in xml format, called GetScreenXML takes four optional parameters specifying the rectangle from which content will be obtained. If not supplied, content from the entire screen will be returned.

The xml includes text, font name, size, attributes, color and click locations for every character in the specified rectangle. Control type and state information is also included. It also includes OCRed text if the OCR function has been used and the OCR data not invalidated. One can determine from the Span Source="" attribute where the text came from, i.e. the OSM or OCR. If source=OCR, the text was from the OCR engine, if the source is not specified it is either from the OSM or the Dom Server.

Each run of text with the same source, font and attributes is enclosed in a span so that font and attributes do not need to be specified for every character.

xml element/attribute names are camel-cased; xml format is:


<Lines Version=1.0>
<Line Left=X1, Top=Y1, Right=X2, Bottom=Y2>
<Span Source=”OCR” Font=Name Size=Pts Bold=On Italic=On Underline=On ... color=hex, 
  background=hex controlType=type ControlState=state>text inside span</Span><Span>...</Span>...
<CharLocations><Char x=XCoord Y=YCoord>...</CharLocations></Line>
...
</Lines>

All content is placed within a Lines element with a Version attribute. The Lines element contains one or more Line elements representing each Line of text in the specified rectangle. Each Line element has attributes describing its encapsulating rectangle. Each Line element contains one or more Span elements containing text with the same font/attribute/color/source/controltype.

Attributes are only included if on. For example, if the text in a Span is not italicized, the Italic attribute will not be included in the xml. If text in a Span is bolded, the Span will contain an attribute (Bold=on).

After all the Spans on a line, as the last child of the Line node, a CharLocations element encloses a list of Char elements for each character on the line (within the specified rectangle’s bounds), specifying the click point for each character in the line or line segment.

The example script below shows how to use the msxml 6.0 object to parse the screen xml into a dom tree to be interacted with via XPath:

A sample test script is given below to demonstrate how to use the MSXML 6.0 object to parse the screen XML into a DOM tree and then interact with its DOM.


   script test()
   var object msxml = CreateObject("msxml2.DOMDocument.6.0")
   if (!msxml)
   SayString("no MSXML")
   return
   EndIf
   msxml.async = false;
   msxml.resolveExternals = false;
   msxml.loadXML(GetScreenXML()) ; Obtain the XML from the screen and/or OCRed text.
   var object results = msxml.SelectNodes("//Span") ; Get list of all spans
   if (!results)
   sayString("no results")
   return
   EndIf
   var object node
   foreach node in results
   var object attribs = node.attributes
   if (!attribs)
   SayString("no attribs")
   EndIf
   if attribs.GetNamedItem("Source").nodeValue=="OCR" then
   ;This text is from OCR
           sayUsingVoice(VCTX_MESSAGE, node.text, OT_SCREEN_MESSAGE) 
   else
   ;This is from the OSM
           saystring(node.text)
   endIf
   EndForeach
   ;SayString(result.nodename)
   ;SayString(result.nodevalue)
   endScript

(JAWS) Enhancements in Scripting

JAWS Scripts

JAWS Scripting References

nvda

NVDA Open Source Screen Reader NVDA Open Source Screen Reader NVDA Open Source Screen Reader NVDA Open Source Screen Reader NVDA Open Source Screen Reader

NVDADownload NVDA Screen Reader

Orca Screenreader

Orca Screenreader

Spoken Web

Spoken-Web is a web portal, managing a wide range of online articles and content like Wikipedia articles, news updates, weather, travel and business articles.

The site provides a simple, easy-to-use interface for navigating between the different sections and articles

Using the keyboard to navigate, everybody can hear the full range of an article content provided in a logical, clear, and understandable manner.

Spoken-Web main advantages:

  • No installation requirements
  • No hardware requirements
  • No advertisements
  • The speaking is clear and seamless
  • Can be operated from any computer, smartphones (iphone, Galaxy etc...) or any tablet (ipad etc..)

Microsoft Narrator

Microsoft Narrator Icon (In Vista) Narrator Settings Menu (In Windows 7)

Thunder Screenreader Thunder Screenreader Icon

Thunder is a free screenreader for blind people on Microsoft Windows. It is not open-source, but it is free for individuals and organisations. It works on Windows XP Service Pack 3 or later, including Windows 7. If you don't like Thunder then you might want to try the free open-source NVDA Screenreader.

Thunderin the UK is distributed by Roger Wilson-Hinds at Screenreader.net, who does all the technical support for it. If you need help, contact Roger.

Thunderis distributed with the WebbIE set of programs, which provides a text web-browser, a podcatcher, an RSS news reader and other tools. These are maintained by Alasdair King, who also does the Thunder installers but does not do the Thunder code. So if you have a Thunder query, speak to Roger. If you have a WebbIE query speak to Alasdair.

VoiceOver (OS X)

VoiceOver VoiceOver

voiceover-snow-leopard-keyboard-color-2009.pdf pdf

WebAnywhere

WebAnywhere is a web-based screen reader for the web. It requires no special software to be installed on the client machine and, therefore, enables blind people to access the web from any computer they happen to have access to that has a sound card. Visit wa.cs.washington.edu to access WebAnywhere directly. And, it's completely FREE to use!

WebAnywhere is an open source project.

Google Code WebAnywhere: Your Access Technology on the Web

WebAnywhere provides access to the web from any machine with a modern web browser and some way to play audio. It is useful for web developers who would like to check their pages for accessibility and for blind web users using a computer where no other screen reader is available.

Window Eyes Screen Reader

GWMicro Developer of the Window Eyes screen reader.

References and Resources