What is EasyView?

EasyView is a privacy-first Chrome extension that improves web accessibility by reducing cognitive load and improving readability. It is built for neurodivergent users (ADHD, Dyslexia, ASD) and anyone seeking a clearer reading experience.

๐Ÿงฉ
Manifest V3

Modern Chrome extension API

โ†’
๐Ÿ“„
Content Scripts

Injected into webpages

โ†’
๐Ÿ’พ
Local Storage

All data stays on device

๐Ÿ”
Privacy by design

All processing happens locally in your browser. AI-powered features use your own API key stored on-device. No user data is collected or sent to EasyView servers.

Installation

Chrome Web Store (Recommended)

  1. 1Open the Chrome Web Store
  2. 2Search for EasyView
  3. 3Click Add to Chrome
  4. 4Confirm the installation when prompted
  5. 5The EasyView icon will appear in your Chrome toolbar

From Source (Developers)

bash
git clone https://github.com/iapoorv01/EasyView
cd EasyView
  1. 1Open Chrome and navigate to chrome://extensions/
  2. 2Enable Developer Mode (top right toggle)
  3. 3Click Load Unpacked and select the cloned folder

Initial Setup

STEP 01
Install the Extension

Install EasyView from the Chrome Web Store. Setup takes under two minutes.

STEP 02
Configure Preferences

On first launch, EasyView prompts you to configure accessibility preferences and optional AI settings. You can skip this and configure later.

STEP 03
Browse with Clarity

Navigate to any webpage and click the EasyView icon to activate features. All settings are applied in real-time via content scripts.

Reading Mode Settings

All Reading Mode settings are stored in chrome.storage.local and applied via content script injection.

PropertyTypeDescription
fontstringFont family โ€” 'OpenDyslexic', 'Arial', 'Verdana', or system default
fontSizenumberFont size multiplier (0.8 โ€“ 2.0)
letterSpacingnumberLetter spacing in px (0 โ€“ 10)
lineHeightnumberLine height multiplier (1.0 โ€“ 3.0)
wordSpacingnumberWord spacing in px (0 โ€“ 20)
bionicReadingbooleanEnable/disable bionic reading mode
colorOverlaystringHex color code for overlay, e.g. '#FFF3B0'
overlayOpacitynumberOverlay opacity (0.0 โ€“ 0.5)

Sensory Shield โ€” Technical Implementation

Sensory Shield injects CSS rules and JavaScript overrides to suppress animations, autoplay media, and flashing elements.

css
/* CSS injected by Sensory Shield */
*, *::before, *::after {
  animation: none !important;
  transition: none !important;
}

JavaScript Overrides

  • Uses MutationObserver to catch dynamically added elements
  • Calls pause() on all HTMLVideoElement and HTMLAudioElement instances
  • Overrides setInterval and requestAnimationFrame to prevent re-enabling

Text-to-Speech API

Text-to-Speech uses the window.speechSynthesis Web Speech API built into modern browsers.

Settings Object

PropertyTypeDescription
voiceSpeechSynthesisVoiceSelected voice from available system voices
ratenumberReading speed (0.5 โ€“ 2.0, default: 1.0)
pitchnumberPitch adjustment (0.5 โ€“ 2.0)
highlightWordsbooleanEnable/disable word-by-word highlighting

Events

  • onword โ€” Fires on each word boundary, used for highlighting
  • onend โ€” Fires when reading finishes
  • onerror โ€” Fires on speech synthesis error

Jargon Decoder

The Jargon Decoder sends selected text to an AI model with a prompt instructing it to produce a plain-English explanation.

AI Providers

Google Gemini
url
https://generativelanguage.googleapis.com/v1beta/
OpenRouter (Gemma 3)
url
https://openrouter.ai/api/v1/chat/completions

Fallback Behaviour

If the primary AI provider fails (network error or quota exceeded), EasyView automatically retries with the secondary provider if configured.

API Key Storage

javascript
// Keys stored with Chrome's local storage API
chrome.storage.local.set({ geminiKey: userKey });
// Never transmitted to EasyView servers

Chrome Permissions

EasyView requests the following permissions. Here's exactly why each is needed:

activeTab

Access to the currently active tab to inject content scripts. Only triggers when you click the extension icon.

storage

Local storage for persisting user settings and API keys on your device.

scripting

Ability to inject content scripts into pages to apply font changes, overlays, and sensory effects.

tts

Optional โ€” used by Text-to-Speech as a fallback on some systems.

EasyView does not request permissions to read browsing history, access cookies, or communicate with external servers beyond user-configured AI API endpoints.

Supported Browsers

Google Chromev100+
โœ“ Fully Supported
Microsoft EdgeChromium-based
โœ“ Compatible
Brave BrowserAny
โœ“ Compatible
Other ChromiumAny
~ Partial
Firefoxโ€”
โœ• Not Supported
Safariโ€”
โœ• Not Supported

Troubleshooting

Jargon Decoder not working

  • Ensure you have entered a valid API key in Settings โ†’ AI Configuration
  • Check that your API key has not exceeded its quota
  • Verify your internet connection is active

Text-to-Speech not speaking

  • Ensure your device volume is not muted
  • Try selecting a different voice in TTS settings
  • Reload the page and try again

Reading Mode not applying

  • Some websites use aggressive CSS that may override EasyView styles
  • Try using the 'Force Apply' option in Reading Mode settings
  • Report the site URL to mradulg306@gmail.com

Open Source & Free

EasyView is 100% open source. Contributions, bug reports, and feature requests are welcome.