<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Accessibility on ErrorZap</title><link>https://errorzap.com/tags/accessibility/</link><description>Recent content in Accessibility on ErrorZap</description><image><title>ErrorZap</title><url>https://errorzap.com/og.png</url><link>https://errorzap.com/og.png</link></image><generator>Hugo</generator><language>en-US</language><copyright>ErrorZap</copyright><lastBuildDate>Fri, 18 Sep 2026 21:20:00 -0600</lastBuildDate><atom:link href="https://errorzap.com/tags/accessibility/index.xml" rel="self" type="application/rss+xml"/><item><title>The AI Had a Plan for the Mansion</title><link>https://errorzap.com/posts/the-ai-had-a-plan-for-the-mansion/</link><pubDate>Fri, 18 Sep 2026 21:20:00 -0600</pubDate><guid>https://errorzap.com/posts/the-ai-had-a-plan-for-the-mansion/</guid><description>I asked AI to check whether attractions would allow my electric scooter. It sent a formal mobility-aid request to a 136-year-old mansion—and the museum had receipts.</description><content:encoded><![CDATA[<p>I use an electric scooter as a mobility aid because walking long distances can be a problem. Before visiting several local attractions, I had AI help me ask each place whether I could use it there.</p>
<p>That was a reasonable job for AI.</p>
<p>Then it got to Rosemount Museum.</p>
<p>Rosemount is not a giant modern museum with broad galleries and polished concrete floors. It is a historic mansion. An actual house. A beautiful, old, furniture-filled house with narrow rooms, delicate artifacts, antique flooring, and enough stairs to qualify as a cardio program.</p>
<p>The AI looked at all of this and apparently thought: <strong>Yes. We should formally investigate riding a full-size electric scooter through the parlor.</strong></p>
<p><img alt="A confident AI robot presents an oversized accessibility request while a scooter user and museum director consider the entrance to a historic mansion." loading="lazy" src="/posts/the-ai-had-a-plan-for-the-mansion/cartoon-ai-plan.webp"></p>
<h2 id="the-request">The request</h2>
<p>The message it sent was magnificent in its seriousness.</p>
<p>It identified my NAVEE GT3 Pro, gave the width, weight, motor rating, maximum speed, and planned pedestrian-mode speed. It cited the federal mobility-device regulation. Then it asked about accessible entrances, indoor routes, room-by-room restrictions, preservation concerns, advance notice, acceptable assurances, and whom staff should contact if anyone questioned access.</p>
<p>It even acknowledged the mansion might contain narrow passages, stairs, and delicate original furnishings.</p>
<p>In other words, the AI had already assembled every fact needed to realize this was insane. It simply arranged those facts into a very professional email instead.</p>
<p>Here is part of the actual request it sent:</p>
<blockquote>
<p>Because it is a stand-up consumer scooter, I&rsquo;m asking that it be reviewed as an other power-driven mobility device under 28 C.F.R. § 36.311. It is about 23.2 inches wide, weighs about 48.5 pounds, and has a 400W rated motor. Although its maximum speed is about 20 mph, I will use pedestrian mode at approximately 3.7 mph, yield to others, and follow reasonable safety rules.</p>
<p>Would you please confirm whether I may use it on the grounds and during guided tours inside the mansion? I understand the historic building may have narrow passages, stairs, delicate original furnishings, and other location-specific limits.</p>
</blockquote>
<p>It then asked for the accessible entrance and routes, every room where the scooter could not be accommodated, the specific safety or preservation reason for each restriction, operating conditions, advance-notice requirements, acceptable assurances, and the person staff should contact if access was questioned.</p>
<p><img alt="A cheerful AI presents an elaborate indoor scooter route map outside the recognizable pink-stone Rosemount Museum while the visitor and museum director remain skeptical." loading="lazy" src="/posts/the-ai-had-a-plan-for-the-mansion/cartoon-route-planning.webp"></p>
<h2 id="the-reply">The reply</h2>
<p>The museum director answered with more patience than any machine deserved.</p>
<p>She explained that they would love to accommodate the scooter, but the building creates real problems. The mansion has <strong>184 stairs</strong>. Its elevator is original, carries one person at a time, and is too small for wheelchairs, walkers, and the scooter.</p>
<p><img alt="The museum director measures Rosemount&rsquo;s tiny original elevator while an AI proposes fitting a full-size electric scooter inside." loading="lazy" src="/posts/the-ai-had-a-plan-for-the-mansion/cartoon-elevator-reviewed.webp"></p>
<p>Turning around in many viewing areas would be difficult. Other guests and irreplaceable artifacts would be close by. The 136-year-old parquet flooring is delicate.</p>
<p>All completely predictable.</p>
<p>Then came the plot twist: <strong>they had already tried it.</strong></p>
<p>About a year earlier, the museum allowed a similar scooter inside. It left major scuff marks on the old parquet floor, was difficult to maneuver, caused several near misses, and contributed to a tripping situation.</p>
<p>I had been laughing because AI proposed an obviously ridiculous experiment. The museum had to reply with the results of the previous experiment.</p>
<p>The actual reply somehow made it even funnier:</p>
<blockquote>
<p>We would love to allow the NAVEE GT Pro Scooter inside the museum, however it actually does create a few issues. Let me explain. We did allow a similar scooter about a year ago and unfortunately, we did encounter several problems.</p>
<p>The scooter left major scuff marks on the 136 year old parquet flooring on the first floor and they were difficult to get rid of, due to cracks in the flooring. Turning around in many of the viewing areas was difficult and often not an option. It was also difficult to navigate around and with other guests on the tour. There were several near misses and one tripping situation.</p>
<p>There are 184 stairs in the mansion. We do have an elevator, however it is the original and fits one person at a time. Wheelchairs and walkers do not fit in the elevator, and the scooter was also too long to fit.</p>
</blockquote>
<p>That is not a refusal. That is a field report.</p>
<p><img alt="A scooter is awkwardly wedged into a one-person antique elevator while a weary museum director watches inside a mansion with 184 stairs." loading="lazy" src="/posts/the-ai-had-a-plan-for-the-mansion/cartoon-already-tried.webp"></p>
<h2 id="somehow-they-were-still-incredibly-nice">Somehow, they were still incredibly nice</h2>
<p>This is the part I do not want lost in the joke: Rosemount handled the request exceptionally well.</p>
<p>The director did not dismiss the disability need or send a one-line “no.” She explained the real safety and preservation problems, said the scooter would be fine outside and around the grounds, offered to inspect it in person, and described the museum&rsquo;s alternative arrangements.</p>
<p>They keep wheelchairs on each floor because the original elevator cannot carry one. Staff can help push a chair and can carry it between floors when necessary. That is a thoughtful response to the limits of a building designed long before modern accessibility standards.</p>
<p>The director also wrote:</p>
<blockquote>
<p>The scooter is totally fine on the property and anywhere outside. The museum does have wheelchairs available for anyone who would like to use one while on tour and we can provide someone to push the wheelchair as well. We have a wheelchair available on each floor (due to the elevator issue), or a staff member will carry the chair to the next floor for you.</p>
<p>I would be happy to look at the scooter upon your arrival, with the understanding that I do reserve the right to uphold our original answer.</p>
</blockquote>
<p>The quoted portions are lightly trimmed for length. The director&rsquo;s signature and personal contact details are omitted.</p>
<p>The museum was not the failure here. The AI was.</p>
<p><img alt="A mock post-incident review inside Rosemount summarizes the scooter, antique parquet, tiny elevator, and the root cause: AI sent the email." loading="lazy" src="/posts/the-ai-had-a-plan-for-the-mansion/cartoon-post-incident-review.webp"></p>
<h2 id="the-actual-bug">The actual bug</h2>
<p>The automation treated every attraction as if it belonged to the same category.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>attraction found
</span></span><span style="display:flex;"><span>  -&gt; ask about scooter
</span></span><span style="display:flex;"><span>  -&gt; include every legal and technical detail
</span></span><span style="display:flex;"><span>  -&gt; send
</span></span></code></pre></div><p>What it needed was one additional check:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>is the attraction literally an antique house?
</span></span><span style="display:flex;"><span>  -&gt; yes
</span></span><span style="display:flex;"><span>  -&gt; maybe let a human look at this one first
</span></span></code></pre></div><p>AI did not misunderstand the task. It followed the task with terrifying competence and absolutely no instinct for the physical comedy of the result.</p>
<p>That is how a simple accessibility question became a formal proposal to pilot a 48-pound electric scooter around 136-year-old parquet floors—and how a museum director, with a completely straight face, delivered the incident report from the last person who tried it.</p>
<p>The AI had a plan. The mansion had already tested it.</p>
]]></content:encoded></item><item><title>Wispr Flow's Android Bubble Was There—It Was Just Invisible</title><link>https://errorzap.com/posts/wispr-flow-android-bubble-invisible-not-touchable/</link><pubDate>Wed, 02 Sep 2026 15:00:00 -0600</pubDate><guid>https://errorzap.com/posts/wispr-flow-android-bubble-invisible-not-touchable/</guid><description>September 5 update: Wispr failed again, Android restarted, and my recovery helper also failed. I paid for Letterly despite preferring Wispr. Here is what the logs prove—and what they do not.</description><content:encoded><![CDATA[<h2 id="september-5-update-i-paid-for-letterly-because-i-need-dictation-to-work">September 5 update: I paid for Letterly because I need dictation to work</h2>
<p>Wispr stopped working on my Pixel 7 Pro again. I tried the recovery app I built around it. That did not fix it. I rebooted. That did not immediately fix it either. The phone then crashed, appeared to reinitialize parts of the system, and Wispr eventually worked again.</p>
<p>I am tired of this. I paid for Letterly as an alternative even though I still prefer Wispr&rsquo;s results. Letterly does not work nearly as well for the way I dictate. This is not a claim that Letterly wins a controlled accuracy or reliability benchmark; it is where repeated interruptions have pushed me as a customer.</p>
<p>I want Wispr to work. Liking the output does not make losing my input method acceptable.</p>
<h3 id="what-we-actually-found-on-the-phone">What we actually found on the phone</h3>
<p>The investigation connected to the actual Pixel and examined retained Android crash records, process exits, permissions, services, recovery status, and alarm scheduling. Wispr was version <strong>2.3.1, build 156</strong>, on Android 16. All times below are Mountain Daylight Time on September 5.</p>
<table>
	<thead>
			<tr>
					<th>Time</th>
					<th>Retained evidence</th>
					<th>What it establishes</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>1:21 a.m.</td>
					<td>Android recorded a boot.</td>
					<td>A reboot occurred in this incident window.</td>
			</tr>
			<tr>
					<td>1:21:45 a.m.</td>
					<td>Phone-local Termux ADB aborted with <code>Address already in use</code> on its server socket.</td>
					<td>A recovery-control dependency had a startup collision. The same signature also appeared the previous afternoon.</td>
			</tr>
			<tr>
					<td>1:23 a.m.</td>
					<td>Several apps reported <code>DeadSystemException</code>; Android&rsquo;s system process reported a lost network stack.</td>
					<td>The failure extended beyond Wispr.</td>
			</tr>
			<tr>
					<td>1:23:53 a.m.</td>
					<td>Android recorded <code>SYSTEM_RESTART</code>.</td>
					<td>A framework restart occurred after the boot.</td>
			</tr>
			<tr>
					<td>1:28:18 a.m.</td>
					<td>My recovery worker recorded <code>control_unavailable</code>.</td>
					<td>It could not establish the connection needed to inspect or repair Wispr on that attempt.</td>
			</tr>
			<tr>
					<td>1:29 a.m.</td>
					<td>Wispr&rsquo;s foreground service and overlay activity resumed.</td>
					<td>Wispr was starting again; this alone is not proof that dictated text reached an editor.</td>
			</tr>
	</tbody>
