The whole web, easier to read.
Aurora Toolkit is a free Chrome extension with six on-page accessibility tools — reading guides, annotations, color themes, comfortable fonts, read-aloud, and comfort settings for video. Always on by default, and always under your control, site by site.
Runs on your device No accounts, no analytics Free, no sign-up
Six tools, one small button, nothing you didn't ask for
Aurora Toolkit is one extension built à la carte. Turn a module on and it loads on the pages you allow; leave it off and its code is never injected at all — not idle, not waiting. Not there.
Always on, until you say otherwise
It runs everywhere by default, so you never have to remember to switch it on. One click excludes
the site you're on — or flip to allow-list mode and it runs only where you invite it. Entries can be
a whole site or one section of it, like docs.google.com/document.
À la carte, so it stays light
The background worker checks your settings against the page's address, then injects only the modules you enabled. Six modules on is a handful of small scripts; zero modules on is zero scripts.
Out of the way, then right there
One 46-pixel button floats over the page. Hover it and only the tools you turned on fan out; click one and its settings open in place. Drag it anywhere, or press Alt+Shift+A to land on it without a mouse.
The toolbar popup
This is the real popup's layout. Flip a module and watch the floating button — and the injection list — change.
Stay on the line you're reading
A bright focus line, and two masks that dim everything except a clear band around it. Turn on Autofollow and the band tracks your mouse; leave it off and drag the grip on the left edge — or nudge it with the arrow keys.
Reading Tools
Masks stay click-through — drag the left-edge grip to move, or turn on Autofollow.
Autofollow on — move your pointer over the page
A window that follows your reading down the page and dims the rest, so long paragraphs stop swimming. You can still click straight through it, and it never moves unless you tell it to.
The overlay is a custom element with its own shadow root, pinned at the very top of the stacking
order so a site's own z-index can't bury it. Every piece is
pointer-events: none except a 15 px grip. Updates are split in two — settings changes
rebuild the geometry, each frame writes only the new y — and the masks register as
"escapable" so a page recolor from the Color Engine can't tint them.
A color engine that reads the site first
Nineteen ready-made themes — Smart Dark, a Dark Reader–powered dark mode, grayscale, and sixteen high-contrast duotones — plus a builder for your own. Flip the sample site to dark mode and watch each theme hold its look instead of inverting into nonsense.
Color Engine
filter: none Sample site scheme: light
Pick the colors that are kindest to your eyes and the whole page changes at once. Because it looks at the site before it starts, amber-on-black stays amber-on-black — even on sites that were already dark. Photos can keep their natural colors, and the toolkit's own menus can match your theme.
A duotone is grayscale(1) contrast(160%) followed by an SVG feColorMatrix
that maps luminance onto a two-color ramp — out = lum·(bg − text) + text — applied to
<html> so the page's fixed elements stay pinned. It's one GPU pass, not a CSS
overlay. Smart mode scans the page's real light and dark elements first: a duotone on an already-dark
site is pre-inverted, and Smart Dark re-inverts the sections that were already dark so they don't
flip to light. A contrast guard reverts low-contrast text-on-color chips to their original colors.
Type you can actually read
Swap the page's reading text for a font that suits you, then open up the space between lines, letters, and words until it stops feeling cramped. Layouts stay intact.
font-family: (page default)
Font Engine
Needs the font installed on your computer — otherwise it falls back gracefully.
Choose a friendlier font and give the text room to breathe. Nothing gets downloaded, nothing phones home, and the site's buttons and icons don't turn into squares.
System-safe stacks only: Manifest V3 forbids remote fonts, so nothing is ever downloaded — starred
entries such as OpenDyslexic and Atkinson Hyperlegible use your installed copy and fall back if it
isn't there. The override ships as a constructable stylesheet (with a <style>
fallback) targeting a conservative list of reading-text selectors, and the same variables restyle
the toolkit's own menus so they match what you chose.
Draw on the web, and come back to it
Pen, highlighter, and a stroke eraser, straight on the page. Ink is vector, so it stays razor sharp at any zoom — and it's saved for that page, so it's still there tomorrow.
Notes & Annotation
On a real page: bare Z undoes while a drawing tool is active, and Esc drops back to Select so the page takes clicks again.
0 strokes
Highlight a clause, circle a form field, scribble a reminder to yourself. Zoom in and your ink is still sharp instead of blurry. Come back to the page later and it's still where you left it — on your computer, never uploaded.
Each stroke is an SVG <path d> in page coordinates (client + scroll), so
ink is anchored to content, scrolls with it, and stays crisp at 500% browser zoom — which is exactly
why it isn't a canvas. The eraser removes whole strokes within about 12 px using a
point-to-segment distance test. Strokes autosave, debounced, into chrome.storage.local
keyed to the page's URL, pruned to the 50 most recent pages.
It reads the page out loud — and the pictures too
Press play and every visible block becomes a reading unit, highlighted as it's spoken. Click any paragraph to start from there. And when the words are baked into an image, on-device text recognition digs them out and reads those too.
Read Aloud
Uses one of your browser's own voices. The extension defaults to an on-device voice so the text never leaves your computer.
Idle
Freeze Frame
Some text isn't text: a scanned page, a slide, a screenshot, a menu drawn as one big image. Freeze Frame snapshots what's on screen, recognises the words, and turns each paragraph into something you can click and hear.
The image below is a picture — there is no selectable text in it at all.
tesseract · eng · bundled · offline
It reads to you and shows you where it is. Click a paragraph to start there instead. If the words are inside a picture, it works them out on your own computer — English recognition is built in and works with no internet at all — and reads those too.
Two tiers. Real text: every visible block becomes a reading unit, spoken through
chrome.tts — owned by the service worker, so the queue survives a slow page and stops
cleanly if you navigate away. Baked-in text: the image goes to a bundled Tesseract WebAssembly
worker running in an MV3 offscreen document, because service workers have no DOM or canvas.
Freeze Frame captures the visible tab, OCRs it, and rebuilds clickable paragraph boxes with
word-level highlight sync. Reading Tools' masks can follow along via an internal position message.
Make any video comfortable to watch
Eight adjustments applied to whatever video the page decides to play — plus Adaptive High Contrast, which measures the picture as it goes and keeps it readable while the scene changes.
Video Tools
Any slider you touch switches the preset to Custom — the same as in the extension, so you never lose your own picture to a named one.
filter: none
No video file is downloaded for this demo — the scene is drawn by the page, so
aurora.tools stays one self-contained file. On a real page these controls apply to real
<video> elements.
Turn down a video that's too bright, lift the shadows in one that's too dark, cut the blue for late nights, or let Adaptive High Contrast keep the picture readable by itself as scenes change. Every video the page plays gets the same treatment, automatically.
One stylesheet rule keyed to a data-vt-video attribute, so a slider drag rewrites a
single rule instead of touching every player on the page — and videos inside open shadow roots get
the sheet adopted into their root, because document CSS can't reach in. Gamma is an
feComponentTransfer; sharpen is a 3×3 feConvolveMatrix. Adaptive High Contrast
samples the presented frame into 32×18 pixels — about eight times a second by default, and you can
tune that from 40 ms to a full second — builds a luminance histogram, stretches the 5th–95th
percentile with a linear transfer, corrects the mid-tone with a gamma transfer, and smooths the
result with a dead zone and a hard rate cap so the picture never breathes or flickers. Manual
sharpen and the mode's edge separation deliberately share one convolution pass, because two of them
on a moving 1080p surface is the most expensive thing the module could do. Known limit: Picture-in-Picture draws frames outside the page, so nothing CSS
does can reach it — fullscreen is fine.
Built to be used by everyone
Accessibility isn't a settings page you visit once — it's the whole point of the thing.
Full keyboard control
Reach the floating button from anywhere with a shortcut, then move between tools with the arrow keys, type a tool's first letter to jump to it, and press Esc to return to exactly where you were reading. Every control is a real, labelled form control.
Private by design
No accounts, no analytics, no servers of ours to send anything to. Your settings and your page notes live in your own browser. The few features that touch the network say so, and each one is avoidable.
Follows you, or doesn't
Settings save through Chrome's own sync, so your setup is waiting on your other computers if you're signed in. Prefer files? Export everything to JSON and import it on the next machine — the setup tour has a step for exactly that.
Two interface themes
Aurora for a calm dark panel, or High-Vis — black, white, and yellow with heavier borders — for maximum separation. Try the switch at the top of this page; it's the same pair the extension ships. Duotone themes can restyle the toolkit's menus to match, too.
Calm by default
Reduced-motion preferences are honoured, nothing strobes, and nothing moves unless you asked it to. Modules ship switched off — you turn on exactly what you want in a short setup tour.
Sits well with screen readers
Every injected surface lives in its own shadow root with proper roles and live regions, so the toolkit's own UI announces itself instead of leaking into the page's reading order.
The fast lane
Four shortcuts are bound out of the box; the per-module toggles are left unbound so they can't collide with anything you already use. All of them are rebindable.
| Action | Shortcut |
|---|
To change these, open Chrome's own shortcut page — paste
chrome://extensions/shortcuts into the address bar (links to chrome:// pages
can't be clicked from a website, by design).
What leaves your browser, and what doesn't
Aurora Toolkit has no accounts, no analytics, and no tracking, and there are no servers on our side — so we never receive, store, or have access to your data. Your settings and your notes stay in your own browser.
- Your settings — modules, colours, fonts, reading and read-aloud preferences, your per-site
list — are saved with Chrome's
storage.sync. If you're signed in to Chrome, Chrome syncs them across your own devices. That's Chrome doing it, not us. - Your page notes are saved with
storage.local, keyed to the page's address, so they reappear when you come back. They never leave the device they were drawn on. - Page content is processed on your device to render the tools. English text recognition is bundled and runs fully offline.
Read the full privacy policy (opens in a new tab)
Three optional features do reach the network — never to us: an online read-aloud voice, if you pick one (your browser sends that text to the voice's provider); a non-English recognition language, downloaded once from a third-party host and then cached; and the Dark Reader theme, which fetches the site's own stylesheets and images from the site's own servers to compute its dark version. Keeping the defaults keeps everything local.
Permissions, and why
<all_urls> + scripting | To show the tools on the pages you allow |
tabs | To read the current address for your site list, and to snapshot the visible tab for Freeze Frame |
tts | To speak page text with your system voices |
offscreen | To run the bundled recognition engine, as Chrome requires |
storage | To save your settings and notes |
It does not touch your browsing history, form data, or passwords.
Before you install
Is it free?
Yes — free, with no account, no trial, and nothing to buy later.
Why does it need access to every site?
Because the tools draw on the page you're reading, and it can't know in advance which page that is. The trade is under your control in both directions: keep the default and one click excludes a site, or flip to allow-list mode so it runs only on the sites you name.
Will it break the sites I use?
The design tries hard not to. Overlays are click-through, font changes target reading text rather than icons, and colour themes run as a single GPU filter instead of rewriting the site's CSS. If a particular site does misbehave, exclude just that site — or just that section of it — and everything else keeps working.
Does it work everywhere in the browser?
No extension can run on Chrome's own pages (chrome:// settings, the Web Store, the new
tab page) — Chrome blocks that for everyone. Built-in PDF and image viewers are also off-limits to
page scripts. Everywhere else, including pages inside iframes, is fair game.
Chrome only?
It's built and tested for Chrome, and it also runs on Chromium browsers that support Manifest V3 and offscreen documents — Edge, Brave, Opera, and friends. Safari and Firefox use different extension systems and aren't supported.
What does "beta" mean here?
That it's real, usable, and still improving on a regular basis — you may meet the occasional rough edge. Bug reports genuinely help: hello@aurora.tools.
Is this the same thing as VDO Magnifier?
They're siblings. VDO Magnifier is a browser-based magnifier for a shared screen or video stream, and it's where a lot of this was worked out first — the colour matrices, the reading guides, the annotation tools. Aurora Toolkit takes those ideas and applies them to the pages you browse.