Hello,
I asked the editorial team before posting this, and Michael kindly pointed me here.
I make Legato, a browser for macOS. It repairs a page's accessibility before VoiceOver reads it: unlabelled buttons get names, headings become real headings, focus order stops jumping, dialogs stop trapping you. It does not replace VoiceOver — it works with it, and you can keep your own screen reader and your own voice.
I am not here to announce it. I am here because I do not trust my own testing.
Almost all of it has been done by sighted people, including me, with VoiceOver switched on — and that is not the same thing as using it. I know we are missing the failures that only show up when the screen reader is the only way you have of knowing what happened. I would rather hear those from you than find out from a review.
What is free, forever, with no account and no key: everything the browser does on your own machine — button names, real headings, focus order, escapes from dialogs, plus a built-in voice if you would rather not use the system one. The interface speaks 24 languages, and the bundled voices cover 21 languages in 27 voices, so it is not an English-only tool.
What is paid: only the AI, and only for pages the rules could not fix by themselves — reading a page out in plain words, telling you what a form wants before you start filling it, describing images. Everything is switched on for 30 days from first launch, no card and no account, and it ends by itself.
One thing worth knowing: answers are shared. When the AI describes an image, that answer is kept and handed to the next person free, with nothing stored about who asked.
Requirements: macOS, Apple Silicon and Intel. Signed and notarised, so no unidentified-developer dance. There is no iPhone version yet, and I would rather say that plainly than let the wording imply one.
Download and the full list of what it does: https://qiksy.app/legato/
A five-minute captioned video, if that is easier than reading: https://youtu.be/3iEj8dHdjCs
About that page: I built it to be read, not looked at. The demos are audio, the controls are keyboard-reachable end to end, and it passes an automated audit clean. But an automated audit is a low bar and I know it. If the page does not read the way I think it does, that is my first bug and I want it.
For anyone who does test it — I will give the paid tier free for life to anyone who sends a real bug. No review expected, nothing to publish, not a word in public. Just the report.
I would rather hear what is broken than what is good.
Dmytro Liesniak
Comments
will this come to iOS
I want to get a mac. Unfortunately that is several month down the line. Will this come to iOS?
iOS no, Windows yes today — with one caveat
Dennis, thank you — three honest answers.
iOS: no, and not because we ran out of time. Apple does not allow a third-party browser engine, so anything called a browser in the App Store is a shell around WebKit. Repairing a page before your screen reader reads it needs the layer Apple keeps closed. An iOS version would be a weaker thing wearing the same name, and you would find that out on the first badly built page. If the rules change, I will build it — until then I would rather say plainly that it is not coming than let you wait for it.
Windows: yes, today. There is a build, and it works with NVDA and JAWS as well as with its own voice. One caveat I would rather you heard from me than discovered: the installer is not signed yet. Windows will show a blue window headed "Windows protected your PC", and the only button you will find at first says "Don't run". Press "More info" and a second button appears, "Run anyway" — that is the one. Where it names the publisher it will say "Unknown publisher". Our certificate is bought and going through the authority's identity checks; until it is issued there is nothing to sign the file with. Because the name cannot vouch for the file, the download page publishes the checksum of the exact file we released, so you can verify the file itself instead of trusting a label.
Mac: no rush. That build is signed and notarised, and it is not going anywhere. Everything the browser does without the AI is free forever, whenever you get there.
If you do try the Windows one, the report I would most like is the boring one: what it said, what you expected it to say, and where you got stuck.
Lost me on the AI
Was feeling quite curious about this as I've been thinking about contributing to WebKit myself, but I don't like the security implications, the lack of sustainability, and the possibility of hallucinating, all resulting from your use of AI. Leave AI out of screen-reading, or at least only use it to augment rather than replace screen-readers. The right way to do this is to fix WebKit, not to make an AI model interpret and regurgitate web pages.
Already optional — and you are right about WebKit
João, this is the comment I most wanted, so thank you for writing it rather than closing the tab.
On augmenting rather than replacing: that is what it does. Legato does not replace VoiceOver and cannot — you keep your screen reader, your voice and your settings, and it reads the page after the repairs rather than instead of them.
On leaving AI out of screen-reading: mostly it is out. The repairs that fix the majority of pages are rules, not a model — a button gets its name from the markup around it, a heading that was styled text becomes a real heading, focus order stops jumping, a dialog stops trapping you. That part runs on your machine, needs no account and no key, and is free forever. No model is involved and none is asked.
The AI is a separate, paid thing that never runs by itself. It is called when you ask, on the page you are on, for the pages the rules could not fix: describe this image, tell me what this form wants, say this in plain words.
And it is optional at a finer grain than "on or off". There are three separate switches in Settings, one per skill, and under each one the interface states exactly what leaves your machine — the picture itself for describing images, the shape of the form and never your answers for the form summary. Each asks once, the first time you use it. Say no and it says "Not sent", and it does not ask again. Never touch them and no model is ever called; the browser keeps doing the rule-based repairs exactly as before.
On security: on a cache lookup what leaves the machine is a hash and the page language. Not the markup, not the URL, not your licence key — and a hash cannot be read back into content. Sending an actual fragment is a different act with its own consent dialog.
On hallucination: you are right and I am not going to argue it away. A model can invent a plausible name for a button, and a confident wrong name is worse than silence. That is why it is asked for a name or a description — the smallest possible answer — and never for the page's meaning, and why the plain-words rewrite is something you request per page rather than something applied to your reading.
On WebKit: you are right, and I would rather concede it than dress it up. Fixing the engine is the better fix where the engine is what is broken. But most of what I am repairing is not a WebKit bug — it is a site that never gave its button a name. No engine can invent that name, because the information was never there. WebKit patches and this are not competing; they fix different halves of the same misery, and yours is the half that lasts.
And one thing I would genuinely ask of you, not as a turn of phrase. If, after all that, you still think the AI part should not exist in this shape — even switched off by default and asked for by hand — I would rather learn it properly than from one exchange. Ask the people here whose judgement you trust, and let them say it in their own words. If it comes back that this is the wrong thing to have built, tell me plainly and I will change it rather than defend it. I would much rather hear that now, from you, than after people have paid for it. I am not asking you to approve of it; I am asking you to tell me if I am wrong, and I will take the answer.
If you do go and contribute to WebKit, that helps more people than I will.
link for the windows one?
Link for the windows one?
Windows link — and why it will call me an unknown publisher
Dennis, here it is.
Download page, Windows button is the first one: https://qiksy.app/legato/
Straight to the file, if you would rather skip the page: https://api.qiksy.app/legato/download?os=win&v=0.3.58
File name: Qiksy-Legato-Setup-0.3.58.exe, about 162 MB.
SHA-256: 51be29b0c9865bca382fd0fccc687a7e3b647e2b1c54d82fec355766f5e7ec87
Now the part I would rather you heard from me than found out on your own screen.
The file is not signed yet, so Windows will make a scene about it. You will get a blue window headed "Windows protected your PC", and the only button on it says "Don't run". Press "More info" and a second button appears, "Run anyway" — that is the one. Where it names the publisher it will say "Unknown publisher". Nothing is wrong with the file; Windows simply has no name to read off it.
The reason is dull, and I am in the third week of it. The certificate that puts my name on the file is bought and paid for — that part took a card and five minutes. What it takes to actually get it issued is a documents queue: a state register extract, an identity check, a phone line they have to verify by calling it, and, at one point, a postcard sent to my physical address so somebody can confirm a human being lives there. Every round trip is days, and each one is answered by a different person who asks for the thing the last one already had. It is not something I can pay to skip, and I am not going to pretend it is anything more interesting than paperwork.
So: a couple more weeks and this warning disappears — the same installer, signed, with my name where it currently says "Unknown". If you would rather wait for that, wait, and I will say here when it is done. If you would rather have it today, it is the same build either way.
Meanwhile, since the name cannot vouch for the file, you can check the file itself. In Command Prompt:
certutil -hashfile "%USERPROFILE%\Downloads\Qiksy-Legato-Setup-0.3.58.exe" SHA256
If that number matches the one above, the file is the one I released, byte for byte.
It works with NVDA and JAWS, and with its own voice if you prefer. The report I would most like is the boring one: what it said, what you expected it to say, and where you got stuck.
bug on first site.
The following is my first expirience with this project.
Open app.
Get stuck in introduction window
Manage to get unstuck
type forum.audiogames.net
press enter
Get stuck in cloudflare.
Quit app
Open safari instead.
personal distain for web controls.
I forgot this in my last post, but using web controls for your ui is a bad idea. Makes it feel more messy than it has to be.
An example of this is the browser controls group. Look how safari does this.