Make room for easier reading.
Scale text, adjust spacing, switch fonts, or magnify a word. A little more breathing room, wherever it helps.
The LatchKey Widget
A more comfortable web starts with choice. Give visitors the tools to read, navigate, and focus in the way that works for them.
7 days free · No card required
Find your own
kind of calm.
Stories, ideas, and small moments worth slowing down for.
Explore the possibilitiesA working preview. Your changes stay right here.
Made for the person on the other side
Small adjustments can make a big difference. Let each visitor shape their experience, with controls that only change the page when they choose.
Scale text, adjust spacing, switch fonts, or magnify a word. A little more breathing room, wherever it helps.
15 content controlsChoose a contrast mode, reduce saturation, or change text and background colours to suit the moment.
11 colour controlsFollow a reading guide, pause animation, highlight focus, or use a larger cursor to find your way.
18 orientation controlsA helpful starting point
Start with a group of adjustments, then fine-tune each one. A profile is a preset; the visitor stays in control.
Open a profile to see what it changesStops animation and takes the saturation out of the whole page, so strong colour stops carrying risk.
Larger text, stronger contrast, looser line height and letter spacing, and a focus ring you can see.
A reading band that follows the pointer, no animation, and links marked so they stop hiding in prose.
A plainer typeface, marked headings and links, a jump list of useful links, and the consistent-help card.
Quick-nav keys for headings, forms and buttons, a visible focus ring, and tab-order repair from the manifest.
Changes page operation as well as appearance.Applies the deterministic and inferred name, role and alt fixes, and announces route changes in a single-page app.
Changes page operation as well as appearance.Bigger text, looser line spacing, a larger pointer, and links given weight rather than colour alone.
A larger pointer, highlighted keyboard focus, paused animations and quick navigation between page elements.
Changes page operation as well as appearance.A navigable page structure and clear focus. Spoken reading can be started separately using a local device voice.
Changes page operation as well as appearance.Stronger contrast and visible outlines for links and keyboard focus.
A readable typeface with increased line height and letter spacing.
A familiar welcome
The interface speaks 33 languages and can match the visitor’s browser. Your website’s content stays in its original language.
Open the panel with Alt + 1. Shortcuts yield inside form fields, so visitors can keep typing uninterrupted.
Visitor choices stay in localStorage in their browser. The widget sets no cookies.
Visitors can hide the widget for 24 hours, or on your site until they choose to restore it.
Link your own accessibility statement or use the one generated for your licence within 48 hours.
Two parts. One widget.
Visitors choose their adjustments. Behind the scenes, the engine audits your pages and applies verified runtime fixes, with a record your team can inspect.
<html><html lang="en">When the page language is known from its metadata.
Find pages and group shared templates, within your plan’s page cap.
Check rendered pages with axe-core and our additional rule pack.
Label candidate fixes and flag questions that need a person.
Recheck in a fresh browser. Drop fixes that increase violations.
Deliver a signed manifest and code patches your team can review.
Keep checking as your site changes. Full rescans run every 24 hours. A changed page structure can trigger a re-audit within the hour.
No mystery fixes
Every fix carries the same label in your report, runtime manifest, and code patch. You can see what changed and what still needs a decision.
A fix follows from known information, such as a missing language attribute or a name copied from an existing visible label.
A model suggests a fix, such as image alt text. The reasoning is attached, and the change is reversible.
When the evidence is insufficient, nothing is applied. The item stays visible with the question a person needs to answer.
Your existing accessibility work comes first. The engine skips attributes you already set. Fixes that increase automated violations are dropped, and declined items stay declined until a person resolves them.
The whole picture
See what was addressed, what was partly addressed, and what was left untouched. Your coverage table is built from your own scans and dated with the last verification.
Automated coverage ≈ 1/3 of WCAG
Understand the limits| WCAG 2.2 criterion | Status | How it was handled |
|---|---|---|
| 1.1.1 Non-text content | Addressed | Deterministic and inferred |
| 4.1.2 Name, role, value | Addressed | Deterministic |
| 2.4.4 Link purpose | Partly addressed | Inferred, 3 declined |
| 1.4.3 Contrast (minimum) | Partly addressed | Theme adjustments only |
| 2.4.6 Headings and labels | Not addressed | Declined: wording is a judgement |
| 1.2.2 Captions (prerecorded) | Not addressed | Outside what we do |
Runtime fixes help in the browser. Lasting fixes belong in your code. Every runtime fix is also available as a patch your developers can merge. The widget does not certify legal compliance.
A small addition to your stack
One snippet connects the widget to your site. Use a platform integration or add it directly to your code.
Register your hostname and get a site key from your portal.
Paste your snippet before the closing body tag or follow a platform guide.
Choose the controls you offer, link your statement, and review the first findings.
Example snippet · replace the site key
<!-- latchkey via manual -->
<script src="https://thelatchkey.in/w/v1/widget.js" data-lk-key="lk_site_XXXXXXXX" async></script>Use the site-specific snippet from your portal when you go live.
Find your installation guideOne licence covers one site, including its www and apex hostnames. Staging and preview hostnames can be added at no extra cost. A subdomain that is a separate site needs its own licence. The public site key only works on registered hostnames.
We do not put an integrity hash on this URL because we ship security fixes to it. If you need subresource integrity, use a pinned, immutable version URL with its published hash. Update that hash when you upgrade.
Considered from the start
Enforced at build time. The panel and remediation module load only when needed.
Preferences stay in the browser. Usage measurement uses a cookie-free beacon.
Stand the widget down per site without waiting to remove your snippet.
Start small. Grow from there.
Choose a plan for the traffic you have. Start with a 7-day trial, with no card required.
Up to 5,000 visits a month
or $410 a year · save 30%
One site, the whole widget, and the coverage table that says what it did not do.
Start free trialUp to 30,000 visits a month
or $1,250 a year · save 30%
For a team with more than one site and someone who owns the numbers.
Start free trialUp to 100,000 visits a month
or $3,350 a year · save 30%
Adds the part automation cannot do: a person testing your core journeys.
Start free trialAbove 100,000 visits a month
Let’s find the right fit for your team.
Single sign-on, our API, and inference you can run yourself.
Talk to usVisits are counted by the widget’s beacon. Dodo Payments is the merchant of record.
Compare all plan featuresA little more detail
Still have something on your mind?
Talk to our teamOpen the web to more people
Explore the interface, review the fixes, and see the coverage for your own site.
7 days to explore · No card required