Intro
VoiceLink is intended to work well with VoiceOver. This guide covers the main tasks, navigation patterns, and spoken cues you need to move between servers, review room details, join rooms, manage audio, and send diagnostics.
Basics
- The server list is the first major area to check when the app opens.
- The rooms view updates to match the selected server or the current federation view.
- Room details tell you which server a room belongs to, which matters when rooms with the same name exist on more than one server.
- Settings should remain available while you are in a room so you can change audio or diagnostics without leaving.
Getting Started
- Open VoiceLink and wait for the startup sound to finish.
- Move to the server list and choose the server you want.
- Move to the rooms list and review the focused room name and server source.
- Use the default action or VoiceOver actions to preview, open details, or join.
- After joining, confirm the room title, the count of people and bots (for example "3 people, 4 bots"), users, bots, and system messages are present.
Main Navigation
Servers
Each server should be announced by its display name. If descriptions are configured, read them before joining rooms so you know whether you are on Main, Community, or another linked server.
Rooms
Rooms should announce the room name and enough detail to distinguish rooms with the same name on different servers. In federation views, the server source is part of the room context.
Settings
Settings should stay reachable while you are in a room so you can change announcement preferences, diagnostics, or audio behavior without navigating away from the active room.
On iPhone and iPad, the Settings tab is a list of categories (General, Profile & Authentication, Security, Accessibility, Audio, Sync & Filters, Notifications, Privacy, Advanced), each read with a short hint. Double tap one to open its own screen; the screen title is a heading. A tab picker at the top, read as for example "Security tabs", switches between that screen's groups, and VoiceOver says the new tab's name. Each tab's content starts with a heading, so the headings rotor jumps to it. The last row depends on the connected server: Admin if you can manage that server, My Rooms if you are signed in without admin rights, or "Sign in to manage rooms" as a guest. When that changes, for example after signing in, VoiceOver announces it.
On iPhone and iPad, Settings, then Accessibility, then Speech, chooses what is read aloud in rooms. "Speak Room Events" turns all room speech on or off; messages still appear in the room either way. Under "Speak These Events" you can switch each kind on or off: Room Messages, Direct Messages, People Joining and Leaving, and System and Bot Messages. "Speak With" picks who reads them: Automatic (VoiceOver when it is on, otherwise the built-in voice, the same as the Mac app), VoiceOver Only, or Built-in Voice (always the built-in voice, even with VoiceOver on). For the built-in voice you can pick the Voice, Speaking Rate, Pitch and Volume, and use Test Speech to hear it. Messages that arrive while something else is being read wait their turn instead of cutting it off.
Working with Rooms
Previewing a room
Use Preview when you want a short background listen before joining. The preview should end automatically after the preview interval.
Opening room details
Use room details to confirm the room name, server, access level, visibility, and any current background media before you join. Room details also say when the room was last active and who was there, for example "Last active: 5 minutes ago by Dom", and list up to three people recently in the room. For private or password rooms, only members, room managers and server admins see the names; everyone else hears just the time. A room with no activity on record says "No recent activity".
Joining a room
Join the room from the room row or details screen. The room header should then identify the active room and server.
Reviewing people in the room
Move to the user list after joining. Users, bots, and supported system entries should appear there instead of a generic empty-state message when the room is active.
Every room gives separate counts of people and bots. In the rooms list a room reads, for example, "Classroom, 3 people, 4 bots" or "Classroom, 1 person, 0 bots". The bot count is always said, even when it is 0. The counts come from the server, from who is in the room right now, and change as people and bots join or leave: straight away on the Mac and on the web, every 30 seconds on iPhone while the room list is showing, and every 20 seconds in the Windows app, without moving your focus.
Inside a room you get the same counts. On iPhone the sections are called "People in Room: 3" and "Room Bots: 4", and the status says "3 people, 4 bots in the room." On the Mac, the room header has an "In this room: 3 people, 4 bots" line, and the members list uses the same wording. On the web, the room heading reads "In this room: 3 people, 4 bots". In the Windows app, room details show "In room: 3 people, 4 bots" and a "Bots:" line with their names.
The bots in a room are our real agents (Clawdia, System Monitor, Sophia, Sapphire, Elder and Adam), usually 1 or 2 per room; see Agents in Rooms. A bot that is in many rooms is counted once in each room it is in. Server and group totals count each bot only once. Room notices from "System" are not counted as a bot.
Reading room and system messages
Room messages appear in the Room Chat section above the message field, newest first, including your own messages as soon as you send them. When someone joins or leaves, a System line such as "Sam joined the room." appears once, and is spoken if People Joining and Leaving is switched on in Settings, then Accessibility, then Speech. On iPhone, "Show All Room Messages" opens the full list.
A link in a message reads by its page title, or a short address such as "youtube.com/watch" if no title is available -- never the full web address. The full address is still there if you need it: open the message's menu and choose Copy Message, which copies the whole message as sent. On a message with a link, the menu also has Copy Link (and Open Link, which opens it in your browser); with more than one link, Copy Link and Open Link each open a submenu listing every link by its title so you can pick the right one.
Adjusting room audio controls
Show audio controls only when needed. Room media, user volume, mute, and monitoring should be available through the room menu or user actions without forcing a room disconnect.
VoiceOver and Keyboard Notes
VO-Spaceactivates the selected item.- VoiceOver actions on a room row can expose Preview, Join, Share, or Details.
- VoiceOver actions on a user row can expose actions such as profile, direct message, or audio controls when supported for that user type.
- On iPhone and iPad, a two-finger double tap (Magic Tap) in a room turns your microphone on or off. VoiceOver says "Microphone on, the room can hear you" or "Microphone off".
- On a person in a room, swipe up or down to "Whisper to" their name, or double tap and hold on them and lift your finger to stop. On Mac, use the member row actions or Shift-Command-W.
- Incoming intercom clips are announced as "Intercom from" or "Broadcast from" the sender. See Live Microphone, Whisper and Intercom.
- In the web app (VoiceOver on Mac, NVDA or JAWS on Windows), the Microphone switch is in the room's voice controls and reads as a switch, on or off. Control-Shift-M (Command-Shift-M on a Mac) switches it from anywhere in a room, and you hear "Microphone on, the room can hear you" or "Microphone off". The room is the main landmark, and people are in a list named "People in this room".
- The web app now uses the same live audio path as the iPhone, iPad and Mac apps, so you hear app users and they hear you.
- Room background media (music or radio under the voices): VoiceOver says "Now playing" and the song when it changes. The "Background media volume" slider and "Mute background media" switch change it for you only. On Mac, Command-Option-B opens the Background Media window. See Room Background Media.
Web App Keyboard Guide (NVDA, JAWS, VoiceOver)
- Every screen has one level 1 heading and a main landmark. The skip link at the top of the page goes to the heading of the screen that is showing.
- After "Continue as Guest", the main screen has a tab list named "VoiceLink web sections" with Servers, Federated Rooms and Settings. Only the selected tab is in the Tab order: press Tab to reach it, then Left and Right Arrow (or Home and End) to move between tabs; the tab you move to opens straight away. Press Tab again to move into that tab's content. With NVDA in browse mode you can also arrow down to a tab and press Enter.
- The Servers tab starts with a list of servers under the heading "VoiceLink servers". Each server is one button that says its name and status, such as "Community, online, 1 person, 14 rooms". Press Enter (or Space) to open that server's screen; focus moves to the server's name heading. Its rooms follow as a list, each with a "Join" button that includes the room name, then "Server actions". Escape, the browser Back button, Alt+Left or the "Back to all servers" button take you back to the list with focus on the same server. Escape does nothing while you are typing in a text field.
- The "Browse Rooms" button on the Servers tab opens Federated Rooms for you. Each room has "Join", "Details" and "Share" buttons that include the room name, for example "Join Test Room".
- "Join Existing Room" takes a room name, for example "Test Room" (capitals don't matter), or a pasted room ID. If more than one room matches, or none does, you hear which, and focus goes back to the room field.
- When you join, you hear "You joined" and the room name, followed by "Microphone on, the room can hear you" or "Microphone off". The microphone starts on unless you turned that off in Audio settings.
- The Microphone switch's shortcut is Control-Shift-M on Windows and Command-Shift-M on a Mac. It is now said once, with the right key for your computer.
- In "People in this room", each person reads as their name and status, for example "Claudia, bot", as a button with a menu. Press Shift-F10, the Applications key, Enter or Space to open their menu (with VoiceOver on a Mac, VO-Shift-M or Shift-M). The menu includes "Whisper to" their name. Up and Down Arrow move through it; Escape closes it and puts you back on the same person, and so does choosing an action that doesn't open a dialog.
- Tab or arrow to a chat message, then press Shift-F10, the Applications key (with VoiceOver on a Mac, VO-Shift-M or Shift-M) to open its menu: Copy Message, and, if the message has a link, Copy Link and Open Link (a submenu by title when there's more than one link). Up and Down Arrow move through the menu, Enter or Space chooses an item, Escape closes it. If a message has exactly one link, pressing Enter on the message itself opens that link right away.
- Settings is a tab list (Audio, Application, Network, Streaming, Privacy, Advanced) that works the same way as the main tabs. The input and output device menus and the Input and Output volume sliders have labels, the sliders say their value in percent, and the close button is "Close settings".
- In the Intercom / Broadcast dialog, Escape closes the dialog and returns you to the Intercom button without any extra message.
- The web app no longer says "VoiceLink Local application loaded", and each screen is announced once when it opens.
- Announcements (navigation, status, errors, people joining or leaving) go only to your running screen reader by default - the web app never speaks them itself in a Microsoft or other system voice on top of what you already hear. If you don't use a screen reader and want the web app to speak announcements itself, turn on "Speak announcements with the browser's voice" under Settings, Application, Accessibility; a Test button there lets you hear it before deciding. This setting is off by default and stays off unless you turn it on yourself.
- Sliders should announce percentage values and adjust in consistent steps.
Escapecloses dialogs or sheets where the platform supports it.
Troubleshooting
- If no room users are shown, refresh the room once and then send diagnostics.
- If no audio is heard, check mute state, output selection, and whether room media is enabled.
- If a secure connection fails, the app may retry the fallback transport when the server allows it.
Contact and Feedback
When reporting a VoiceOver issue, include the platform, build number, server name, room name, and the exact control label or spoken phrase that did not match the guide.