Selection Text Reader
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
Selection Text Reader is a browser extension that reads aloud selected text on any webpage using speech synthesis. When you select text with your mouse or keyboard, a small floating "Speak" button appears near the selection. Click the button to have the selected text read aloud with adjustable speech rate and pitch. You can also click the ✕ button to close the Speak button or click elsewhere to hide it. The tool includes a Stop Speaking button to cancel ongoing speech. It is ideal for users with reading difficulties, visual impairments, dyslexia, or anyone who prefers to listen to content rather than read it.
WHERE IT RUNS
Selection Text Reader runs on any webpage, overlaying a floating panel that does not interfere with page content. It operates entirely in your browser as a lightweight userscript, using the Web Speech API for speech synthesis. It works on any page, whether static or dynamic, with no external dependencies. All settings are stored locally using GM_setValue—no data is ever sent to any server.
HOW TO USE
After installation, open the floating panel by clicking the extension icon. The panel shows the current status (Enabled or Disabled) and a toggle button to enable or disable the tool. Adjust the speech rate using the Rate slider (0.1-3.0) and the pitch using the Pitch slider (0.1-2.0). Click the "Stop Speaking" button to cancel any ongoing speech. To use the tool, simply select any text on the page—a blue "Speak" button appears near the selection. Click the button to read the selected text aloud. The button auto-hides after 5 seconds or when you click elsewhere. All settings are saved per website, so your preferences persist across visits.
REAL MECHANISM — WHY THIS WORKS
Most text-to-speech tools require copying text to a separate application or using system-level screen readers. Selection Text Reader uses a DOM-integrated approach that detects text selection in real time. The tool listens for the selectionchange event, which fires whenever the user selects or deselects text. When a selection is made, the tool checks if the selection is valid (not empty, not a password field, and at least 5 characters long). It then positions a floating button near the selection using the getBoundingClientRect() of the selection range. The button uses fixed positioning to stay in view. When clicked, the tool extracts the selected text using window.getSelection().toString() and passes it to the Web Speech API's SpeechSynthesis interface with the user's configured rate and pitch. The tool also handles speech cancellation, error handling, and provides visual feedback during speech. This approach ensures accurate, responsive, and fully private text-to-speech functionality without requiring any external services or network access.
THE PANEL
The floating panel is fully draggable and remembers its position per site, snapping to the edges of the viewport when dragged near them. You can collapse the panel to a small icon to minimize screen distraction and expand it back with a single click. The panel is resizable from the bottom-right corner, giving you more space to view controls. Press the Escape key to close the panel instantly. The panel remains open across page navigation within the same domain, maintaining your current view state. All preferences—panel position, enabled state, speech rate, and pitch—are saved per domain for a seamless experience.
PLEASE NOTE
Selection Text Reader requires the free BotGentz extension to be installed and enabled, as it relies on the cross-extension messaging API provided by BotGentz for DOM access permissions. The tool uses the Web Speech API, which may not be available in all browsers or may require user interaction to activate. The speak button appears only when text is selected and may not appear on pages with complex selections or iframes. The tool does not read text from password fields. The speech synthesis voices available depend on the user's system and browser. All settings are stored locally in your browser using GM_setValue. No selected text, page content, or usage information is ever sent to any server. The extension does not read, store, or transmit any personal information. It only reads selected text and converts it to speech at your request.