There has been a very good discussion going on in the issue queue of Accessible Content about the future of that module, as well as how it will relate to other initiatives to provide accessibility testing in Drupal. With the QUAIL project now at a stable state, I have been working on a complete rewrite of the Accessible Content module, but I would like to ensure we don't have duplicitous work going, and that any direction we go in is vetted by this community.
There are currently three big modules out there that deal with accessibility checking:
- QUAIL API - A simple module to load QUAIL for developers.
- Accessible Content - A general module for accessibility testing that is currently being upgraded (finally!) to D7.
- Node Accessibility - Accessibility validation tool that does a lot of helpful reporting and provides statistics.
Since we are at the nexus of several changes, it would be a good idea to determine what functionality the community wants, and where those features should live. I don't think a single canonical module benefits the community. My own interest has always been content author experience, including WYSIWYG integration, and less so on reporting. That being said, reporting is another crucial feature that many organizations need. Here's what I'm thinking as a model that can prevent duplication and benefit the community through focused, concerted efforts:
- QUAIL API be changed a bit to give site maintainers the ability to turn on and off tests, and to customize test results (Accessible Content does this using a new entity type, but I'm not wedded to that direction).
- Accessible content be slimmed down to focus on WYSIWYG integration, content author experience, and automated testing on the client side.
- Node Accessibility or another module become the place to get things like reporting and statistics (my only concern is the word "node" now that we are in an entity-filled world).
- A new module be created to help themers make their sites accessible. There is a huge difference between theme developers and content creators, and they need different feedback mechanisms.
- A new module also be created to integrate with automated testing. I have been using QUAIL in our own continuous integration environment, and if accessibility checking were part of the development workflow that would be a big win.
This approach would definitely take some work, but would also cut down on duplicitous efforts and ensure a more consistent experience for site maintainers.
Another idea might be to adopt the accessibility module and make it a nice package of sub modules that does everything.
Thoughts?
Comments
Here are my thoughts on the
Here are my thoughts on the matter.
For #1:
The argument for Quail Api vs Accessible Content, to me, is really an argument for using the Quail 2.0 or using the Quail 1.0 (or some equivalent). Because I deal with #3, I am biased towards Quail Api.
I think for Quail 2.0, the newer Accessibility Content module is the way to go.
The problem for me is that I am still stuck with needing a PHP solution for server side statistics.
My unfortunate thoughts of late were about using Quail 1.0 or writing a php version of 2.0 native to Drupal.
For #2:
I see no problems with this.
I think it makes perfect sense for client side validation to work directly with the editors.
For #3:
Node Accessibility has a strong emphasis on reporting and trying ensure the validity of tests.
Perhaps a better name for this would be "Accessibility Watchdog" or something shorter like "A-Dog".
My objectives with the A-Dog project would be as follows:
- Focus on validating "entities" on a Validate-On-Write process where possible (Hows are entities changing with D8?).
- Provide either hooks, or a library of functions, so that external/additional module can be used for rendering the appropriate charts and graphs based on different engines.
- Server Side Validation
- Mass Entity Validation (maybe this should be left to #5?)
For #4:
I keep imagining a new theme engine focused around treating HTML-5 regions and WAIA-ARIA.
With a new engine, we might be able to provide accessibility blocks in the same manner as that of the php template regions as described here: http://drupal.org/node/171224 .
But this also seems a bit extreme. Perhaps a way to hook into the PHPtemplate theme is a more sane approach?
Or perhaps a module similar to how simpletests work, only for themes?
Would Quail 2.0 be used with this to produce some sort of theme developer view mode for a site?
For #5,
Sounds like the module to make site administrators happy by being the glue for everything.
I can see this simply being glue between different, existing, workflow modules.
Hrm....
Thanks, I think the big barrier is that QUAIL 1.0 really needs maintainers of it's going to continue to thrive. The biggest roadblocks for me was always that I had to write a CSS Parser and other insanities to get many tests to work right, and doing so with the limited DOM implementation in PHP (even with things like QueryPath) was daunting. We got 80% of the way there, but the next 20% would have been a doozie.
I think the best approach for a PHP-centric implementation of QUAIL would be to use the tests.json file and just use "selector" tests (i.e. simple tests that can be done with just a jQuery/sizzle selector) and QueryPath to run the tests server-side.
The next 20%
Hey guys. Really like the movement you've been able to make on this project. Wish I'd been able to help more.
So many neat ways to start using & building on the work in http://quailjs.org
I'm still not sure what's the easiest way to integrate the latest QUAIL into Drupal 7 though.
Do we need to get this library whitelisted?
--
OpenConcept | Twitter @mgifford | Drupal Security Guide
There's discussion of
There's discussion of supporting automated QUAIL testing in the Testswarm module: http://drupal.org/node/1844046