Cocoa Frameworks for Writing Assistive Applications
The PFiddlesoft Frameworks include the PFAssistive and PFEventTaps Frameworks. They support and enhance Apple's Accessibility and Quartz Event Taps APIs, enabling Cocoa developers to use familiar Objective-C and Swift programming techniques to create assistive applications without having to master the technicalities of Apple’s procedural C Accessibility, Core Foundation, and Core Graphics APIs.
Apple's Accessibility technology grew out of Section 508 of the Workforce Investment Act of 1998 and its requirements regarding access to electronic and information technology for persons with disabilities. Compliance with Section 508 is a prerequisite for sale of computer and other products to the federal government and to many state agencies and educational institutions. The Accessibility API is designed for use both by developers incorporating its features into their own accessible applications and by developers of assistive devices and applications for users with disabilities. The Event Taps API is also a Section 508 enabling technology.
Because Accessibility and Quartz Event Taps are built into every standard OS X User Interface element, the frameworks are capable of much broader uses. Software testing tools, network administration tools, troubleshooting tools, plug-ins for applications that don't have a plug-in architecture, and remote control applications are only some of the possibilities.
The PFiddlesoft Frameworks require OS X v10.7 Lion or newer, and they support new accessibility features introduced in all subsequent major OS releases up to and including macOS v10.12 Sierra. They support the Intel 64-bit architecture using reference counted memory management or ARC. They are designed to be installed as shared frameworks or embedded in an application package. They support client applications that are written using the Objective-C and Swift programming languages.
Licenses are free for personal use and for distribution or use with any product you distribute without charge. A flat one-time license fee of $250 US is required for distribution or use of each framework with a product for which you request or require payment. Source code is available for a separate fee. Different terms apply to large or established commercial software developers.
Both frameworks have been revised and updated over a period of years, and they have demonstrated their power and reliability in PFiddlesoft’s commercial and free developer utilities. PreForm Assistive Technologies, LLC is making the PFiddlesoft Frameworks available to all Macintosh developers. Together, the PFiddlesoft Frameworks bring to Cocoa developers the full range of Accessibility and Event Taps capabilities needed to write assistive applications and other software that explores, monitors and controls the User Interface elements and user inputs of most OS X applications.
For instructions on how to use the PFiddlesoft Frameworks, including source code examples, download our Assistive Application Programming Guide for OS X 2.0, an almost 50-page PDF document. Also download the PFAssistive Framework Reference and the PFEventTaps Framework Reference for detailed documentation of all of the frameworks' classes, protocols, properties and methods. The Programming Guide and a framework reference are also included in each of the downloadable framework disk images. Download the SimpleScreenReader 1.4.0 source code for example code showing how to use the PFAssistive Framework. Download the Event Taps Testbench 1.3.6 source code for our free Event Taps Testbench developer utility for example code showing how to use the PFEventTaps Framework. Finally, for developers implementing the new technique for authorizing access to assistive applications introduced in OS X v10.9 Mavericks, read "A Note on Security Issues Presented by Assistive Applications" on the Support page.
NOW AVAILABLE: PFAssistive Framework 3.6.3, released January 2016, and PFEventTaps Framework 1.5.2, released December 2015.
Both frameworks have been successfully tested through macOS v10.12 Sierra
Read all about the PFiddlesoft Frameworks on our website:
- Press - Update of the PFAssistive Framework on February 1, 2016 to fix a minor bug.
- Support - including general PFiddlesoft Frameworks tips
This page was first published by PFiddlesoft on May 25, 2010. Last updated September 20, 2016.
Copyright © 2003-2016 Bill Cheeseman. Used by permission. All Rights Reserved.
PFiddlesoft, PFiddle Software, Pfiddle, Pfiddles and the PFiddlesoft logo are trademarks of PreForm Assistive Technologies, LLC.
Download PFAssistive Framework 3.6.3, released January 2016.
Download PFEventTaps Framework 1.5.2, released December 2015.
Both of the PFiddlesoft Frameworks require OS X v10.7 Lion or newer. See the Requirements section below for details.
Read or download our Assistive Application Programming Guide for OS X 2.0, an almost 50-page PDF document explaining how to use both of the PFiddlesoft Frameworks to write assistive applications, with sample code. Also download the PFAssistive Framework Reference and the PFEventTaps Framework Reference for detailed documentation of all of the frameworks' classes, protocols, and methods.
Download the SimpleScreenReader 1.4.0 source code for example code showing how to use the PFAssistive Framework.
Download the PFAssistive Framework distribution license and the PFEventTaps Framework distribution license. Go to the Support page for a summary of the license terms and for instructions for executing and delivering the licenses to us. An executed license is required for free distribution or use with your free products, and for distribution or use subject to a flat one-time license fee with a product for which you request or require payment.
The PFiddlesoft Frameworks require OS X v10.7 Lion or newer. As of this writing, both frameworks have been tested successfully through macOS v10.12 Sierra. Both frameworks support new accessibility features Apple has added over the years.
Versions of the Frameworks for Mac OS X v10.4 Tiger and older are no longer offered.
Also get UI Browser, the "ultimate assistant" for GUI Scripting.
For a whole new way to run AppleScript scripts, get UI Actions for "universal attachability."
To explore what your applications can do with Quartz Event Taps, get the free developer utility Event Taps Testbench.