Run almost any accessibility scanner on a WordPress site and you get a list that looks like this.
Error: Links must have discernible text. Line 412, column 38.
That is correct, and it is useless.
Line 412 does not exist anywhere the site owner can see it. The page was not written by hand. It was assembled by a page builder, and the HTML the scanner read was generated a fraction of a second before it was tested. Nobody opens Elementor and finds a thing called line 412.
So the report lands on the desk of someone who now has to do detective work before they can do any actual work. That gap is why so many accessibility reports are paid for, filed, and never acted on.
The gap between finding a problem and fixing one
I have spent years fixing accessibility issues on sites built with page builders. The finding has almost never been the hard part. The hard part is the twenty minutes between reading the error and standing in front of the right control.
You open the editor. You guess which section. You click through nested containers. You check one widget, then another. Eventually you find the icon button with no label, or the slider that traps the keyboard, and the fix itself takes thirty seconds.
Multiply that by sixty issues on a medium sized site. The search costs more than the repair. That is backwards.
What I wanted instead
When I started building NexoBee I had one rule. The report has to point at something the person can actually click on.
Not a line number. Not a CSS selector full of generated class names that change on the next save. The widget. Its type, its name, and where it sits in the page, described the way the editor describes it.
Because that is the unit of work. In a page builder you do not edit lines. You edit widgets. A tool that reports in lines is reporting in a language the user does not work in, and quietly handing them the translation job.
What changes when the report speaks the right language
Three things, and the third one matters most.
- The fix gets faster. Twenty minutes of hunting becomes a few seconds of scrolling.
- The fix gets done by the right person. When a report says widget, the site owner or a junior builder can act on it. When it says line 412, it goes to a developer, and the queue starts.
- The fix actually happens. A report you can act on today gets acted on. A report that requires a research project gets archived.
Accessibility work does not usually fail because people do not care. It fails because the distance between knowing and doing is too long, and ordinary pressure fills the gap.
Why an overlay does not solve this
There is a shortcut on the market. Add a script, get a floating accessibility button, declare the site compliant.
I do not use overlays and I do not sell them. They sit on top of the page at runtime and try to patch what the markup failed to say. The underlying page is unchanged. Screen reader users have been clear and loud about how that works out in practice, and companies that bought overlays have still faced legal complaints.
There is no version of this where the real work does not happen in the markup. So the only useful thing a tool can do is make that real work as short as possible.
Build the tool for the person holding the mouse
This is the part I keep coming back to, and it applies well beyond accessibility.
Most tools are built to be technically correct. Fewer are built around the moment someone actually uses them. A scanner that reports line numbers is technically correct and practically wrong, because it was designed around how the page is parsed rather than how the page is edited.
So when I design anything now, I ask one question first. What is this person looking at when they read my output, and does my output make sense from there?
For NexoBee the answer was simple. They are looking at the Elementor editor. So that is the language the report speaks.
Working on something similar?
I write about what I build as I build it, including the parts that did not work. If you are fixing accessibility on a WordPress site and the reports are not getting you anywhere, I am happy to talk through it.