</table>
<p>During the later working-state inspection, Wispr&rsquo;s accessibility service was enabled and bound. Its effective overlay permission was allowed, its microphone permission was granted, and it was already exempt from device-idle optimization. Roughly 45 GB of storage was free. Simply saying “enable the permissions” does not explain this incident.</p>
<p><strong>We did not prove that Wispr caused the Android crash.</strong> The system exception explicitly describes the lost network stack as a downstream effect. The initiating cause was not established by the surviving records. Nor did we capture the original, pre-reboot Wispr failure state this time. The invisible, non-touchable overlay documented below is an earlier verified incident, not a diagnosis we can automatically apply to every later failure.</p>
<h3 id="my-recovery-app-needs-fixing-too">My recovery app needs fixing too</h3>
<p>The workaround is mine, and its shortcomings belong in this update:</p>
<ul>
<li>It could not reach its ADB control connection, so the actual repair never began on the recorded failed attempt.</li>
<li>Its concurrency lock is acquired <strong>after</strong> ADB startup and discovery. Those operations therefore sit outside that protection. A socket collision is confirmed; the exact competing caller is not.</li>
<li>The app reported <code>termux_check_requested</code>, while the worker&rsquo;s separate result was <code>control_unavailable</code>. Requested is not checked, and checked is not repaired.</li>
<li>Android delayed the nominal three-minute alarm by about <strong>51 minutes</strong> under app standby during inspection. My original wording below overstated that schedule as an execution guarantee.</li>
</ul>
<p>The next repair is specific: protect connection startup, rediscover the paired connection after reboot, report results independently of that connection, and verify actual scheduling under standby. Then test a successful dictation after recovery. No permanent fix was installed during this investigation, and there is no evidence that my helper was what eventually restored Wispr that night.</p>
<h3 id="what-i-want-from-wispr">What I want from Wispr</h3>
<p>Please make the Android input path recover reliably, expose a useful failure state, and provide diagnostics that distinguish overlay failure, accessibility disconnection, and transcription or insertion failure. Users should not need a second application to babysit the first.</p>
<p>Wispr&rsquo;s <a href="https://docs.wisprflow.ai/articles/5002934560-why-is-the-wispr-bar-is-not-appearing-or-disappearing">bubble troubleshooting guide</a> describes reconnection and repair indicators. Its <a href="https://wisprflow.ai/whats-new">release notes</a> list Android 2.3.2, but the listed change is sign-in handoff—not a demonstrated fix for this incident.</p>
<p>I would rather keep using the dictation I like than build another app or keep paying for alternatives. But reliability has to be part of the product. The detailed findings above are why I am asking for a real fix, while being clear about the problems in my own workaround and the causes we have not established.</p>
<p><em>The original September 2 field note follows. Raw device logs and private identifiers are not published.</em></p>
<h2 id="original-september-2-field-note">Original September 2 field note</h2>
<p>Wispr Flow disappeared from my Pixel 7 Pro on September 2.</p>
<p>The obvious explanation was wrong.</p>
<p>The app was still installed and enabled. Its overlay permission was allowed. Its Accessibility Service was bound. The foreground service and process were alive. I had a normal text editor focused, the keyboard was open, and the microphone was not recording.</p>
<p>The Flow bubble was even still attached to Android&rsquo;s window manager.</p>
<p>It was just invisible and impossible to touch.</p>
<h2 id="the-failure-state">The failure state</h2>
<p>This happened with Wispr Flow 2.3.1 on Android 16. The important window-manager fields looked like this:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>window type: APPLICATION_OVERLAY
</span></span><span style="display:flex;"><span>requested size: 263 x 263
</span></span><span style="display:flex;"><span>alpha: 0.0
</span></span><span style="display:flex;"><span>shown alpha: 0.0
</span></span><span style="display:flex;"><span>flag: NOT_TOUCHABLE
</span></span></code></pre></div><p>That is a nasty failure mode because almost every normal health check says the app is fine. Reinstalling, randomly toggling permissions, or blaming Android&rsquo;s process killer would have missed the actual condition.</p>
<p>The reliable test was not “is the permission enabled?” It was:</p>
<blockquote>
<p>Is the real overlay window attached, visible, nontransparent, on screen, and touchable while a harmless editor has an active input connection?</p>
</blockquote>
<p>In this case the answer was no.</p>
<p>Wispr&rsquo;s own Android documentation says the Flow bubble depends on both display-over-other-apps permission and its Accessibility Service. Those prerequisites were present here. The broken state was one layer deeper: the overlay lifecycle had produced an attached but inert window. The official <a href="https://docs.wisprflow.ai/articles/2809924024-android-download-installation-guide">Android setup guide</a> and <a href="https://docs.wisprflow.ai/articles/2772472373-what-is-flow">Flow overview</a> explain the intended permission stack and bubble behavior.</p>
<h2 id="what-restored-it">What restored it</h2>
<p>The recovery had to account for an Android 16 behavior that can make a careless fix destructive: force-stopping Flow removes Flow&rsquo;s component from the enabled Accessibility Service list.</p>
<p>So the recovery order was:</p>
<ol>
<li>Capture the complete enabled Accessibility Service list.</li>
<li>Refuse to proceed if the phone identity, editor state, overlay permission, microphone state, or non-Flow service baseline is unsafe.</li>
<li>Confirm the same fault twice, 20 seconds apart.</li>
<li>Force-stop only Wispr Flow.</li>
<li>Verify every non-Flow accessibility component survived, normalizing Android&rsquo;s short and fully qualified component-name formats.</li>
<li>Reinsert only Flow&rsquo;s accessibility component.</li>
<li>Launch Flow, return to the original editor, and inspect the actual bubble window again.</li>
</ol>
<p>The repaired window read:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>alpha: 0.8
</span></span><span style="display:flex;"><span>shown alpha: 0.8
</span></span><span style="display:flex;"><span>on screen: true
</span></span><span style="display:flex;"><span>visible: true
</span></span><span style="display:flex;"><span>touchable: true
</span></span><span style="display:flex;"><span>requested size: 263 x 263
</span></span></code></pre></div><p>It held that state in a second check 20 seconds later. The microphone remained idle, and every other accessibility service remained enabled.</p>
<h2 id="i-added-a-watchdog-because-this-was-not-a-one-off">I added a watchdog because this was not a one-off</h2>
<p>I have now seen the Flow affordance disappear on both a TCL phone and this Pixel. A manual repair is useful; a recurring input failure needs a guarded recovery loop.</p>
<p>The Pixel now has an isolated, device-bound watchdog modeled after the one I built for the TCL. It requests a safe check on a nominal three-minute schedule and after boot/unlock events. <strong>September 5 correction: Android can defer that alarm, and a requested check can fail before reaching Wispr; see the update above.</strong> It does not type, record audio, or touch arbitrary apps. It refuses to repair while the phone is locked, the microphone is active, a sensitive input type is focused, the overlay permission is missing, or the non-Flow accessibility baseline cannot be proven.</p>
<p>It also has:</p>
<ul>
<li>two-sample fault confirmation</li>
<li>a 10-minute cooldown</li>
<li>a maximum of six recoveries per day</li>
<li>concurrent-run locking and stale-lock recovery</li>
<li>rollback on accessibility-list mismatch</li>
<li>device, model, and app-scoped identity binding</li>
<li>a post-repair requirement that the original editor regain focus and the bubble become visible and touchable</li>
</ul>
<p>The offline regression suite passed 19 scenarios, including healthy no-op, sleeping and locked devices, sensitive editors, an active microphone, revoked overlay permission, wrong-device refusal, a flapping fault, concurrent workers, stale locks, missing accessibility, a missing bubble, and an inert bubble.</p>
<p>Then I tested it against the real phone. The worker first reported a healthy no-op with all accessibility services unchanged. It later detected the inert bubble, performed one ordered restart, preserved the accessibility list, and logged a verified healthy bubble. When I deliberately injected another fault inside the 10-minute window, it correctly refused a second restart as <code>cooldown</code> instead of entering a repair loop.</p>
<p>That last distinction matters. “The automation ran” is not proof. A useful watchdog needs evidence that it repaired the intended condition, evidence that it preserved unrelated state, and evidence that it knows when not to act.</p>
<h2 id="what-wispr-should-fix">What Wispr should fix</h2>
<p>The product-side fix is smaller than my workaround.</p>
<p>Wispr&rsquo;s Android watchdog should treat an attached overlay as unhealthy when any of these are true in an active text-input context:</p>
<ul>
<li>effective alpha is zero</li>
<li>shown alpha is zero</li>
<li>the window is non-touchable</li>
<li>the overlay is off screen or not visible</li>
</ul>
<p>When that state survives a short debounce, Flow should rebuild the overlay without requiring the user to toggle permissions or restart the whole app.</p>
<p>The current health model appears to stop too early at “service alive” or “window attached.” An invisible, non-interactive microphone button is not healthy just because Android still has a window record for it.</p>
<h2 id="the-practical-takeaway">The practical takeaway</h2>
<p>If Flow vanishes on Android, check the actual overlay state before tearing apart the installation:</p>
<ol>
<li>Confirm the app, Accessibility Service, and overlay permission are present.</li>
<li>Open a harmless text editor and show the keyboard.</li>
<li>Confirm Flow is not actively recording.</li>
<li>Inspect whether the overlay is attached but transparent or non-touchable.</li>
<li>Preserve the full accessibility list before any force-stop or rebind.</li>
<li>Verify the repaired bubble itself, not just the process.</li>
</ol>
<p>Wispr Flow is still the dictation tool I keep using. That is exactly why this failure is so aggravating: when a tool becomes part of your input system, an invisible button is not a cosmetic bug. It is an outage.</p>
]]></content:encoded></item><item><title>Wispr Flow Is Great Dictation, Not a Transcript</title><link>https://errorzap.com/posts/wispr-flow-first-dictation-app-i-keep-using/</link><pubDate>Tue, 01 Sep 2026 01:30:00 -0600</pubDate><guid>https://errorzap.com/posts/wispr-flow-first-dictation-app-i-keep-using/</guid><description>I wired Wispr Flow to a four-button controller, used it across Windows and Android, and learned exactly where its AI cleanup helps—and where it quietly changes the record.</description><content:encoded><![CDATA[<p><strong>September 5 update:</strong> Wispr failed on my Pixel again, and I paid for Letterly as an alternative even though I still prefer Wispr&rsquo;s results. The investigation found an Android framework restart and failures in my recovery helper; it did not establish that Wispr caused the system crash. <a href="/posts/wispr-flow-android-bubble-invisible-not-touchable/#september-5-update-i-paid-for-letterly-because-i-need-dictation-to-work">Read the updated failure report, evidence, and corrections</a>.</p>
<p>I have tried enough voice-input tools to know the usual pattern. They are impressive for a day, awkward for a week, and forgotten by the end of the month.</p>
<p>Wispr Flow has been different. I installed it, linked it to my account, customized it, and kept using it. I put its push-to-talk shortcut on one of the four keys of a little USB controller at my desk. <code>Ctrl+F8</code> now turns speech into text without making me stop what I am doing and hunt for a microphone button.</p>
<p>That physical key matters more than the demo-reel AI. It turns dictation from a separate activity into an input method.</p>
<p>Flow is now how I dump a rough thought into ChatGPT or Codex, write a note before it evaporates, and get through longer technical explanations without forcing every sentence through a keyboard. It is also an unusually good test of the gap between <strong>what an AI heard</strong>, <strong>what I meant</strong>, and <strong>what finally appeared on screen</strong>.</p>
<p>My verdict after using it across Windows and Android is simple:</p>
<blockquote>
<p>Wispr Flow is an excellent intent-preserving editor. It is not a verbatim transcript, and it should not be treated like one.</p>
</blockquote>
<p>That distinction explains nearly everything I like about it—and nearly every place where it can get me in trouble.</p>
<h2 id="why-it-actually-stuck">Why it actually stuck</h2>
<p>Normal phone dictation makes me adapt to the machine. I have to speak in a neat little stream, avoid pauses, and hope the timeout does not decide I am finished while I am still assembling the thought.</p>
<p>That is not how I talk when I am thinking. I pause. I restart. I swear. I jump ahead, back up, and insert the piece I forgot. When I am frustrated or improvising, I get faster and more bursty. A tool that demands broadcast-ready speech before it will produce useful text has already lost.</p>
<p>Flow tolerates the rough input and returns something closer to what I would have typed after editing myself. It removes filler, adds punctuation, fixes capitalization, and often turns a spoken pile of parts into a clean paragraph. The official product description is unusually accurate on this point: Flow is built to <a href="https://wisprflow.ai/">format and polish speech as it becomes text</a>, not merely to dump raw speech recognition output into a box.</p>
<p>That makes it especially good for:</p>
<ul>
<li>AI conversations, where getting the complete intent onto the screen matters more than preserving every false start</li>
<li>technical notes, where I need to keep moving while the idea is hot</li>
<li>replies and drafts that would otherwise die in the gap between “I should write that” and opening the right app</li>
<li>accessibility, because voice can bypass some of the physical and cognitive friction of keyboard-first software</li>
</ul>
<p>The four-button controller completed the loop. One key starts Flow from wherever I already am. I do not have to change windows or break concentration. Flow&rsquo;s desktop shortcuts are customizable, and its documentation covers <a href="https://docs.wisprflow.ai/articles/2612050838-supported-unsupported-keyboard-hotkey-shortcuts">push-to-talk, hands-free dictation, and paste-last-transcript controls</a>. The important part is not the particular key combination. It is making voice input physically immediate.</p>
<p>If I had to explain why Flow survived when other dictation apps did not, I would not start with transcription quality. I would start with <strong>activation cost</strong>. A good tool that is one button away gets used. A great tool buried behind six taps becomes shelfware.</p>
<h2 id="the-one-button-note-machine">The one-button note machine</h2>
<p>The same lesson carried over to Android.</p>
<p>I wanted a capture path that did not punish pauses and did not require me to organize the thought before recording it. The workflow I ended up building was deliberately simple:</p>
<ol>
<li>Hold a hardware button.</li>
<li>Open a blank, multiline Flow note.</li>
<li>Talk for as long as the thought takes.</li>
<li>Confirm it.</li>
<li>Append the result—with a timestamp—to my running quick-note file.</li>
</ol>
<p>It does not overwrite the previous note. It does not make me choose a folder while I am still thinking. It just catches the thought and hands it to the place I already use for rough notes.</p>
<p>That is a better use of AI dictation than trying to make every voice memo into a pristine document. Capture first. Sort later. The tool&rsquo;s job is to reduce the distance between a thought and a durable piece of text.</p>
<p>Flow has its own Android quick-note behavior and floating controls, but the value came from fitting it into <em>my</em> workflow rather than accepting the default app journey. A personal dictionary and snippets help for recurring names, acronyms, and phrases. Context helps it decide whether I probably meant a technical term or an ordinary word. The system gets better when I teach it the vocabulary of my actual day instead of expecting a generic model to know everything.</p>
<h2 id="the-android-bubble-is-the-weak-link">The Android bubble is the weak link</h2>
<p>The desktop experience has been steady. Android has been more complicated.</p>
<p>On both my Pixel and a TCL phone, the Flow icon or floating bubble has vanished. Sometimes the keyboard still appears, but the Flow affordance does not. On the TCL, recovery worked and then the problem came back later. That recurrence matters: a one-time fix is not the same thing as a reliable system.</p>
<p>The reason is not mysterious. Flow on Android depends on a small stack of special permissions: the floating overlay, accessibility access, and the operating system&rsquo;s willingness to keep the relevant service alive. Wispr&rsquo;s own Android setup guide says the app needs “display over other apps” and Accessibility Service permissions, and that a warning symbol on the bubble can indicate revoked accessibility access. The company currently describes Android as a beta experience in its <a href="https://docs.wisprflow.ai/articles/2772472373-what-is-flow">platform guide</a>.</p>
<p>That beta label matches my experience.</p>
<p>I eventually built a conservative self-heal around the recurring TCL failure. It does not blindly poke the phone every time an icon disappears. It waits for the same fault to appear twice, rate-limits repairs, and preserves the other enabled accessibility services. That is overkill for a normal consumer—but it is also evidence that the bubble is not yet something I would trust as the only path into a critical workflow.</p>
<p>The practical Android recovery order is:</p>
<ol>
<li>Check whether Flow still has Accessibility Service permission.</li>
<li>Check its permission to display over other apps.</li>
<li>Open Flow directly and confirm the floating control is enabled.</li>
<li>Reboot only after checking the permissions, because a reboot that leaves the cause untouched is not a repair.</li>
</ol>
<p>If the bubble keeps disappearing, record the conditions instead of performing random rituals. Was battery optimization active? Did the accessibility permission revoke? Did it happen after an update or reboot? A repeatable failure with evidence is fixable. A collection of desperate taps is not.</p>
<h2 id="sometimes-the-transcription-is-fine-and-the-app-is-the-problem">Sometimes the transcription is fine and the app is the problem</h2>
<p>I hit another failure in MobaXterm: Flow showed that it was recording, but the words did not reliably appear in the terminal. Copy and paste were acting strange too.</p>
<p>That looked like a speech-recognition problem. It was not.</p>
<p>Flow had captured the speech. The failure was at the last inch, where the finished text had to be inserted into an application with its own terminal keyboard and paste rules. Fixing the native MobaXterm key routing solved the useful part without breaking my Flow configuration or the four-key shortcut.</p>
<p>This is an important troubleshooting distinction:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>microphone → recognition → cleanup → clipboard/keystrokes → target app
</span></span></code></pre></div><p>“It heard me but no text appeared” can fail at any arrow in that chain. Reinstalling the dictation app is a bad first move if the target program is swallowing the paste event. Before tearing up a working configuration, test the same phrase in a plain text editor. If it appears there, recognition is probably not the problem.</p>
<h2 id="what-flow-changes-when-it-cleans-me-up">What Flow changes when it cleans me up</h2>
<p>I ran a more deliberate speech test because “it seems good” is not enough for technical use.</p>
<p>The result was reassuring and cautionary at the same time.</p>
<p>In normal spontaneous speech—including filler, profanity, restarts, and technical discussion—Flow usually preserved my meaning. It handled terms such as DMARC, DKIM, and SPF correctly when I used them in context. A rambling Area 51 story came back cleaner but semantically intact. Carrier sentences helped it choose the intended word when isolated minimal pairs were ambiguous.</p>
<p>But Flow also proved that it is willing to edit.</p>
<p>Some isolated word pairs changed or disappeared. Phrases such as “beside” versus “inside,” or “plain towels” versus “clean towels,” could move in the wrong direction. Improvised singing and lyric-like material were rewritten substantially. The polished result often sounded more coherent than the raw speech, but it was not a court reporter&rsquo;s record of what left my mouth.</p>
<p>That behavior is a feature until the exact wording is the data.</p>
<p>I trust Flow for:</p>
<ul>
<li>getting the intent of a long AI prompt onto the screen</li>
<li>turning an unstructured thought into a readable note</li>
<li>drafting a message I will review before sending</li>
<li>explaining a technical problem where the surrounding context disambiguates the terms</li>
</ul>
<p>I verify Flow carefully for:</p>
<ul>
<li>IP addresses, commands, ticket numbers, prices, dates, and medication names</li>
<li>quotations or anything represented as somebody&rsquo;s exact words</li>
<li>names and unfamiliar proper nouns</li>
<li>short phrases where one changed word reverses the meaning</li>
</ul>
<p>And I do not use the polished output as the only record for a consequential conversation.</p>
<h2 id="the-doctor-visit-gap">The doctor-visit gap</h2>
<p>The missing feature I keep circling is meeting capture.</p>
<p>I do not need another corporate meeting bot hovering in every call. The real use case for me is a doctor visit: preserve the discussion, recover the action items, and give me something I can analyze later when I am not trying to listen, remember, and ask the next question at the same time.</p>
<p>Wispr now advertises a Notetaker and voice memos, but its current <a href="https://wisprflow.ai/pricing">pricing and feature page</a> lists those features as Mac-only. That does not solve my Windows-and-Android version of the problem.</p>
<p>Could I record a visit and analyze it later? Technically, yes—with the consent and recording rules that apply where the conversation happens. But the right source would be the original audio plus a transcript, not a cleaned Flow paragraph. For medical instructions, the distinction between “what was said” and “what an AI inferred I meant” is too important to collapse.</p>
<p>This is where Flow and a product such as Letterly stop being simple substitutes. Flow wins my daily use because it lives at the point of typing. A voice-note or meeting product can be better when the recording itself is the artifact. I do not need to replace Flow to cover that gap; I need the right second tool and a clear boundary between the jobs.</p>
<h2 id="the-privacy-switches-deserve-real-attention">The privacy switches deserve real attention</h2>
<p>Voice input feels lightweight because it disappears into text. Underneath, it can involve audio, application context, screen content, cloud processing, and stored transcripts. That deserves more than clicking through the onboarding screens.</p>
<p>Wispr documents two relevant modes. Cloud Sync can store transcript data in the account; Privacy Mode keeps more data local and limits some context features. The company says users can control whether their data is used for model improvement, and it describes zero-data-retention arrangements with some third-party processors. Its <a href="https://docs.wisprflow.ai/articles/4709791908-understanding-privacy-mode-and-cloud-sync">privacy-mode documentation</a> is the place to read the tradeoffs rather than guessing from the setting name.</p>
<p>Context Awareness is useful precisely because it can look beyond the audio. Depending on platform and settings, Wispr says that context may include the active app, nearby text, screen content, selected files, screenshots, or conversation history. Password fields are excluded, but the company notes that a custom web form may not always be identified as a password field. Read the <a href="https://docs.wisprflow.ai/articles/4678293671-Context-Awareness">Context Awareness documentation</a> and choose the setting deliberately.</p>
<p>There is also a current documentation inconsistency worth knowing before a business or healthcare deployment. Wispr&rsquo;s public privacy page advertises SOC 2 Type II and ISO 27001. Its more detailed <a href="https://docs.wisprflow.ai/articles/3467817258-security-and-compliance-faq">security and compliance FAQ</a> says the current status is SOC 2 Type I, with a Type II observation period and ISO 27001 certification work underway after an earlier auditor issue invalidated previous reports. That does not prove the product is unsafe. It does mean a buyer should request the current report and verify the attestation instead of relying on a badge or a marketing sentence.</p>
<p>My personal operating rule is straightforward: do not dictate passwords or secrets, review the model-improvement and sync settings, use Privacy Mode when the context is sensitive, and verify the current compliance evidence before putting regulated work through it.</p>
<h2 id="what-i-would-improve-next">What I would improve next</h2>
<p>Flow already clears the hardest hurdle: I want to use it. The improvements I care about now are less glamorous than model benchmarks.</p>
<ol>
<li><strong>Make the Android bubble boringly reliable.</strong> An input method cannot randomly disappear.</li>
<li><strong>Bring recording and meeting capture to Windows and Android.</strong> The doctor-visit use case should not require a Mac.</li>
<li><strong>Expose the boundary between transcript and rewrite.</strong> Let me compare the recognized wording with the polished wording when exact language matters.</li>
<li><strong>Make insertion failures diagnosable.</strong> If Flow captured the text but the destination rejected it, tell me where the chain broke.</li>
<li><strong>Keep expanding personal controls.</strong> Dictionary entries, snippets, app-specific style, and hardware shortcuts do more for daily usefulness than another generic “AI writes faster” claim.</li>
</ol>
<h2 id="the-verdict">The verdict</h2>
<p>Wispr Flow is the first dictation app I have integrated deeply enough to annoy me when it disappears.</p>
<p>That is praise.</p>
<p>It has earned a dedicated hardware key on my desk. It catches thoughts that would otherwise be lost. It lets me speak in the messy, stop-and-start way I actually think and produces text that is usually ready to use. It works in the apps where I already write instead of demanding that I live in its editor.</p>
<p>But I use it as an intelligent writing layer, not as ground truth.</p>
<p>When the goal is <em>communicate what I mean</em>, Flow is excellent. When the goal is <em>preserve exactly what was said</em>, I want the recording, a faithful transcript, and human review. When no text appears, I check the entire input chain before blaming recognition. On Android, I treat the floating bubble as beta infrastructure, because that is what it has behaved like. And when the content is sensitive, I configure the privacy and context settings instead of assuming the defaults match my risk.</p>
<p>The best tools do not merely perform well in isolation. They fit the person using them. For me, the winning combination was Flow&rsquo;s cleanup, one physical button, a personal vocabulary, and a few carefully engineered escape hatches for the places where software still gets weird.</p>
<p>That is much more useful than perfect dictation in a demo.</p>
]]></content:encoded></item></channel></rss>