All you need is accessibility

Maheep Kumar — 27 September 2026

I’ve been building FynPDF, a PDF reader and editor for macOS, with its own PDF engine written from scratch. The engine is easy to test headlessly. The user-facing viewer/editor is not: stale thumbnails, 200 ms blank saves, stuck popovers, mis-hit clicks — none of that shows up in a unit test.

I wanted AI agents to exercise the application: open, scroll, zoom, annotate, save, reopen — and tell me when something went wrong. The interesting part wasn’t deciding accessibility was the answer up front; the requirements emerged one failed approach at a time.

Attempt 1: Screenshots + System Events

A skill file had the agent drive FynPDF via menus/shortcuts, screenshot, and repeat. Problems: the app stole focus; clicks landed in the wrong window; screenshots burn tokens; every step was slow. A runaway render needed a watchdog. Deleted the skill. Lesson: the test must not interfere with me.