Skip to content

Mvnshi/WebAble-Plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

WebAble

Free, open-source accessibility for the whole web.

Adapt any website to you β€” reading, vision, motor, and cognitive tools that follow the user, not the site. Add it to your website with one line, or install the browser extension and carry your settings everywhere.

License: MIT Dependencies: none Widget size PRs welcome

🌐 webable.cc Β· πŸ“– Embed guide Β· πŸ’¬ Discussions Β· πŸ’› Sponsor


WebAble is two things that share one engine:

  • a website widget a company drops in with a single <script> tag, so every visitor gets the toolkit β€” no install required;
  • a browser extension a person installs once, so their accessibility settings travel with them across every site.

Classic accessibility overlays (UserWay, accessiBe, AudioEye) are sold to website owners, run mechanical CSS rules, and were legally challenged for claiming AI compliance. In January 2026 the FTC fined accessiBe $1,000,000.

WebAble is different by construction. It's user-side: it adapts the page for the person who opens it. It does not claim to "fix" your site, fake a WCAG badge, cloak content for crawlers, or poison the accessibility tree. The native a11y stack (NVDA, VoiceOver, Voice Control, ZoomText) keeps working. Always.


Two ways to use WebAble

🌐 On your website β€” one line

<script src="https://cdn.jsdelivr.net/gh/Mvnshi/WebAble-Plugin@main/dist/webable.js"
        data-webable defer></script>

A round accessibility button appears in the corner. Visitors open it (or press Ctrl+U), pick the tools they need, and their choices are remembered next time. The stylesheet is bundled into that one file β€” there is nothing else to add, no build step, no dependencies, no account.

Brand it, position it, restrict the toolset, white-label it, wire it to your own menu β€” see EMBED.md for the full config and framework recipes (React/Next, Vue, WordPress, Shopify, GTM, …).

<!-- e.g. branded + docked as a right sidebar -->
<script src="https://cdn.jsdelivr.net/gh/Mvnshi/WebAble-Plugin@main/dist/webable.js"
        data-webable data-webable-color="#7c3aed" data-webable-layout="sidebar-right" defer></script>

Try it now, locally:

npm run serve      # β†’ http://localhost:8000/examples/embed-demo.html

🧩 In your browser β€” the extension

  1. Open chrome://extensions
  2. Toggle Developer mode (top right)
  3. Load unpacked β†’ select this folder
  4. Pin WebAble and click it (or press Ctrl+Shift+U)

Your settings persist per-site and follow you across the web.


What's inside

21 tools (all working β€” no stubs)

Category Tools
Vision Reading Mode Β· High Contrast (5 modes) Β· Color Filter (deuter / protan / tritan / achroma Β· simulate or correct) Β· Text Size Β· Force Pinch Zoom Β· Big Cursor (1–4Γ—) Β· Reading Ruler Β· Visible Focus Ring
Reading Dyslexia Font (OpenDyslexic / Lexend / Atkinson Hyperlegible) Β· Letter & Word Spacing Β· Read Aloud (Web Speech API) Β· Hide Images
Motor Click Target Enlarger Β· Tooltip Pin Β· Sticky Element Killer Β· Auto-Scroll
Cognitive Hide Distractions Β· Stop Animations Β· Focus Mode
Privacy Cookie Banner Killer Β· Modal / Popup Killer

7 profiles (one-click bundles)

Low Vision Β· Dyslexia Β· ADHD Focus Β· Motor Impaired Β· Seizure Safe Β· Senior Friendly Β· Privacy First.

Site Analyzer (extension)

A standalone tab that runs 15 WCAG 2.2 heuristic checks (alt text, form labels, vague links, heading order, lang, viewport zoom, ARIA roles, duplicate IDs, focus suppression, and more), scores the page 0–100, and for each finding gives the WCAG SC, who it hurts, a plain-language fix, and a Highlight on page button. Export as Markdown or PDF. Honest by design: it says out loud that automated tools catch only 30–40% of issues β€” the rest needs manual testing with real assistive tech.

AI features (extension, bring-your-own-key)

