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.

VersionYearSupported OSNew Features
JAWS (MS-DOS)1989MS-DOSOriginal JAWS for DOS; later freeware
JAWS 11995Windows 3.1Windows release; DOS navigation concepts
JAWS 21996Windows 95Added Windows 95 support; Early scripting options
JAWS 31997Windows 95Broader Windows 95 support
JAWS 42001Windows XP, Windows 2000Transition to XP era
JAWS 42002Windows XP, Windows 2000Quick Navigation keys for IE
JAWS 52003Windows 2000, Windows XP, Windows 2003Web/document fixes; Adobe Reader/AIM JAWS scripting; Braille logic improvements
JAWS 62004Windows 95, Windows 98, Windows ME, Windows NT4, Windows 2000, Windows XPInternet License Manager (ILM); Unicode installer option
JAWS 72005Windows 2000, Windows XPFSClipboard; custom Excel summaries; Document Presentation Mode; Word quick keys
JAWS 82006Windows 2000, Windows XP, Windows 2003, ServerRealSpeak Solo voices; IE7 tabbed navigation; Startup Wizard; DAISY training
JAWS 92007Windows Vista, Windows XPOffice 2007 & Vista support; Gmail AJAX support
JAWS 102008Windows Vista, Server 2008, Windows XP, Windows 2003Auto Forms Mode; JAWS Tandem; RealSpeak Solo Direct; multi-sound-card routing
JAWS 112009Windows 7, Windows Vista, Windows XPResearch It; FSReader DAISY; UI Automation; multi-monitor support
JAWS 122010Windows 7, Vista, Windows XPBrailleIn; Virtual Ribbon; Settings Center
JAWS 132011Windows 7, Windows Vista, Windows XPConvenient OCR; Results Viewer; Quick Settings
JAWS 142012Windows 8, Windows 7Flexible Web; Windows 8 Start Screen & Store apps; new Vocalizer voices
JAWS 152013Windows 8, Windows 8.1, Windows 7Touch Cursor & gestures; Vocalizer Expressive integration
JAWS 162014Windows 7, Windows 8.1, Windows 10Command Search; OCR for PDFs
JAWS 172015Windows 10, Windows 8.1, Windows 7Smart Navigation; domain-specific web scripting; Liblouis UEB
JAWS 182016Windows 10, Windows 8.1, Windows 7Audio ducking; Mouse Echo; settings migration/export; Vocalizer Expressive 2.2
JAWS 20182017Windows 10, Windows 8.1, Windows 7Microsoft Edge support; Virtual Cursor; Navigation Quick Keys
JAWS 20192018Windows 10Faster startup; Audio Ducking; Screen Shade; Home Annual license
JAWS 20202019Windows 10Reduced double-speaking; Zoom scripts; UIA improvements
JAWS 20212020Windows 10Voice Assistant (Sharky); Picture Smart; OCR to Word
JAWS 20222021Windows 11, Windows 10Sound Splitter; settings migration; Braille Profiles
JAWS 20232022Windows 11, Windows 10Smart Glance; Notification History; ARM64 support
JAWS 20242023Windows 11, Windows 10Face in View; Split Braille; MathCAT integration
JAWS 20252024Windows 11, Windows 10, ARM64, Server 2016-2025FSCompanion; AI language detection; EPUB navigation
JAWS 20262025Windows 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 / VersionNew 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:

YearAPI / MilestoneImpact on JAWS Scripting
1994MSAA ReleasedMicrosoft 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.
1996JAWS Scripting IntroducedJAWS 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.
1998IAccessible2 Foundation Work BeginsEfforts began to address MSAA's limitations and design a more extensible accessibility standard; IAccessible2 would eventually provide richer semantic information.
2003IAccessible2 Specification PublishedLinux 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.
2005UIA 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.
2006UIA Public LaunchUIA officially released with Windows Vista, providing a modern replacement for MSAA with richer control types, properties, patterns, and event support.
2011Web Accessibility Standards (ARIA) MatureW3C's ARIA specification matured, allowing web developers to enhance dynamic content accessibility; JAWS scripts began leveraging ARIA properties through browser object models.
2012UIA Script API LaunchedFreedom 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.
2013UIA API ExpandedJAWS 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).
2015Domain-Specific Web ScriptingJAWS 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.
2016UIA Event HandlingJAWS 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--PresentJAWS Dual-Stack ScriptingJAWS 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}}