AI-Powered Accessibility
Profile-aware. Confidence-gated. Multi-language. Ephemeral by construction. The accessibility chat that adapts to who you are without ever knowing who you are.
Profile-aware AI chat
Visitors describe their accessibility challenges in plain language. The classifier maps the request to typed actions and the LLM's response style adapts to the visitor's selected disability profile — short sentences for dyslexia, literal and bulleted for autism, sixth-grade reading level for cognitive disability, screen-reader-friendly headings for low vision.
"I can't read the small text" → increase font + suggest Lexendprofile: dyslexia, "this is hard to read" → Lexend, never OpenDyslexic (research-backed default)profile: autism, "what does this do?" → literal, bulleted answer with no idiomsprofile: cognitive, "I'm confused" → asks one clarifying question instead of guessingConfidence-gated clarification
When the LLM is below 85% confident which action the visitor wants, it asks a short follow-up question with 2–4 chip-button options instead of guessing. Each chip is a 36px+ touch target — accessible to switch users and visitors with motor disabilities. Users can also type a free-form response.
"This site is hard to use" → chips: [ Text too small ] [ Colors hard to see ] [ Lots of motion ]Tap a chip → next turn submits the label automaticallyConversation history (last 6 turns) carries the question forward so the model has contextImplements multi-stage clarification (arXiv 2110.15235) — ~15% accuracy lift over guess-and-applyMulti-language replies
The assistant writes its messages in the visitor's preferred language — page-translation locale if active, navigator.language otherwise. Intent and action codes stay English so the engine can apply them, but the human-readable text reaches the visitor in Hindi, Tamil, Marathi, Telugu, Spanish, or whatever they're reading the page in.
Page set to हिन्दी → reply text in HindiPage set to தமிழ் → reply text in TamilDefault English locale → reply in English (no overhead)India launch ready: locale-aware voice input picks navigator.language, not hardcoded en-USVoice input — locale-aware
Hands-free chat via the Web Speech API. The recognition language follows the visitor's OS locale, so Hindi/Tamil/Marathi/Telugu speakers aren't silently forced into English ASR. Audio waveform never leaves the device — only the text transcript is transmitted, and only if the visitor sends it.
"increase text size" / "बड़ा अक्षर""translate to Hindi""reduce motion"No biometric voice ID, no speaker recognition, no waveform on the network20-language translation
AI-powered page translation with Redis caching that reduces LLM cost ~40-60% across the customer base. Available in chat ("translate to Hindi") and as a standalone language picker — add the encludo-language-selector class to any element on your page and it becomes a translation trigger.
Real-time on-page translation30-day Redis cache; per-visitor preference stored in localStorageRTL languages supportedStandalone picker via .encludo-language-selector classPer-turn Undo
Every assistant turn that changed a setting captures a snapshot of the engine state before applying. A visible Undo button on the message reverts to that checkpoint. Snapshots live only in the chat's in-memory state — never persisted, never sent server-side, gone the moment the tab closes.
Click Undo on any past turn → engine reverts to that pointUseful when the AI guessed wrong (rare, but free safety net)No "undo stack" complexity — checkpoint semantics, easy to reason aboutText simplification
AI rewrites complex content to sixth-grade reading level — essential for cognitive disabilities and non-native readers. Paragraphs preserve meaning; jargon is unwound; sentences shortened. Same PII scrub runs on the input.
"Utilization of this functionality requires authentication" →"You need to log in to use this feature."Privacy is the architecture, not the policy
Most AI tools treat privacy as a paragraph in the terms of service. Encludo treats it as the way the code is shaped — under both GDPR Article 9 and India's DPDP Act 2023, disability information is sensitive personal data and gets the strictest treatment.
Disability profile never tied to identity
We treat the profile selection as GDPR Art. 9 health data and DPDP-sensitive personal data. It lives only in the visitor's browser localStorage, is never stored on our servers, and is never present in any analytics event tied to a session, fingerprint, or visitor.
Chat is ephemeral by construction
Messages and conversation history live in sessionStorage only — they die the moment the tab closes. Nothing about the conversation is written to a database, log, or analytics event. A "Reset & forget me" button wipes every Encludo storage key on demand.
Daily-rotating LLM identifiers
The abuse-tracking field we send to LLM providers (Anthropic metadata.user_id, OpenAI user) is a daily-rotating anonymous hash derived from the website ID — never stable across days, never linked to any visitor.
PII scrubbing pre-LLM
Email addresses, phone numbers, long digit sequences, and Indian PAN numbers are regex-masked from any text we forward. Defence in depth on top of the provider's zero-data-retention contract — consent for analytics is not consent to send arbitrary PII to a third party.
AI features included in every plan
Free tier: 30 AI chats/month per domain. Pro: 100 turns/hour per visitor. Bring your own OpenAI key on either tier to lift all AI rate limits at no extra cost.