Keyboard navigation and screen reader accessibility
Last updated: November 4, 2026
Available on: Mac, Windows, iOS, and Android. Support and known gaps differ by platform.
Use keyboard navigation and screen readers with Flow, choose a light or dark appearance on desktop, and reduce animation through your device's settings.
Navigate with a keyboard
Desktop instructions apply to Mac and Windows. Cmd/Ctrl means Cmd on Mac or Ctrl on Windows.
Action | Shortcut |
Move between interactive elements | Tab; Shift+Tab to move back. |
Activate a focused button or tab | Space or Enter. |
Move between Hub sidebar or Settings pages | Option+↑ / Option+↓ on Mac; Alt+↑ / Alt+↓ on Windows. |
Switch tabs in a focused tab bar | ← / → selects and focuses the next enabled tab. |
Go back or forward | Cmd/Ctrl+[ or Cmd/Ctrl+] when navigation history is available. |
Open Hub feedback | Cmd/Ctrl+/, outside a text field. |
Sidebar, history, Dictionary, Snippets and meeting-list shortcuts pause while you type or a dialog, popover or feature tip is open. In Settings, Option/Alt+↑/↓ moves through the Settings and Account groups as one list, not the Hub behind it.
Sidebar: stepping stops at either end, skips pages unavailable to your account or organization, and excludes Settings, Help, Referral and Team. From a page outside that list, Option/Alt+↓ opens its first visible page. Settings buttons announce the current page, but not a navigation or tab grouping.
Header: Toggle sidebar, Notifications and Account are named Tab stops, and Notifications announces the exact unread count even when the badge reads 9+. Account sits next to the sidebar toggle on Windows and on the right on Mac, changing its Tab position. Windows Minimize, Maximize and Close support Tab, Space and Enter outside fullscreen and setup; macOS provides Mac window controls.
Tabs: Tab reaches the selected tab; arrows stop at either end and skip disabled tabs, which cannot receive keyboard focus. Read through the tab bar to hear them: screen readers announce selected/disabled states and a supplied disabled reason or “Coming soon.” Their hover explanations are not keyboard-triggered.
Insights/Stats: ←/→ also switches tabs without moving focus when focus is outside the bar, except while typing or an overlay is open. Available tabs vary by account and data-deletion policy. Unselected content is hidden from screen readers, but the relationship between each tab and its content is not announced.
Navigate lists
Snippets and Dictionary
Both lists announce a named, selectable grid. ↑/↓ or k/j moves keyboard focus to a row and scrolls it into view; only loaded rows are reachable.
Row controls: Tab moves through each row, its available edit and delete buttons, then the next row; Shift+Tab reverses. Star appears only in Dictionary. Hidden controls are neither announced nor Tab-reachable.
Edit: Enter opens the current row's editor when the row itself or no control has focus; a focused row button keeps its own Enter action. Enter does nothing for a deleted row.
Select: Shift+↑/↓ extends selection; j/k does not. Escape clears selection first, then removes focus if a row or its control remains focused.
Delete: with at least one row selected, Cmd/Ctrl+⌫ opens confirmation and rows are removed only after you confirm. Holding the shortcut does not repeat it, and plain ⌫ does nothing. After deletion, ↓ reaches the row occupying the deleted row's place.
Search and add: Cmd/Ctrl+F or / focuses search; Cmd/Ctrl+N or c opens the add-word or add-snippet dialog. ←/→ switches tabs without wrapping.
Bulk actions: selecting one row replaces search, sort and refresh with Tab-reachable bulk buttons; selecting two or more hides the selected rows' individual actions. Delete includes the selected count.
Switching tabs, filtering rows out or refreshing them out of view clears affected selections, as do clicks outside the list, bulk toolbar or an open dialog. Moving the pointer to another row sets where keyboard navigation resumes and removes focus from the previous row without focusing the hovered row.
Search loading is not announced. Sort has a spoken name and keyboard-operable choices; page shortcuts pause while its menu is open.
Dictation history
↑/↓ or k/j moves the current row without wrapping. Tab traverses each row and its controls; Shift+Tab from a row reaches the previous row's last enabled control. Enter copies a successful transcript, unless a row control has focus. Escape or changing search clears the cursor; a shortened list keeps it within the remaining rows.
For unsuccessful recordings, Enter retries or recovers only while audio remains available and the recording is no more than 14 days old. Recordings with an error or no transcript must also be at least 5 seconds long; dismissed or still-processing recordings have no minimum-length requirement. Otherwise Enter does nothing. Retry is blocked during dictation and fails with an error message if audio is unavailable.
Screen readers announce “Dictation history,” date groups such as “Today,” and each row's time and transcript; successful Instruct recordings also announce “Instruct.” Hover changes the current row without taking focus or scrolling, and hidden controls are not read. Copy requires a successful transcript; Feedback and More remain available. Recordings older than 14 days have no Play control and cannot have audio extracted.
The history “Report to Improve Model” dialog does not support Cmd/Ctrl+Enter; activate its submit button instead.
Meetings and notes
In the meeting list, ↑/↓ selects a meeting without wrapping and Enter opens it unless a button or link has focus; empty lists do nothing. These shortcuts also pause while the note reader, feedback or Ask-anything chat is open.
Cmd/Ctrl+N starts a recording; Cmd/Ctrl+F or / opens the search panel or the active tab's inline search, depending on the available interface; Shift+Tab focuses the most recent recorder. Cmd/Ctrl+] reopens the last opened meeting only if it remains in the loaded past list.
In an open note, j goes to the previous note and k to the next, except while typing or an overlay is open. Escape or Cmd/Ctrl+[ closes Ask-anything first, then returns from the note to the list. When editing a meeting note, the first Escape leaves the editing field; the next exits.
My Notes groups past meetings under date headers such as “Today, Nov 1”; arrows skip these non-selectable headers.
The “Attendees” button has no total count. It focuses a named roster with per-group person counts, except when there is only one company-less group. Close it with Escape, a click outside, or by activating Attendees again; while it is open, j/k note navigation pauses and Escape closes only the roster, not the note.
Open Notifications, Account or Help
Tab to the Notifications, Account or Help button in the Hub.
Press Space or Enter to open the panel; focus moves into it.
Tab or use the arrow keys through the options, which skip section headings.
Press Enter to select an option.
Notifications and Account are named dialogs; Help is a named menu with grouped items. Escape or clicking outside closes the panel and returns focus to its button, and choosing an option also closes it — unless that option opens a dialog, where focus stays in the new dialog. Pressing a panel's trigger again closes it; opening the other header panel switches directly to it. Closed panels are not read by screen readers.
Note: Clicking the Hub's top bar does not close an open panel. Press Escape or click elsewhere instead.
Search fields and match navigation
In history, Cmd/Ctrl+F or / focuses the labelled search field outside text fields and overlays. A collapsed search is reached through its named toggle, which announces its open/closed state; the hidden field is skipped, and disabled search collapses and cannot receive focus.
Focusing search selects existing text. An empty field collapses when toggled or left; a field with text stays open, and its toggle refocuses it. Escape clears and collapses search without closing the notepad, while speaker-assignment search stays open after clearing. Clear search clears the text and keeps focus in the field.
In notepad Transcript and Summary search, enter at least two non-space characters. Enter/↓ moves to the next match and Shift+Enter/↑ to the previous one, wrapping at either end, and the current match scrolls into view. Changing the query or matching options returns to the first match after results update. Other search fields do not use these match shortcuts.
With no matches, the counter reads 0/0 and match-arrow buttons are absent; Clear search remains available. Transcript search pauses live auto-scroll until search closes or clears. Empty transcripts have disabled search; Summary search appears only with a summary body, and opening it completes any ongoing text reveal.
Links in the snippet editor
On Mac, in the rich-text snippet editor, Cmd+K, the toolbar link button or right-clicking an existing link opens “Insert link” and focuses URL; a plain-text snippet field has no link popup. Left-clicking an existing link opens its URL instead.
An existing link opens with its text and URL filled in and a Remove button. Tab/Shift+Tab stays inside the popup. Enter in Text or URL applies; Enter on a button activates that button. A blank URL does nothing and leaves the popup open. With no selected text and a blank Text field, a new link uses its URL as its text.
Warning: Changing the text of a link containing differently formatted sections replaces the whole link text and removes those separate formatting runs.
Escape, Cancel or an outside click closes only the popup and returns focus to the editor, preserving the unsaved draft. During input-method composition, Escape and Enter in Text/URL do not dismiss or apply; focused buttons retain their own activation behavior.
Dialogs, tips, menus and pickers
A titled Hub dialog announces its name and initially focuses the dialog unless an input already has focus; a titleless dialog has no spoken name. Tab/Shift+Tab cycles available controls, skipping hidden ones, and focus stays on the dialog if none are reachable. Escape or a click that both starts and ends on the backdrop closes a dismissible dialog, and focus returns to the original opener if it remains available. A non-dismissible dialog stays open and prevents Escape from acting behind it; if a backdrop click leaves focus outside a still-open dialog, Tab returns it inside. Some dialogs omit the close button; use their own controls or permitted Escape/backdrop dismissal. Some older dialogs lack an announcement, initial focus, Tab containment and focus restoration, and their closed content may remain readable. A dialog opened from a popup must be dismissed before interacting with the underlying popup. For destructive actions requiring a confirmation phrase, the labelled field must match that phrase exactly before the confirmation button becomes available.
Feature-tip cards take focus on opening and each step change, then restore it on closing. They announce a step-specific name or “Coach mark,” plus “Step N of M.” Tab does not loop inside and Escape does not dismiss them: use Dismiss, Back or Next/Done, with Back absent on the first step. The full-screen tour announces “Feature tour.” The setup prompt “This is the Flow Bar” is not announced as a named dialog; activate Continue to advance.
Newer menus announce menu items and support arrow navigation. Some older menus use Tab, with options later in the Tab order rather than immediately after their trigger; Escape, outside clicks, scrolling or resizing closes them.
Older pickers without a searchable or keyboard-enabled opening control cannot be opened by keyboard and do not announce open/closed state or the highlighted choice. A searchable field opens its list on focus, and opening that list focuses the field. Keyboard-enabled single-choice pickers announce a combo box and its state; Enter, Space, ↑ or ↓ opens them at the current choice. In older open pickers, ↑/↓ wraps through choices, Enter selects and Escape closes; Tab selects without advancing focus, while in keyboard-enabled single-choice pickers it selects, closes and advances. Single-choice selection closes the list; multi-select stays open. Typing highlights the first match, option counts and “No matches” are not announced, and disabled pickers cannot open.
Newer searchable combo boxes announce state, options, groups and “No matches.” Tab reaches the text field, not the “Show options” arrow, and some fields lack a spoken name. ↓ highlights and Enter selects; if an unavailable row is highlighted, Enter selects the first enabled match instead, or nothing if none exists. Escape closes the list first, then clears typed text without clearing selection; with a closed, empty field, Escape reaches the surrounding dialog. Close suggestions before reading selected entries. Multi-select entries have focus indicators and “Remove <name>” buttons, and Backspace in an empty field removes the last selection.
Submit feedback or contact requests
Cmd/Ctrl+Enter submits Contact Us and contact-team-admin messages, not every dialog. Opening Hub feedback focuses Message. An incomplete Contact Us form shows inline errors; an empty team-admin message shows an error notification. Billing discount requests require an attachment. Sending disables the Send button and blocks duplicate submissions.
Contact Us has a named Attach images button and keyboard-reachable, named remove-image buttons. Attach one supported image of at most 10 MB; exceeding either limit shows an error and attaches nothing. Report an issue and Share feedback mode controls are not keyboard-operable.
If sending Contact Us feedback fails, Flow copies your typed message to the clipboard and shows an error so the text is not lost.
Use a screen reader
Flow is tested with VoiceOver on Mac and iOS, NVDA and JAWS on Windows, and TalkBack on Android; other screen readers are untested.
Desktop has “Main navigation,” “Secondary navigation” and “Main content” landmarks, a page heading and current-page announcements. Sidebar and panel controls announce open/closed state, and decorative images are hidden. When a page is locked for dictation, its title and unlock action remain accessible, but its tabs, content, header actions and page shortcuts do not.
Desktop notifications and controls
Filter notifications and More actions are named Tab stops that open with Space/Enter and support arrow navigation; Archive is also keyboard-activatable. Activating a shared-note notification opens that Note and closes the panel, while Archive does not open it. Unavailable Notes show “This Note is no longer available.” and cannot open. Failed archiving restores the notification with an error announcement.
Flow Bar close buttons announce “Dismiss notification”; the maximum recording-length check-in action reads “Dismiss.” Expiry is not explicit dismissal, and hover pauses a notification's countdown.
Brief toast messages do not move focus: errors interrupt, while success, information and progress wait for a pause. They have no close button and do not respond to Escape, and auto-dismiss is normally after 3 seconds. A labelled action such as Undo supports Tab, Space and Enter and dismisses the toast early; during its closing fade, the action may retain focus but cannot run again.
Settings switches announce checked/unchecked checkboxes and use Tab and Space, not Enter. Icon buttons use Tab, Space and Enter and have names in your language. Disabled switches and icon buttons are announced as disabled and skipped by Tab, but their explanation is hover-only. Toggle-style icon highlights and busy states are not consistently announced.
The Settings update button's name reports checking, downloading, restart, error, up-to-date or organization-managed status. It is disabled while checking or downloading, while updates are organization-managed, or while an organization schedule prevents a check. When ready, activating “Click to update and restart Flow” installs and restarts; other enabled states check again.
iOS
Language rows announce the language name and selection, not the flag emoji, and search filters the list. The keyboard's writing-style pill announces “Writing style” and its current value when available; when unavailable for interaction, it is disabled.
Keyboard controls have labels for Cancel transcription, Settings, Undo/Redo, Edit last dictation, Add to dictionary, Word saved and Start Flow; only the visible Add to dictionary or Word saved control is announced. Error options include a hint, and Service incident includes the incident message. The main dictation label changes with its state but has no label while processing. Start Flow and dictation controls identify that they start audio.
Mode keys are announced as “Numbers,” “Symbols” and “Letters,” rather than 123, #+= and the visible lowercase abc. Key labels and key press callouts stay at a fixed size and do not follow your accessibility text size setting.
Android
TalkBack announces bottom-navigation tabs and Dictionary controls, including add, edit, delete and search. Dictionary Edit and Delete labels belong to swipe-revealed actions rather than persistent per-row buttons: swipe right to edit or left to delete.
In setup, the static accessibility walkthrough image has a description, but looping videos do not, and the shortcut-error icon and its screenshot are announced as “Image.” The separate “Flow can't insert text” card has readable guidance to turn on accessibility for Flow in Settings, plus an Open Settings button.
Choose a light or dark appearance
On Mac and Windows, the theme menu in the Hub's top navigation offers Light, Dark and Auto. Pick Light or Dark to set the appearance across the Hub, including settings pages, menus, tables and dialogs, or pick Auto to follow your system appearance.
Reduce motion
Flow follows your system preference, including the iOS processing spinner and the swipe-back hint. Desktop changes take effect without restarting Flow, but do not stop every animation.
Mac: System Settings → Accessibility → Motion → Reduce motion; if Motion is absent, look under Display.
Windows: Settings → Accessibility → Visual effects → turn Animation effects off.
iOS: Settings → Accessibility → Motion → Reduce Motion.
On desktop, reduced motion stops feature-tip movement and resizing, meeting-processing animation and loading-placeholder pulses; tooltips stop scaling but still fade, tour starbursts appear without drawing, and the dictation-unlock video does not autoplay. Feature-tip fades and Back-button transitions, dictation, command and instruct processing indicators, switches, dropdowns and toasts keep animating, and Try It Yourself stops staged key animations but retains sliding, pointing and fading effects.
Where the iOS first-launch introduction includes a video, Reduce Motion skips it and makes Get Started available immediately. The same happens if the video cannot load.
If Mac shortcuts stop working
Secure Keyboard Entry in another app or a password field can block Fn+Space and Escape-to-cancel while Fn hold-to-talk still works, and Flow does not show a notice naming the blocking app. Password-field blocks can be brief; Secure Keyboard Entry also protects your Mac while locked or asleep.
Warning: Save your work before quitting apps or logging out.
After each step, try Fn+Space outside a password field. Stop when the shortcut responds; otherwise continue.
Click away from any password field.
Quit and restart the app holding Secure Keyboard Entry; if you use 1Password, quit and restart it.
Restart Flow if shortcuts stopped after closing a Flow password-entry window, which can leave the block active until Flow restarts.
Lock and unlock your Mac if the block remains after the other app has quit — quitting that app again cannot release it.
Log out of your Mac and back in if the block persists.
Other accessibility gaps
Collapsed sidebar: labels remain available to screen readers, but the logo and plan badge are hidden. Hover hints are not announced with their controls.
Flow Bar menu: rows cannot be reached or activated by keyboard, and submenus open on hover. Click outside to dismiss; Escape does not dismiss it.
Still need help?
Contact support if a control remains unreachable, a screen reader does not announce a needed action, or Mac shortcuts still fail after the steps above. Include your platform, device, screen reader, affected control and what you tried.