Demo: a page with known barriers
What this is for
Scanning a real site tells you what it found. It does not tell you whether the tool is right, because you do not know the answer in advance. Here you do: the barriers below were put here on purpose, one per row, and the table says what each one is and what a fix should do.
Walk this page with GabaDrone, answer what it asks, save the script, turn it on under Page Scripts, then reload and scan again. The findings that can be fixed by a script should be gone. The ones that cannot should still be here — and that is the correct result, not a failure.
Nothing here is a real control. The buttons do nothing, the form submits nowhere, and the images are placeholders.
The list below is what an automated scan reports, verified by running axe against this page: five findings, four of them fixable by a script. There are other barriers here on purpose — a link that only says “click here”, a field labelled by its placeholder, a div behaving like a button — which no automated check reliably catches. They are here because a scan finding nothing is not the same as a page being usable, and this page should be able to show you the difference.
The barriers, and what each one is
| What is wrong | Rule | Can a script fix it? |
|---|---|---|
| A button with no accessible name | button-name | Yes, once you say what it does |
| An image with no alternative text | image-alt | Yes, once you describe it |
| An input with no label | label | Yes, once you name it |
| Text that does not meet contrast | color-contrast | Yes, once you choose a colour |
| Headings that skip from h2 to h4 | heading-order | No — reordering content needs a person |
The barriers themselves
A button with no accessible name — an icon and nothing else:
An image with no alternative text:
A link whose text says nothing about its destination: click here.
A div that behaves like a button but is not one — no role, no tab stop, no keyboard handler:
Text that does not meet the contrast requirement:
This grey on white is about 2.8:1, where 4.5:1 is required.
Barriers only a live browser can find
Nothing below is visible to a checker reading the HTML. Each one needs something to happen first — focus moving, a pointer hovering, a viewport narrowing — which is what an extension can do and a crawler cannot.
A control that shows nothing when it has keyboard focus. Tab to it:
A tooltip that appears on hover and never on focus:
Hover me This text only a mouse can reach
Two controls under 24 pixels, close enough together to hit the wrong one:
A required field that never says it is required:
A link that opens a new tab without warning: Our pricing.
A field whose edge is almost invisible against the page:
A form that asks for the same thing twice:
A heading that skips a level
The heading above is an h4 following an h2. No script can fix that: changing the outline of a page is a decision about its content, and guessing at it would be worse than leaving it reported.
Which account to use
This page carries the voluntasOS widget for the account that owns
voluntasos.com. A fix only reaches a visitor when the widget
on the page and the script that was saved belong to the same
account — so walk this page signed in as that one. Signed in as a
different account you can still scan, answer and save; the script will
simply never be served here, and nothing will tell you why.
On your own site there is no such trap: the widget you deploy and the account you sign in with are the same one.
After you apply the fixes
Saving from GabaDrone stages a script. It reaches a visitor only after someone turns it on under Page Scripts — that separation is deliberate, because putting a script on a live site is a decision with a name attached to it. GabaDrone offers a button that takes you there.
Once it is on, reload this page. The widget asks the server which scripts
apply to this URL and runs them, so the fixes you answered should be in
place. Scan again: what should be left is heading-order, and
anything you chose not to answer. If nothing changed, check three things
in this order — is the script turned on, is it against this exact URL, and
is the widget on the page for the same account.