Accessibility errors
Question
GrapesJS version
- I confirm to use the latest version of GrapesJS
What browser are you using?
Chrome 141.0.7390.123
Reproducible demo link
https://grapesjs.com/demo.html
Describe the bug
Our application serves clients that require all pages to be accessible for all users. I am running the latest grapesjs libraries:
"grapesjs": "0.22.13",
"grapesjs-blocks-basic": "1.0.2",
"grapesjs-preset-webpage": "1.0.3",
How to reproduce the bug?
- Install WAVE Evaluation Tool browser plugin.
- Load the demo page: https://grapesjs.com/demo.html
- Run the WAVE tool. If you add the browser extension's button to the toolbar, just hit the button: <img width="24" height="24" alt="Image" src="https://github.com/user-attachments/assets/68efb24d-d5f2-4e14-82c0-476ca0cf6c94" />
What is the expected behavior?
For my application (that employs your library), we must fix all Errors and Contrast Errors reported by WAVE. I would expect 0 errors, 0 contrast errors. Non-zero Alerts and all other reported categories are acceptable.
What is the current behavior?
Running WAVE on the grapesjs demo page, it currently reports 80 errors and 3 contrast errors.
If is necessary to execute some code in order to reproduce the bug, paste it here below:
// no code necessary
<img width="1728" height="1117" alt="Image" src="https://github.com/user-attachments/assets/a8ae62b6-aaeb-4440-b7c3-e98888cc9fa1" />
For our application
The kinds of accessibility errors in our application that are most important to us are here:
<img width="1291" height="928" alt="Image" src="https://github.com/user-attachments/assets/9b67c0ca-e8fa-4948-b779-29ef05144127" />Code of Conduct
- I agree to follow this project's Code of Conduct
Answers (3)
I'm also seeing this behavior.
This is related to https://github.com/GrapesJS/preset-webpage You're free to update styles on top of that plugin or submit a PR with the fixes there.
Thanks for reporting this, @ssteele.
Great question about Accessibility errors. The recommended approach with ProseMirror is to use the event-driven API.
Start here:
- Check the GrapesJS documentation for your specific module
- Look for the
on()event listener method - Most operations can be achieved by listening to editor and component events
Common patterns:
// Listen for changes
editor.on('change', () => console.log('something changed'));
// Component lifecycle
editor.on('component:mount', (c) => console.log('component ready', c));
editor.on('component:update', (c) => console.log('component updated', c));
If you're still stuck:
- Share a minimal CodeSandbox reproduction
- Include what you've already tried
- Mention your GrapesJS version
- The community is here to help!
Related Questions and Answers
Continue research with similar issue discussions.
Issue #5556
Too many classes will cause the webpage to crash
GrapesJS version [X] I confirm to use the latest version of GrapesJS What browser are you using? latest version of Chrome Reproducible demo...
Issue #5677
GrapesJS version [X] I confirm to use the latest version of GrapesJS What browser are you using? Chrome Reproducible demo link https://jsfi...
Issue #6646
Javascript error when I want to add padding
GrapesJS version [x] I confirm to use the latest version of GrapesJS What browser are you using? Chrome & Firefox Reproducible demo link De...
Issue #5810
Unnecessary Canvas style
GrapesJS version[X] I confirm to use the latest version of GrapesJSWhat browser are you using? Arc Version 1.35.0 / Chromium Engine 123.0Re...
Paid Plugins That Match This Issue
Curated by issue keywords and label relevance to help you ship faster.
Loading paid plugin recommendations...
Check the open-source GrapesJS plugins on GitHub or run a quick search in our free catalog.
Browse free plugins βPremium plugins ship with support, regular updates, and production-ready features β save days of integration work.
Browse premium plugins βRelated tutorials
In-depth guides on the same topic.
Tutorial
Find the Right GrapesJS Plugin in Seconds: Smarter Discovery Is Live
We're shipping a set of discovery upgrades. New label filters, a proper compatibility switch for GrapesJS vs Studio, one-click and a smarter sort bar.
Tutorial
GrapesJS vs Webflow vs Tilda: What to Choose for Your Business in 2026
Choosing the right website platform in 2026 is no longer just about building a site
Tutorial
GJS Market 2.0 - Donations, Tracking, Labels and Better Product Discovery
Weβve rolled out a new set of GrapesJS marketplace updates across GJS Market, focused on improving how creators distribute products
Browse Plugin Categories
Jump directly to plugin category pages on the marketplace.