Add a Gemini key in Settings (it stays in chrome.storage.local and only ever talks to Google): Plain-Language Summary, Smart Page Q&A, Context-Aware Alt Text (image + surrounding paragraph + page title β€” the thing pixel-only auto-alt can't do), and OCR. The widget ships accessibility-first; AI for embedded sites is an opt-in proxy on the roadmap (see EMBED.md).


Honest take on SEO, GEO & reach

You'll see overlay vendors promise that a widget will boost your search rankings. We won't, because it isn't true, and that kind of claim is exactly what got the category fined. Here's what's actually real:

  • It won't hurt your Core Web Vitals. The widget is tiny, defer-loaded, and causes no layout shift β€” so it doesn't drag down the performance signals that do affect SEO.
  • No cloaking, no spam markup. Nothing is shown to crawlers that isn't shown to people, so there's nothing to penalize.
  • It signals genuine accessibility investment and widens your real audience β€” ~1 in 6 people live with a disability. Reach and conversions come from actually serving them, not from a badge.

Real ranking and generative-engine (GEO) gains come from accessible, well-structured content. WebAble encourages that; it never fakes it.


How it's built

core/webable-engine.js      Shared engine β€” 21 tools + 7 profiles. Pure DOM/CSS, zero deps.
                            Source of truth for behaviour; powers BOTH products.
embed/webable.embed.js      Website-widget runtime (launcher, panel, config, localStorage).
embed/webable.embed.css     Embed-only styles on top of the shared design system.
content.css                 Design system + every page-mod overlay. Shared.
dist/webable.js             Built one-file widget (engine + runtime + inlined CSS). ~35 KB gz.
scripts/                    Zero-dep build, headless smoke test, static dev server.
examples/embed-demo.html    A real page with the widget embedded β€” the live try-it.

content.js Β· popup.* Β· options.* Β· analyzer.* Β· background.js Β· manifest.json
                            The Chrome (MV3) browser extension.
backend/                    Optional Node/Stripe AI proxy for the extension's Pro mode.
BUILD.md                    React + TypeScript + Vite migration plan.
npm run build      # build dist/  (run after editing core/ or embed/)
npm run smoke      # headless engine test β€” verifies the engine ↔ CSS contract
npm run check      # syntax-check engine, runtime, and bundle
npm run serve      # serve the demo

The engine is intentionally framework-free and never builds UI, so both the extension and the widget drive the same tested logic. New to the code? Adding a tool is ~15 lines β€” see CONTRIBUTING.md.


Privacy & security

  • Zero telemetry. The accessibility tools make zero network calls. Audit it: grep -rin "fetch\|XMLHttpRequest" core embed.
  • Your settings stay on your device β€” localStorage for the widget, chrome.storage.local for the extension. Shared with no one.
  • One optional request: dyslexia/reading fonts (Lexend, Atkinson, OpenDyslexic) lazy-load from a CDN only when a font tool is turned on.
  • BYOK AI. Gemini keys live locally and go straight to Google. We never proxy, log, or train on a token.
  • Doesn't poison assistive tech. WebAble never sets aria-hidden on focusable nodes, overrides role, or steals focus.

Keyboard shortcuts

  • Ctrl+U β€” toggle the panel
  • Ctrl+Shift+U β€” global toggle (extension)
  • Ctrl+Shift+R β€” read selection / page aloud (extension)
  • Ctrl+Shift+P β€” pin the hovered tooltip
  • Esc β€” close the panel

Roadmap

  • AI for the widget via a self-hosted proxy (data-webable-ai-endpoint) so embedded sites get summaries/alt-text with the key server-side.
  • Internationalization β€” a strings map + data-webable-locale.
  • Self-hosted fonts option (data-webable-fonts="off") for zero third-party requests.
  • More tools β€” line-focus mask, link underliner, mute-all-media.
  • React + TypeScript + Vite migration of the extension (see BUILD.md).

Have an idea or a need we're missing? Open an issue.


Contributing

WebAble gets better every time someone who relies on a tool tells us what's wrong with it. Bug reports, new tools, translations, docs, screen-reader testing β€” all welcome, and you don't need to be a "real programmer" to help. Start with CONTRIBUTING.md and the good first issues.

We hold ourselves to a high bar of respect for disabled users and the people who support them β€” see the Code of Conduct.

Support the project

WebAble is free and will stay free. If it helps you or your users, starring the repo and sponsoring directly fund ongoing maintenance, testing with real assistive technology, and keeping the widget fast and dependency-free.

License

MIT Β© WebAble contributors. Use it, embed it, fork it, ship it.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors