By platform · HubSpot CMS
In HubSpot, the Form Is the Accessibility Problem
Marketing sites live or die on their forms, and HubSpot's arrive from somewhere you do not fully control. The fastest fix on the whole platform costs nothing and works on every plan.
Last reviewed August 30, 2026
For marketing teams and agencies running sites and landing pages on HubSpot CMS.
HubSpot is a marketing platform that publishes websites, and that shapes what breaks. The templates are usually adequate. The forms, the pop-ups and the chat widget are where the failures cluster. Which is to say, the parts closest to revenue.
You have more control than people assume, and less than you would like in exactly one place. Custom modules and coded files reach most of the page. The embedded form and the chat widget are injected by HubSpot's own scripts, and that is where the wall is.
What breaks on HubSpot CMS
The failures we find most often on this platform, and the rule each one breaks.
Form fields labeled by placeholder only
HubSpot forms can be configured to hide the label and show a placeholder instead, and the placeholder disappears the moment somebody types. HubSpot's own developer guidance tells you not to hide labels. Here is the part that catches people out. A placeholder-only field still gets an accessible name from that placeholder, so it passes your scanner's label check without complaint. What it fails is the rule about labels and instructions, and that rule has no conformance-tested automated rule behind it at all. This is the single commonest reason a clean scan report and a human tester disagree with each other.
3.3.2 Labels or Instructions
Validation errors that are never announced
The embedded form renders its errors visually. Without a live region they never reach a screen reader, so somebody submits the form, hears nothing, and submits it again.
4.1.3 Status Messages
Pop-up CTAs that do not manage focus
A slide-in or modal CTA appears without moving focus and often cannot be dismissed with Escape, so a keyboard user meets it last or never. Do not fix that by trapping focus inside it. A promotional overlay that holds a keyboard user hostage is a worse failure than the one you started with.
2.4.3 Focus Order
Drag-and-drop modules producing arbitrary heading levels
Each module carries its own heading setting, so a page assembled from six modules routinely ends up with three H1s and no H2. HubSpot's own guidance says not to skip a heading for visual effect, and the drag-and-drop editor makes doing it the path of least resistance.
1.3.1 Info and Relationships
The chat widget as a keyboard trap
Once focus enters the chat iframe it can be hard to get back out, and the launcher often is not reachable by keyboard at all. There is a second question most testers skip. A component that needs an unusual key to leave still conforms if it tells the user which key, so check whether it says anything at all before you write it up.
2.1.2 No Keyboard Trap
CTA buttons that are images
The classic HubSpot CTA is an image with a tracking link, and if the alt text is a file name or empty then your call to action is invisible. Nobody can create one any more, because HubSpot closed the legacy CTA editor at the end of November 2025 and everything the old editor did is in the new one. An image CTA on your site today was inherited rather than chosen.
1.1.1 Non-text Content
The plugin question, answered
HubSpot has a marketplace, and for accessibility the controls that matter sit in the design manager and the form editor rather than in anything you install.
The most useful lever costs nothing, needs no subscription tier, and works in both form editors. Turn visible labels back on in every form. Everything else on this page is worth doing after that.
Custom modules in the design manager
HubL modules you write yourself instead of using the stock ones.
- What it does
- They give you the markup. A custom module is how you get semantic headings, real buttons, and a heading level decided by the page rather than by whoever dragged the module in.
- What it cannot
- They do not change the embedded form or the chat widget, because both are injected by HubSpot's own scripts after your markup has rendered.
The raw HTML form embed, if you have it
An option that renders a form in your own markup rather than in HubSpot's default embed.
- What it does
- It puts labels, error handling and structure back under your control, which resolves most of the form failures on this page at once.
- What it cannot
- Check whether you can actually use it before you plan around it, because most readers cannot. It exists only for forms built in the legacy form editor, and only on Marketing Hub or Content Hub at Professional or Enterprise. The current form editor does not offer it. It also hands you the validation behavior the default embed was handling, so it is more to maintain rather than less.
Overlay widgets (accessiBe, UserWay, AudioEye and the rest)
A script you paste into your template that draws a toolbar for visitors and claims to repair your pages automatically as they load.
- What it does
- The toolbar half is real. Bigger text, higher contrast, adjusted spacing and a reading guide are preferences some visitors use, and the field's own reference document on overlays says a non-trivial array of accessibility problems can genuinely be repaired this way.
- What it cannot
- It does not change the markup your server sends, and the categories it handles worst are the ones that decide whether a site works at all. Text alternatives, form labels and error handling, and keyboard access. More than 5,000 US digital accessibility lawsuits were filed in 2025, and the firm that compiles that dataset reads the filings the same way every year, which is that widgets do not materially reduce legal risk. Our overlays page has the documented record.
What to actually do
- Turn labels back on in every form. This is the fastest single fix available on the platform and it needs no plan upgrade.
- Test a failed submission with a screen reader running, and confirm the error is announced rather than only shown.
- Audit one landing page and one blog post. Between them they cover most of the module patterns on a HubSpot site.
- Check the heading levels on any page built from drag-and-drop modules, because they rarely form a sensible outline by accident.
- Tab into the chat widget and confirm you can get back out again, and note whether it told you how.
- Replace image CTAs with text buttons, which helps your conversion tracking and your accessibility in the same afternoon.
On themes and templates
HubSpot marketplace themes vary widely, and the ones sold on visual polish tend to have the loosest heading structure, which is our impression from auditing them rather than a published finding. HubSpot's own line to marketplace developers is worth repeating to anybody building a template. Your content could get used across thousands, even millions of pages, so a choice you make once affects people you will never meet.
One honest limit
The chat widget and some pop-up behavior are injected by HubSpot and are not yours to fix. We report them, we tell you exactly what fails, and the realistic route from there is a support request rather than a code change. That is a genuine limit and it is worth writing into your accessibility statement rather than leaving unsaid.
Keep reading
Other platforms
HubSpot CMS
We test all 55 WCAG 2.2 A and AA rules on your HubSpot CMS site, with an expert review and a real blind screen-reader user on your key journeys. Every finding screenshotted and mapped to its fix. $499, report in 5 business days.