Releases: math65/ttaccessible
ttaccessible 1.2.0
Push-to-talk support.
Added
- Push-to-talk — new microphone mode in Preferences > Audio > Push-to-Talk. Pick a global hotkey and hold it to transmit; release to stop. Works from any app (including Safari, Mail, etc. with ttaccessible in the background) — no Accessibility permission needed thanks to a Carbon-based hotkey API. Optional sound on each press/release (reuses the existing
hotkeysound). Requested by techluver on AppleVis.
Install
If you're on 1.1.3, ttaccessible will install this update for you — no action needed.
Manual install:
- Download
ttaccessible-1.2.0-21.zipbelow. - Unzip and drag
ttaccessible.appinto your/Applicationsfolder, replacing the previous version. - Double-click — no Gatekeeper warning thanks to notarization.
ttaccessible 1.1.3
Auto-Away reliability fix.
Fixed
- Auto-Away no longer flips back to Available without input. Earlier versions used IOKit's
HIDIdleTime, which silently returns 0 when its system query fails — looking exactly like "the user just typed something" and pulling the user out of Away within seconds of going Away. The detection now usesCGEventSource.secondsSinceLastEventType(keyboard + mouse buttons), with a "sharp idle drop" requirement so a single transient reading can't trigger deactivation. Polling tightens to 0.5s while Away so real input restores Available within a second. Thanks to Casey Reeves (@xogium) for the patch (PR #6).
Install
If you're on 1.1.2, ttaccessible will install this update for you — no action needed.
If you're on 1.1.0 or 1.1.1, you still need to install 1.1.2 manually first (see the v1.1.2 release notes). 1.1.3 will follow automatically after that.
Manual install:
- Download
ttaccessible-1.1.3-20.zipbelow. - Unzip and drag
ttaccessible.appinto your/Applicationsfolder, replacing the previous version. - Double-click — no Gatekeeper warning thanks to notarization.
ttaccessible 1.1.2
Critical Sparkle fix. Manual install required this one time if you're on 1.1.0 or 1.1.1.
Fixed
- Sparkle update install failed with "An error occurred while running the updater." The mach-lookup entitlements that let the sandboxed app reach Sparkle's helper XPC services were signed with the literal string
$(PRODUCT_BUNDLE_IDENTIFIER)-spksinstead ofcom.math65.ttaccessible-spksbecause the build script's call tocodesigndoesn't expand Xcode build variables. Hardcoded the bundle identifier in the entitlements so the substitution happens at-source.
One-time manual install
If you're on 1.1.0 or 1.1.1, Sparkle in those versions cannot install this update for you — that's the bug we're fixing. Install once manually:
- Download
ttaccessible-1.1.2-19.zipbelow. - Unzip and drag
ttaccessible.appinto your/Applicationsfolder, replacing the previous version. - Double-click — no Gatekeeper warning thanks to notarization.
From 1.1.2 onward, Sparkle takes over normally for every future release.
If you're on 1.0.2, the old in-app updater will surface 1.1.2 the next time you check — install it manually the same way (as planned for the Sparkle migration).
ttaccessible 1.1.1
Small Sparkle quality-of-life update.
Fixed
- Update check on every launch. Sparkle's default behavior is to check at most once every 24 hours, even across app restarts. ttaccessible now also triggers a silent background check ~3 seconds after each launch — so if a release drops between scheduled checks, you see it the next time you open the app instead of waiting up to a day. The auto-check preference still gates everything; if you've turned it off, no launch check either.
Install
If you're already on 1.1.0, ttaccessible will install this update for you — no action needed. Otherwise:
- Download
ttaccessible-1.1.1-18.zipbelow. - Unzip and drag
ttaccessible.appinto your/Applicationsfolder, replacing the previous version. - Double-click — no Gatekeeper warning thanks to notarization.
ttaccessible 1.1.0
ttaccessible now updates itself. This release migrates the app from a homemade updater to Sparkle, the framework used by most third-party Mac apps. Once you're on 1.1.0, future updates install on a click — no more downloading a zip, unzipping, and dragging the app to /Applications.
What's new
- Automatic updates. Sparkle checks for new versions once every 24 hours in the background. When one is available, you get its release notes in a native dialog. Click Install Update, the app quits, the new version swaps in, and the app relaunches — usually under 10 seconds end to end.
- Manual check anytime. ttaccessible → Check for Updates… in the menu bar (Cmd+, then look around if it moves).
- Auto-check toggle. Preferences → General → Updates → Check for updates automatically. On by default. Disable it if you want strict manual control.
- Beta channel. Preferences → General → Updates → Include beta versions. Off by default. Turn it on if you want to test pre-release builds as soon as they ship.
One-time migration step
If you're on 1.0.2 or earlier, the old in-app updater will offer 1.1.0 as a manual download — that's the same flow you've used until now: download the zip, unzip, drag into /Applications. Do this once.
From 1.1.0 onward, Sparkle takes over. You won't need to download zips by hand again.
How updates are verified
Every update is signed with an EdDSA key whose public counterpart ships inside ttaccessible itself. Sparkle refuses to install anything that doesn't match. The app is also still sandboxed, notarized by Apple, and stapled — same security guarantees as before, no relaxations.
Install
- Download
ttaccessible-1.1.0-17.zipbelow. - Unzip and drag
ttaccessible.appinto your/Applicationsfolder, replacing the previous version. - Double-click — no Gatekeeper warning thanks to notarization.
After this, you're done with manual downloads.
ttaccessible 1.0.2
Bug fix release restoring the keyboard shortcut for streaming an audio file.
Fixed
- Stream Audio File keyboard shortcut: ⌥⌘S no longer triggered streaming a file after 1.0.1's Stream submenu refactor — and ⌥⌘U / ⌥⌘. were affected too. SwiftUI does not register
keyboardShortcutaccelerators on items nested inside aMenu(...)within aCommandMenu. The three Stream items are now back at the top level of the Shortcuts menu, so all three accelerators work and appear next to their menu items. Thanks to the AppleVis forum reporter.
Install
- Download
ttaccessible-1.0.2-16.zipbelow. - Unzip and drag
ttaccessible.appinto your/Applicationsfolder, replacing the previous version. - Double-click — no Gatekeeper warning thanks to notarization.
ttaccessible 1.0.1
Bug fix release with two important fixes around quit stability and microphone transmission.
Fixed
- Quit crash: a race condition in the TeamTalk SDK could crash the app on quit when an active session was being torn down. The app now waits briefly for the SDK's internal threads to finish before letting the process exit.
- Microphone transmission on the system default device: voice was not being transmitted when the selected microphone was the macOS system default input. The capture engine now uses an explicit Core Audio device binding for every input, including the system default. Thanks to Casey Reeves (@xogium) for the fix.
Install
- Download
ttaccessible-1.0.1-15.zipbelow. - Unzip and drag
ttaccessible.appinto your/Applicationsfolder, replacing the previous version. - Double-click — no Gatekeeper warning thanks to notarization.
ttaccessible 1.0.0
First official release, signed with Developer ID and notarized by Apple. The app leaves beta: no more Gatekeeper warning at install.
What's new
- Guided reconnection: if the server rejects your password or username, a dialog lets you edit your credentials and automatically retries the connection once they're fixed.
- Stream submenu: new option to stream a local audio file or a remote URL into the current channel.
- Update checker: the app now detects new versions on GitHub and offers to download them.
- Custom app icon.
Under the hood
- First build with hardened runtime enabled and Developer ID signature.
- Reworked password storage (simplified login keychain, more robust).
Install
- Download
ttaccessible-1.0.0-13.zipbelow. - Unzip and drag
ttaccessible.appinto your/Applicationsfolder. - On first launch, double-click the app — no Gatekeeper warning thanks to notarization.
1.0.0-beta.12
What's new
- Audio file streaming: stream an MP3/audio file to the current channel via the Shortcuts menu or Cmd+Option+S, with a dedicated player window — play/pause, stop, seek, broadcast gain, and keyboard shortcuts (Space, Esc, ←/→, ↑/↓).
- Keychain: fewer keychain prompts when accessing saved servers — data-protection-keychain path with safe fallback, persistent migration marker so legacy two-item entries aren't probed on every launch.
- Accessible sliders: Home/End jump to min/max, Page Up/Down move by 10% of the range (10 seconds on the player position slider).
- Channel sorting: new preference in Preferences > Connection to sort channels by name or by total user count (most populated first).
- Sound packs: imported sound pack names are sanitized, duplicate divider in Preferences > Sounds removed.
Download
TTAccessible 1.0.0-beta.11
What's new in beta 11
This release is built around a generous community contribution from @Quinton1110 — thanks!
Import & export servers
- Import server
.ttfiles and pastedtt://links directly from the import picker. Imported entries preserve server name, auth info, join channel, and channel password. - Duplicate detection on
.ttimport (prompts to replace). - Export saved or connected servers to a
.ttfile or copy as att://link. For connected servers, you can optionally include the current channel and password. - When you connect via a temporary
.tt/tt://link, the app prompts to save it before disconnect or quit.
Custom sound packs
- Import any folder of
.wavfiles as a custom sound pack — Preferences > Sounds > New Pack. - Per-sound replace/reset, reveal pack folder in Finder, delete custom packs.
- New "Required Files" dialog listing the expected filenames and what each sound is used for.
Per-user voice & media controls
- Separate voice and media-file volume sliders per user (Cmd+U).
- New media-file mute alongside voice mute.
- Media-file volumes are persisted per username, just like voice.
User accounts (admin)
- Right-click on a user account to export it as a
.ttfile, copy astt://, or delete. - Same actions exposed as VoiceOver custom actions and via
VO+Shift+M. - The accounts list refreshes immediately after create/update/delete, and your current session reflects identity/permission changes when you edit your own account.
File transfer improvements
- Upload/download/delete completions are tracked properly.
- Security-scoped file URLs stay alive for the entire transfer.
- Transfer progress is announced when TeamTalk reports it active.
- Upload quota errors surface clearly; channel files refresh after relevant events.
Audio UI
- Gain sliders now show 0–100% (mapped internally to dB), with stable VoiceOver values that don't jump while sliding.
Build 2 (post-release fix)
- Fewer macOS keychain prompts on connect: server and channel passwords are now stored in a single keychain item instead of two. Existing saved servers migrate transparently on first connect after upgrading.
Installation
The app is unsigned (no Apple Developer certificate). On first launch:
- Move
ttaccessible.appto/Applications - Try to open it — macOS will block it
- Open System Settings > Privacy & Security and click Open Anyway