Inspiration

The web is full of language that is too dense, too jargon heavy, or too poorly structured for the person reading it. That hurts people with dyslexia, ADHD, aphasia, low literacy, and anyone reading in a second language. Most accessibility tools change how a page looks but never read or understand the language on it, and most AI tools that do send your text to the cloud. We wanted to apply computational linguistics directly in the browser to measure and reshape the language of any page, on the user's own device.

The linguistics core

The heart of the project is a small, model free NLP engine that runs on every page with no download. It does:

  • Tokenization and sentence segmentation.
  • Syllable counting and Flesch Kincaid grade and reading ease scoring, shown live for the article.
  • Rule based part of speech tagging (function words, suffix rules, capitalization), with color coding for nouns, verbs, adjectives, adverbs, proper nouns and numbers.
  • Passive voice detection using auxiliary plus participle patterns.
  • A named entity heuristic for people, places and organizations.
  • Frequency based rare word and jargon detection against a common word list.
  • Extractive key sentence scoring using term frequency, so the most informative sentences are surfaced.

All of these layers share one reversible annotation pass over the page so they compose without fighting each other, and every change can be undone.

Meaning preserving simplification

When a reader asks to simplify the text, we rewrite it with on device Gemini Nano, then run a verification step before showing the result. The verifier checks that numbers, named entities and overall length survived the rewrite, and flags any sentence where meaning may have drifted. This is the main risk with AI simplification for accessibility, and treating it as a measurable gate, not an afterthought, is the contribution we are most proud of. We also report the readability change, for example a drop from grade 14 to grade 6, so the effect on the reader is concrete.

The full accessibility suite

The linguistics work sits inside a wider Manifest V3 extension with more than 50 reversible adaptations across 10 categories: vision (contrast, dark mode, zoom, loupe, AI alt text), motor (larger targets, keyboard activation, dwell click, voice control), cognitive (declutter, reading mode, focus paragraph, key sentences), dyslexia (readable fonts, bionic reading, ruler, overlays), language insights, translation and hover to translate, seizure safety (flash detection that freezes dangerous video), hearing (mute autoplay, audio to visual alerts, live captions), color vision (daltonization), and calm and light controls. Everything is tunable, can be set per site, and saved as named profiles.

How we built it

A central engine runs in a content script at document start. It hides the page briefly, applies a fast structural and visual pass, reveals the page, then watches a debounced MutationObserver so it keeps working on dynamic sites. Each feature is a small module with apply, revert and onMutation functions that registers itself. Heavy AI runs behind a service worker proxy. On device Gemini Nano is the default, and it only escalates to the Gemini cloud API for complex requests using keys the user pastes in locally, which are never stored in the repository and rotate across several on a rate limit.

Challenges we ran into

Our first design assumed things that do not work in Manifest V3 on third party pages, such as intercepting the raw network stream, sharing memory with worker pools, page wide WebGPU shaders, and WebNN. We reworked it honestly with a MutationObserver and a cloak and reveal step, an offscreen document and worker model, SVG color matrices for color vision, and built in AI with a cloud fallback. We also split the timing budget so the structural pass is instant and language processing is applied progressively and never blocks the first paint.

What we learned

A lightweight, rule based NLP layer can give people genuinely useful feedback about the language they are reading, with zero download and full privacy. We also learned that for accessibility, trust matters as much as capability, so reversibility and meaning checking are core features.

What's next

We want to make the linguistics measurable for a short paper: swap in a Transformers.js model for neural POS tagging and a real entailment based meaning verifier, then report Flesch Kincaid reduction and meaning preservation pass rates against a benchmark set of pages. We also plan Whisper web captions for media audio.

Built With

  • chrome-extensions-(manifest-v3)
  • css
  • flesch-kincaid-readability
  • gemini-nano
  • google-gemini-api
  • html
  • intersectionobserver
  • javascript
  • language-detector)
  • mutationobserver
  • node.js
  • node.js-(custom-zlib-png-icon-generator)
  • offscreen-api
  • rule-based-pos-tagging
  • service-workers
  • summarizer
  • svg-fecolormatrix
  • translator
  • web-speech-api-(speechsynthesis-and-speechrecognition)
Share this project:

Updates