"The most important feature is the one where the app looks at what it could do, and declines."
Refusal as a Feature
Firekeeper holds Accessibility. That means it can read the focused element in your password manager. Nothing in the OS stops it. The only thing standing between "can" and "does" is the app choosing not to — and that choice has to be written into the code as a hard refusal, not left as an intention. Secure text fields are the clearest case: if the focused element is a secure field, Firekeeper reads no context, touches no clipboard, and refuses to insert at all.
Two Layers of Refusal
Layer 1 — secure field detected (OS tells you):
no context read, no clipboard touch, no insertion. Full stop.
Layer 2 — app denylist (you decide):
password managers, banking apps, anything the user marks private.
Dictation simply doesn't operate there.
Layer 1 is mechanical: macOS marks secure fields, you honor the mark. Layer 2 is judgment: some apps are sensitive all over, not just in one field, and the user should be able to say "never here." Both are refusals, and both must be enforced at the earliest point — in the target capture step, before any context is read — rather than checked politely just before insertion. A guard at the door beats a guard at the vault.
Why Refuse Instead of Degrade
The tempting middle ground is "in a secure field, still dictate but skip the context reading." Resist it. Partial operation in a sensitive context means the app is still active there, still holding a target, still one bug away from touching what it shouldn't. Full refusal is simpler to reason about, simpler to verify, and simpler to explain to a user: it does not work in password fields, at all, by design. A capability you never exercise in a room can't be misused in that room.