Why The Mid Click needs Accessibility permission

On macOS, any app that sends a synthetic mouse event or observes input across all apps has to be granted Accessibility access. That's the only reason The Mid Click asks for it. This page explains what it does with the permission, in plain terms and in technical ones.

What it uses the permission for

Trackpad reports touches to macOS
The Mid Click's event tap sees the touch count and any left-button press
Three fingers tapped, or three fingers down and the trackpad clicked
The Mid Click posts a middle-button event, or rewrites the left click into a middle click
The app under the cursor receives a normal middle click

That's the entire use. Two capabilities, both only available with Accessibility access: observing the trackpad and mouse button events system-wide, and sending one middle-click event.

What it does not do

Why not a narrower permission?

macOS has a separate Input Monitoring permission that allows observing input without modifying it. The Mid Click could use it for the detection half. But sending a mouse event (the middle click itself) has no permission of its own; macOS routes it through Accessibility. Asking for Input Monitoring as well would mean two prompts instead of one, with the same final requirement. So the app asks once, for the one permission that covers both.

Why it isn't on the Mac App Store

The Mid Click was submitted to the Mac App Store and rejected twice under guideline 2.4.5, which restricts Accessibility to assistive purposes; there is no App Store-approved way to synthesize a mouse button. Utilities such as BetterTouchTool, Karabiner-Elements and MiddleClick are also distributed outside the Mac App Store. The Mid Click is signed with an Apple Developer ID and notarized by Apple, which means Apple has scanned it for malware, but it has not been App Store-reviewed.

How to grant, check, or revoke it

  1. System Settings → Privacy & Security → Accessibility. On macOS 27 the pane is named Device Control and Data Access.
  2. Turn The Mid Click on. If it isn't listed, click + and pick it from Applications.
  3. To revoke, turn it off or remove it with −. The app keeps running but shows "Not ready" and does nothing.

If you reinstall the app after moving or rebuilding it and it stops working, macOS may be holding an old entry. Remove it and add the app again, or run tccutil reset Accessibility com.almir.MidClick in Terminal.

For the technically inclined

The tap is created with CGEvent.tapCreate at session level with a mask of gesture events (type 29) and left-button down, up and dragged. Gesture events are converted with NSEvent(cgEvent:) and allTouches() gives the contact list. The click is sent with CGEvent(mouseEventSource:mouseType:.otherMouseDown…) and post(tap: .cghidEventTap), or by changing the type and button-number field of the left-click event in flight. The app is sandboxed and uses only documented APIs. The full event path.