Introduction
When used with most popular applications, JAWS screen reading software provides you with screen information for the application you are using. The information that tells JAWS how to behave is contained within a set of "default files." These default files, created by Freedom Scientific, are provided with JAWS. Unfortunately, not all applications are the same. Therefore, information telling JAWS how to behave in these applications is contained in a set of "application-specific files."
JAWS Version History
The trajectory of JAWS development from its inception in 1989 through 2026 demonstrates a steadfast commitment to expanding accessibility across diverse computing environments and application types. Early JAWS releases (1995-2003) focused on foundational screen reading capabilities and basic scripting support, establishing the technical infrastructure for accessibility customization. However, the real transformation in accessibility occurred post-1996 with the introduction of scripting language enhancements. When scripting was first introduced in 1996, it empowered individual users and developers to bridge accessibility gaps that Freedom Scientific could not address alone. As JAWS evolved through subsequent versions, scripting capabilities grew exponentially: from basic event-driven automation (2003), to comprehensive UI Automation integration (2011+), to domain-specific web scripting (2015+), and finally to AI-enhanced page analysis and dynamic content navigation (2025-2026). These incremental scripting improvements translated directly into expanded accessibility functionality--enabling users to interact with previously inaccessible modern web applications, cloud-based software, enterprise systems, and specialized domain-specific tools without waiting for native accessibility implementation. By decoupling accessibility customization from JAWS core development cycles, the scripting language created a sustainable model where the community itself could drive accessibility innovation, significantly accelerating the pace at which blind and low-vision users gained access to mainstream technology.
Through the many options available in the JAWS application, changes and adjustments can be easily made to all of the commonly used features, such as Verbosity and Screen Echo. But despite this ability, you may find special situations that require more advanced or specific instructions so that JAWS can properly navigate and provide the correct screen information in the application.
| Version | Year | Supported OS | New Features |
|---|---|---|---|
| JAWS (MS-DOS) | 1989 | MS-DOS | Original JAWS for DOS; later freeware |
| JAWS 1 | 1995 | Windows 3.1 | Windows release; DOS navigation concepts |
| JAWS 2 | 1996 | Windows 95 | Added Windows 95 support; Early scripting options |
| JAWS 3 | 1997 | Windows 95 | Broader Windows 95 support |
| JAWS 4 | 2001 | Windows XP, Windows 2000 | Transition to XP era |
| JAWS 4 | 2002 | Windows XP, Windows 2000 | Quick Navigation keys for IE |
| JAWS 5 | 2003 | Windows 2000, Windows XP, Windows 2003 | Web/document fixes; Adobe Reader/AIM JAWS scripting; Braille logic improvements |
| JAWS 6 | 2004 | Windows 95, Windows 98, Windows ME, Windows NT4, Windows 2000, Windows XP | Internet License Manager (ILM); Unicode installer option |
| JAWS 7 | 2005 | Windows 2000, Windows XP | FSClipboard; custom Excel summaries; Document Presentation Mode; Word quick keys |
| JAWS 8 | 2006 | Windows 2000, Windows XP, Windows 2003, Server | RealSpeak Solo voices; IE7 tabbed navigation; Startup Wizard; DAISY training |
| JAWS 9 | 2007 | Windows Vista, Windows XP | Office 2007 & Vista support; Gmail AJAX support |
| JAWS 10 | 2008 | Windows Vista, Server 2008, Windows XP, Windows 2003 | Auto Forms Mode; JAWS Tandem; RealSpeak Solo Direct; multi-sound-card routing |
| JAWS 11 | 2009 | Windows 7, Windows Vista, Windows XP | Research It; FSReader DAISY; UI Automation; multi-monitor support |
| JAWS 12 | 2010 | Windows 7, Vista, Windows XP | BrailleIn; Virtual Ribbon; Settings Center |
| JAWS 13 | 2011 | Windows 7, Windows Vista, Windows XP | Convenient OCR; Results Viewer; Quick Settings |
| JAWS 14 | 2012 | Windows 8, Windows 7 | Flexible Web; Windows 8 Start Screen & Store apps; new Vocalizer voices |
| JAWS 15 | 2013 | Windows 8, Windows 8.1, Windows 7 | Touch Cursor & gestures; Vocalizer Expressive integration |
| JAWS 16 | 2014 | Windows 7, Windows 8.1, Windows 10 | Command Search; OCR for PDFs |
| JAWS 17 | 2015 | Windows 10, Windows 8.1, Windows 7 | Smart Navigation; domain-specific web scripting; Liblouis UEB |
| JAWS 18 | 2016 | Windows 10, Windows 8.1, Windows 7 | Audio ducking; Mouse Echo; settings migration/export; Vocalizer Expressive 2.2 |
| JAWS 2018 | 2017 | Windows 10, Windows 8.1, Windows 7 | Microsoft Edge support; Virtual Cursor; Navigation Quick Keys |
| JAWS 2019 | 2018 | Windows 10 | Faster startup; Audio Ducking; Screen Shade; Home Annual license |
| JAWS 2020 | 2019 | Windows 10 | Reduced double-speaking; Zoom scripts; UIA improvements |
| JAWS 2021 | 2020 | Windows 10 | Voice Assistant (Sharky); Picture Smart; OCR to Word |
| JAWS 2022 | 2021 | Windows 11, Windows 10 | Sound Splitter; settings migration; Braille Profiles |
| JAWS 2023 | 2022 | Windows 11, Windows 10 | Smart Glance; Notification History; ARM64 support |
| JAWS 2024 | 2023 | Windows 11, Windows 10 | Face in View; Split Braille; MathCAT integration |
| JAWS 2025 | 2024 | Windows 11, Windows 10, ARM64, Server 2016-2025 | FSCompanion; AI language detection; EPUB navigation |
| JAWS 2026 | 2025 | Windows 11, Windows 10, Server 2016+ | Vispero Accounts; Page Explorer (AI summaries) |
JAWS Scripting Language Versions
The JAWS scripting language has undergone significant evolution since its inception in 1996, each update bringing substantial improvements to accessibility capabilities. Early versions introduced foundational scripting concepts and event-driven automation, allowing users to customize JAWS behavior for inaccessible applications. The introduction of the UIA Script API in JAWS 14 marked a pivotal advancement, enabling direct integration with Microsoft UI Automation--a modern accessibility framework that opened doors to controlling contemporary Windows applications that relied on UIA rather than legacy accessibility APIs. Subsequent versions expanded these capabilities with enhanced event handling, domain-specific scripting functions for web environments, and refined UIA properties, progressively empowering developers to build more sophisticated accessibility solutions. These advancements have democratized accessibility customization, enabling blind and low-vision users to work effectively in previously inaccessible software environments, while simultaneously reducing the burden on application developers to implement native accessibility features by providing an alternative customization pathway through scripting.
| Year / Version | New Features / Key Capabilities |
|---|---|
| JAWS 2 (1996) | First inclusion of scripting support — allowed users to create custom scripts to automate JAWS interactions in inaccessible applications; introduced basic script structure and an event-driven model |
| JAWS 5 (2003) | AccessWorld article spotlighted JAWS scripting; explained Script Manager, Keyboard Manager, variables, decision-making, and the Virtual Viewer; established scripting as a core accessibility customization tool |
| JAWS 14 (2012) | Introduced UIA Script API, enabling direct access to Microsoft UI Automation elements; provided new functions for querying UIA trees and properties, improving support for modern Windows apps |
| JAWS 15 (2013) | Expanded UIA Script API with additional methods for interacting with UIA controls; improved event handling and introduced more granular control over UIA elements |
| JAWS 17 (2015) | Added Domain-Specific Scripts for web contexts — new functions (GetDocumentXML, PerformActionOnElementWithTagAndAttribute, PerformActionOnElementWithId) enabled dynamic web scripting for complex pages |
| JAWS 18 (2016) | Updated UIA Script API with new properties (LandmarkTypeID, TextEditChangeType) and methods (AddTextEditTextChangedEventHandler); added support for UIA events and improved text-change tracking |
| JAWS 18 (2017) (Reference Manual) | Basics of Scripting Manual: covered Keyboard Manager, Script Manager, decision logic, Virtual Viewer, and functions; provided foundational training for script developers |
A script file contains a variety of scripts and functions that work together to extend JAWS functionality and customize its behavior for specific applications and use cases. You can think of scripts and functions as small computer programs--self-contained units of logic that execute in response to specific events or user actions. Each script or function contains commands that tell JAWS how to navigate through an application's interface, what information to speak or braille, and how to interpret and present complex data structures to users. The power of JAWS scripting lies in its ability to create customized accessibility solutions tailored to individual user needs and organizational requirements.
As you progress through this manual, you will learn to modify existing script files to alter JAWS behavior in specific applications, and you will also learn to write entirely new commands and functions to make previously inaccessible applications functional for blind and low-vision users. Through systematic practice with keyboard managers, script managers, and event handlers, you will discover how to create scripts that not only navigate applications more efficiently but also automate repetitive daily tasks, customize keyboard shortcuts, and optimize speech output for domain-specific workflows. The scripting language offers virtually unlimited possibilities--accessibility solutions bounded only by your imagination, creativity, and understanding of both JAWS scripting concepts and the target application's structure.
JAWS is not the only product developed by Freedom Scientific that takes advantage of the powerful scripting language. Both the MAGic screen magnification application, ZoomText, and Fusion take advantage of the power and flexibility offered by the scripting language. This shared scripting foundation means that skills you develop writing JAWS scripts will transfer directly to creating magnification and speech customizations in these related products. With the familiarity gained from writing JAWS scripts, you will be able to easily apply your knowledge and techniques when generating scripts that control magnification and speech functionality found in MAGic, ZoomText, and Fusion--making you a versatile accessibility technology developer capable of serving multiple user needs across Freedom Scientific's entire product ecosystem.
MSAA, UIA, and Scripting
JAWS scripting primarily interacts with applications through two main accessibility frameworks: Microsoft Active Accessibility (MSAA) and Microsoft UI Automation (UIA). MSAA, introduced in the mid-1990s, was the original accessibility API for Windows applications. It provides a way for assistive technologies like JAWS to access and interact with user interface elements. However, MSAA has limitations, particularly when dealing with modern applications that utilize complex UI components and dynamic content.
UIA, introduced in the mid-2000s, is the successor to MSAA and provides a more robust and flexible framework for accessing and interacting with user interface elements. UIA supports a wider range of control types, properties, and events, making it better suited for modern applications with rich, dynamic interfaces. JAWS scripting leverages both MSAA and UIA to ensure comprehensive accessibility support across a wide variety of applications, allowing scripts to interact with both legacy and contemporary software environments.
I-Accessible2 is an extension of MSAA developed to address some of its limitations, particularly in providing richer semantic information about UI elements. While JAWS scripting primarily utilizes MSAA and UIA, understanding IAccessible2 is important for script developers working with applications that implement this extended accessibility framework, as it can provide additional context and information that can be leveraged in scripts.
Accessibility API Milestones and JAWS Scripting Integration
The evolution of Windows accessibility APIs has directly shaped the capabilities available to JAWS script developers. The following timeline documents key advances in MSAA, UI Automation (UIA), and IAccessible2 that script developers leverage to access and control both internet applications and the Windows desktop environment:
| Year | API / Milestone | Impact on JAWS Scripting |
|---|---|---|
| 1994 | MSAA Released | Microsoft Active Accessibility (MSAA) introduced as the first Windows accessibility API — provided foundational support for assistive technologies to interact with application UI elements via the object model. |
| 1996 | JAWS Scripting Introduced | JAWS 2 introduced scripting support, enabling users to leverage MSAA to customize JAWS behavior in inaccessible applications; early scripts relied on MSAA's limited but functional object hierarchy. |
| 1998 | IAccessible2 Foundation Work Begins | Efforts began to address MSAA's limitations and design a more extensible accessibility standard; IAccessible2 would eventually provide richer semantic information. |
| 2003 | IAccessible2 Specification Published | Linux Foundation and GNOME Foundation released the IAccessible2 specification, offering a modern and comprehensive accessibility framework with support for complex UI patterns, relations, and document object models. |
| 2005 | UIA Introduced (Internal) | Microsoft began developing UI Automation (UIA) as the successor to MSAA, designed to support modern Windows applications with complex, dynamic interfaces; initially released internally for Vista development. |
| 2006 | UIA Public Launch | UIA officially released with Windows Vista, providing a modern replacement for MSAA with richer control types, properties, patterns, and event support. |
| 2011 | Web Accessibility Standards (ARIA) Mature | W3C's ARIA specification matured, allowing web developers to enhance dynamic content accessibility; JAWS scripts began leveraging ARIA properties through browser object models. |
| 2012 | UIA Script API Launched | Freedom Scientific introduced the UIA Script API in JAWS 14, enabling direct script access to UIA elements, control patterns, and events — a major shift from MSAA-only scripting to modern UIA support. |
| 2013 | UIA API Expanded | JAWS 15 expanded UIA scripting capabilities with additional methods for querying control properties, managing events, and interacting with complex UI patterns (e.g., data grids, trees). |
| 2015 | Domain-Specific Web Scripting | JAWS 17 introduced domain-specific web scripting functions and improved ARIA support, allowing scripts to navigate and manipulate modern web applications with rich, JavaScript-driven interfaces. |
| 2016 | UIA Event Handling | JAWS 18 enhanced UIA scripting with advanced event handling, text-change notifications, and refined UIA property access; scripts gained finer control over real-time application state monitoring. |
| 2018--Present | JAWS Dual-Stack Scripting | JAWS scripts now routinely combine both MSAA (for legacy applications) and UIA (for modern applications), with built-in fallback mechanisms; scripts can detect and adapt to either API based on application architecture. |
Do I Need a Programming Background to Write JAWS Scripts?
For those of you who ask, "Do I need a programming background to write scripts," the answer is that while a programming background is helpful, it is not necessary. In fact, many script developers working for Freedom Scientific are self-taught, and countless accessibility professionals and blind users have become proficient JAWS scripters through self-directed learning and community collaboration. The JAWS scripting language was deliberately designed to be accessible and approachable, with intuitive syntax and logical structure that makes it learnable by individuals with varying technical backgrounds. What matters most is not your prior programming experience, but rather your motivation to expand accessibility, your willingness to learn through experimentation and practice, and your commitment to understanding how JAWS interacts with applications. It is for this reason alone that we have compiled this comprehensive step-by-step manual in hopes that you will gain a solid foundation in scripting fundamentals, develop practical competency in creating and debugging scripts, and ultimately take the first steps toward becoming a successful JAWS script developer capable of solving real-world accessibility challenges.
Further Reading and Resources
More Resources for JAWS Version History
{{#cite jaws1}}
{{#cite jaws2}}
{{#cite jaws6}}
{{#cite jaws7}}
{{#cite jaws8}}
{{#cite jaws9}}
{{#cite jaws10}}
{{#cite jaws11}}
{{#cite jaws12}}
{{#cite jaws13}}
{{#cite jaws14}}
{{#cite jaws15}}
{{#cite jaws16}}
{{#cite jaws17}}
{{#cite jaws18}}
{{#cite jaws2019}}
{{#cite jaws2020}}
{{#cite jaws2021}}
{{#cite jaws2022}}
{{#cite jaws2023}}
{{#cite jaws2024}}
{{#cite jaws2025}}
{{#cite jaws2026}}
More Resources for JAWS Scripting Language History
{{#cite vispero1996}}
{{#cite afb2003}}
{{#cite fsmanual2011}}
{{#cite jaws14uia}}
{{#cite jaws15uia}}
{{#cite jaws17domain}}
{{#cite jaws18uia}}
{{#cite communityresources}}
MSAA, UIA, and Scripting History
{{#cite microsoft:MSAA-spec}}
{{#cite freedomscientific:basicsscripting}}
{{#cite linuxfoundation:IAccessible2-spec}}
{{#cite microsoft:UIA-spec}}
{{#cite w3c:WAI-ARIA}}
{{#cite jaws14uia}}
{{#cite jaws15uia}}
{{#cite jaws17domain}}
{{#cite jaws18uia}}