Visua11y is a Chrome extension that leverages AI to make the web more accessible for people with disabilities. Currently in Phase 1 development, it provides smart text summarization to help users quickly understand long or complex content.
β What's Working Now:
- Smart Text Summarization: Right-click selected text β "Summarize with Visua11y"
- AI Backends: Tries Chromeβs builtβin AI first; falls back to OpenAI if a key is configured
- Graceful UI: Summary boxes appear near selected text with accessible styling
π― Who This Helps Right Now:
- People with dyslexia or reading difficulties
- People with ADHD who have trouble focusing on long text
- People learning English as a second language
- Anyone who wants to quickly understand long articles
π Recent Improvements:
- Removed file-based secrets: No packaged
config.json; keys live only in extension storage - Safer permissions: Dropped
debuggerpermission; TLDR useschrome.scripting - Lean manifest: Only
https://api.openai.com/*host permission
- Clone or download this repository
- Open Chrome and go to
chrome://extensions/ - Enable "Developer mode" (toggle in top right)
- Click "Load unpacked" and select the project folder
- The Visua11y icon should appear in your Chrome toolbar
- If Chrome Builtβin AI summarizer is available, it works out of the box.
- For consistent results and for TLDR/Layout Analysis, add an OpenAI API key in the popup.
See
SETUP.md.
- Visit any webpage with text
- Select/highlight the text you want summarized
- Right-click and choose "Summarize with Visua11y"
- A summary box will appear near your selected text
- Click "Close" to dismiss the summary
visua11y/
βββ manifest.json # Extension configuration & permissions
βββ background/ # Background processing (the "brain")
β βββ service-worker.js # Main controller & context menu handler
β βββ ai-manager.js # AI service coordination (Chrome AI + OpenAI API)
βββ content/ # Web page interaction
β βββ content-script.js # Displays summaries on web pages
βββ popup/ # Extension status interface
β βββ popup.html # Simple status window layout
β βββ popup.js # Status display logic
βββ assets/ # Visual assets & styling
βββ icons/ # Extension icons (16px, 48px, 128px)
β βββ icon16.png
β βββ icon48.png
β βββ icon128.png
βββ styles/ # CSS styling
βββ popup.css # Settings window styling
βββ summary-box.css # Summary display styling
- User selects text β
service-worker.jsdetects right-click menu selection - Menu clicked β Service worker calls
ai-manager.jsto process text - AI processing β Tries Chrome AI β OpenAI API β Basic fallback (in that order)
- Summary created β Service worker sends result to
content-script.js - Display β Content script shows styled summary box on the webpage
- Primary: Chrome Builtβin Summarizer API (when available)
- Secondary: OpenAI API (
gpt-4o-mini) using your key Note: If neither backend is available, the extension shows a friendly error instead of a heuristic summary.
Goal: Enhance text readability and comprehension
Features to implement:
-
Text Simplification (Using Rewriter API)
- Rewrite complex sentences in simpler language
- Adjust reading level (elementary, middle school, etc.)
- Replace jargon with common terms
-
Content Enhancement (Using Writer API)
- Add context explanations for technical terms
- Generate definitions for complex words
- Create bullet-point versions of paragraphs
Target Users: People with dyslexia, learning disabilities, non-native speakers
Goal: Help users with visual impairments and navigation difficulties
Features to implement:
-
Smart Image Descriptions (Using Prompt API)
- Generate alt-text for images missing descriptions
- Describe charts, graphs, and infographics
- Context-aware descriptions based on surrounding content
-
Page Structure Analysis
- Auto-generate page outlines and navigation
- Identify and label page sections
- Create skip links for better navigation
Target Users: People with visual impairments, screen reader users
Goal: Break down language barriers and improve communication
Features to implement:
-
Real-time Translation (Using Translator API)
- Translate selected text or entire pages
- Support for multiple languages
- Preserve formatting and context
-
Language Detection & Assistance (Using Language Detector API)
- Auto-detect page language
- Offer translation when needed
- Pronunciation guides for difficult words
Target Users: Non-native speakers, people with hearing impairments who rely on text
Goal: Create personalized accessibility profiles
Features to implement:
-
User Profiles & Preferences
- Save user accessibility needs
- Customize AI model responses
- Remember preferred reading levels and formats
-
Smart Adaptation
- Learn from user interactions
- Automatically apply preferred settings to new sites
- Suggest helpful features based on content type
Target Users: All users with varying accessibility needs
Goal: Advanced AI-powered accessibility features
Features to implement:
-
Form Assistance
- Auto-fill forms intelligently
- Explain form requirements in simple language
- Validate and suggest corrections
-
Content Organization
- Create custom reading lists
- Organize content by difficulty level
- Generate study guides from web content
Target Users: People with motor disabilities, cognitive impairments
- Summarizer API: For content summarization β (Currently implemented)
- Other APIs (Rewriter, Writer, Translator, Language Detector, Prompt) are planned and not yet implemented.
βββ manifest.json (Extension configuration)
βββ background/
β βββ service-worker.js (Background tasks) β
β βββ ai-manager.js (AI API handling) β
βββ content/
β βββ content-script.js (Web page interaction) β
βββ popup/
β βββ popup.html (Extension popup) β
β βββ popup.js (Popup logic) β
βββ assets/
βββ icons/ (Extension icons) β
βββ styles/ (CSS files) β
- WCAG 2.1 AA compliance
- Screen reader compatibility
- Keyboard navigation support
- High contrast mode support
activeTab,scripting,contextMenus,tabs,storageβ required for contextβmenu actions, injecting the content script, saving keys, and operating on the current tab.- Host permissions:
https://api.openai.com/*andhttps://generativelanguage.googleapis.com/*only.
- Chrome browser with developer mode enabled
- Basic understanding of Chrome extension development
See CLAUDE.md for detailed development commands and architecture guidance.
See PRODUCTION.md for the complete production readiness checklist.
β
Week 1-2: Phase 1 - Basic extension setup and summarization (COMPLETE)
π
Week 3-4: Phase 2 - Add text rewriting and simplification features
π
Week 5-6: Phase 3 - Implement visual assistance features
π
Week 7-8: Phase 4 - Add translation and language support
π
Week 9-10: Phase 5 - Build personalization features
π
Week 11-12: Phase 6 - Advanced features and polish
Each phase builds upon the previous one, allowing for incremental testing and user feedback.
- Lower barriers to adoption: Anyone can use accessibility tools immediately
- Privacy-focused: Chrome built-in AI keeps data local
- Cost-effective: Free AI services make accessibility tools available to everyone
- Reliable: Multiple fallbacks ensure the extension always works
Priority order for AI services:
1) Chrome Builtβin AI (if available)
2) OpenAI API (requires key)
3) Gemini API (optional; key supported in popup)
- No key needed when Chrome AI is available
- Lowβfriction setup via popup for OpenAI/Gemini
- Reduced permissions and no packaged secrets
README.md- This file: Project overview, installation, and usageSETUP.md- Detailed API key configuration guideCLAUDE.md- Developer guidance for Claude Code instancesPRODUCTION.md- Production readiness checklist (65 items)