A simple WordPress plugin that adds screen reader functionality to your website. It uses the browser’s built-in API for text-to-speech (speechSynthesis) and supports Chrome, Firefox, Safari, and Edge browsers.
- Read text on mouse hover ("Read on hover" mode)
- Playback controls: all buttons (Enable/Disable hover reading, Read entire page, Pause, Stop) are always visible in a single row
- Read the entire page (temporarily disables hover reading, then restores it)
- Pause and resume reading from the same place
- Stops reading when switching to a new element or pressing Stop
- Automatically stops playback on page reload
- Russian language support
- Excludes unnecessary elements (navigation, menus, footers)
npm install
npm run dev # Launches webpack-dev-server on port 9000
npm run build
After running the script, a screen-reader-wp.zip archive will be created in root plugin directory, which you can install on your WordPress site.
- Build the project:
npm run dev
- Open
http://localhost:9000
in your browser - All control buttons are visible at the top of the page
- "🔊 Enable reading" — toggles hover reading mode
- "
▶️ Read entire page" — reads all text, temporarily disabling hover mode - "⏸ Pause" — pauses reading, pressing "Read entire page" again resumes from the same place
- "⏹ Stop" — completely stops reading
- Playback always stops on page reload
src/screen-reader.js
— Main plugin logicsrc/screen-reader.css
— Plugin stylessrc/screen-reader.php
— WordPress PHP integrationtest_page/index.html
— Test pagewebpack.config.js
— Build configuration