Editoria11y v2: Building a Drupal-integrated Accessibility Checker
John Jameson
Editoria11y v1 filled an unmet need for Drupal: a robust but still intuitive accessibility checker that worked like magic.
For all its code, it was also fairly straightforward under the hood: lots of jQuery and IF statements!
For Editoria11y v2, I had a lengthy wishlist:
* Learn to let go of the jQuery dependency
* Let the user dismiss yellow alerts...and synchronize the dismissal with other users
* Let Drupal collect findings into site-wide reports
* Be able to check really complex HTML, with multiple content root containers and shadow DOM components.
* Leverage Drupal translations
* Add some basic automated testing so I'd stop randomly breaking stuff
The catch? Everything on that list was something I did not know how to do.
But here we are, thanks to a long list of mentors and a lot of trial and error.
So let us take a it's-new-to-some-of-us, down-with-imposter-syndrome tour of the techniques it takes to build a complex Web application out of Vanilla JS, Drupal APIs and Shadow DOM.
Editoria11y v1 filled an unmet need for Drupal: a robust but still intuitive accessibility checker that worked like magic.
For all its code, it was also fairly straightforward under the hood: lots of jQuery and IF statements!
For Editoria11y v2, I had a lengthy wishlist:
* Learn to let go of the jQuery dependency
* Let the user dismiss yellow alerts...and synchronize the dismissal with other users
* Let Drupal collect findings into site-wide reports
* Be able to check really complex HTML, with multiple content root containers and shadow DOM components.
* Leverage Drupal translations
* Add some basic automated testing so I'd stop randomly breaking stuff
The catch? Everything on that list was something I did not know how to do.
But here we are, thanks to a long list of mentors and a lot of trial and error.
So let us take a it's-new-to-some-of-us, down-with-imposter-syndrome tour of the techniques it takes to build a complex Web application out of Vanilla JS, Drupal APIs and Shadow DOM.