WhisperPad and the Apple App Store Accessibility API Conflict

Apple Rejects WhisperPad Over Accessibility API Usage

Apple rejected an update to WhisperPad, a local Mac dictation app, under Guideline 2.4.5 because the app used the accessibility API to inject transcribed text directly into other applications. While the developer, Rene Zelaya, created the tool to mitigate pain from a repetitive strain injury, Apple determined that using the accessibility API for auto-pasting text did not constitute an approved accessibility use, despite earlier versions of the app having been approved for the same functionality.

The Conflict: Auto-Paste vs. App Store Guidelines

WhisperPad was designed to minimize hand movements by allowing users to dictate text and have it automatically placed into the active cursor field of any application. This "auto-paste" feature is the core value proposition for users with motor impairments or injuries.

The Rejection Process

  • Initial Rejection: Apple cited Guideline 2.4.5, stating the accessibility permission was not being used for its intended purpose.
  • The Appeal: Zelaya appealed the decision, explaining the app's role as an accessibility tool for those with hand injuries.
  • Final Decision: After a month of silence and a follow-up inquiry, Apple maintained the rejection.

Technical Constraints

The accessibility API on macOS is broadly scoped, granting apps significant control over the system, including the ability to move the cursor and take screenshots. This broad scope makes Apple stringent about who can access it to protect user privacy and data security. Some developers in the community noted that the API is often "gimped" or inconsistently enforced, making it a hurdle for any app that simulates keyboard actions or interacts with other apps.

The Solution: A Dual-Distribution Strategy

To maintain the discoverability of the App Store while preserving the full functionality of the tool, Zelaya split WhisperPad into two distinct versions:

  1. Mac App Store Version: This version complies with Apple's rules by removing the auto-paste feature. Transcribed text is placed on the clipboard, requiring the user to manually press Command-V to paste. This increases the workflow from four steps to six, representing a 50% increase in manual effort for the target user base.
  2. Direct Distribution Version: This version is shipped independently via the developer's website. It retains the full auto-paste functionality and uses the Sparkle framework for updates and Paddle for payment processing.

Community Insights and Developer Perspectives

Discussion among developers reveals that this is a common friction point for macOS and iOS development.

Common Industry Patterns

Many developers use a similar "Pro" version strategy for direct downloads. For example, the app SpaceGremlin provides certain features only in its independent version while allowing App Store licenses to unlock the full feature set.

Security and Privacy Trade-offs

Some users and developers argue that Apple's restrictions are justified to prevent malicious apps from injecting dangerous content into sensitive fields, such as banking IBANs. Others argue that the lack of a narrowly scoped API for specific tasks (like text injection) forces developers into an "all or nothing" accessibility permission that Apple is then hesitant to grant.

Platform Comparison

Developers noted a stark difference between macOS and iOS. While macOS allows for direct distribution (the "comply here, and do the fuller thing somewhere else" approach), iOS remains a closed ecosystem where compliance is the only path to distribution.

"The choice is rarely 'comply or quit.' It is often 'comply here, and do the fuller thing somewhere else.' Unless the platform is iOS, in which case it's 'comply here or gtfo'."

Summary of WhisperPad Availability

  • App Store Version: Includes a free tier (120 minutes/month) and lacks auto-paste.
  • Direct Version: Available at mitmllc.com/whisperpad with full auto-paste capabilities.

Sources