ckeditor4-plugin-a11ychecker icon indicating copy to clipboard operation
ckeditor4-plugin-a11ychecker copied to clipboard

Change deprecated engine

Open mlewand opened this issue 8 years ago • 24 comments

Quail became deprecated. We need to look for any maintained library.

One known lib is aXe.

mlewand avatar Aug 28 '17 08:08 mlewand

aXe looks like good candidate – it's used by several big projects, like Google's Lighthouse.

Comandeer avatar Aug 28 '17 08:08 Comandeer

+1 for aXe

nadavkav avatar Nov 27 '17 12:11 nadavkav

Is there currently any movement integrating aXe in place of Quail?

suchpower avatar Mar 02 '18 21:03 suchpower

Another engine suggested in #253 is pa11y.

mlewand avatar Apr 18 '18 22:04 mlewand

Thanks @mlewand

I think that aXe-core has more momentum at this stage.

They've even got a Chrome app for it now https://axe-core.org/coconut/

mgifford avatar Apr 18 '18 22:04 mgifford

I used to maintain(ish) Quail, and I would say that aXe is probably a better replacement that pa11y/HTML_Codesniffer. Most of the people that worked on Quail ended up contributing towards aXe and the w3c/auto-wcag rules.

nschonni avatar Apr 19 '18 04:04 nschonni

Are there any instructions on how to use the CKEditor Accessibility Checker with the aXe-core lib? Thanks.

johneecc avatar May 01 '18 16:05 johneecc

I don't think anyone has done it yet @johneecc interested in giving it a go? You could set up an issue here to help for some advice/direction https://github.com/dequelabs/axe-core

mgifford avatar May 01 '18 16:05 mgifford

Hey everyone,
I work with johneecc. I think I'm going to give the switch to axe-core a try. If I get it working would you like me to do a pull request?

ZachRHale avatar May 01 '18 17:05 ZachRHale

@ZachRHale That would be lovely. What you need to do is to implement a custom Engine class that derives from Engine type. I'd suggest just starting by copying EngineQuail type and slowly adapting it to use aXe.

You might face some difficulties when handling metadata related to issue types, as they were also stored in Engine type. Finally you'd want to map it to Quick Fixes (if any applicable).

mlewand avatar May 01 '18 19:05 mlewand

Thanks @mlewand. This is the first time I've looked at this codebase so it might take me a while but I believe there is a strong need for it.

ZachRHale avatar May 01 '18 19:05 ZachRHale

Pretty impressive list of projects using aXe https://github.com/dequelabs/axe-core/blob/develop/doc/projects.md

mgifford avatar Mar 30 '19 14:03 mgifford

Ok, perhaps this isn't as hard as it seems, see https://github.com/dequelabs/axe-core/issues/1466#issuecomment-479162718

So would would need to happen to swap out the accessibility engine for the ckeditor-plugin-a11ychecker?

mgifford avatar Apr 03 '19 01:04 mgifford

I couldn't find an associated pull request for this change, has anyone been able to get this engine changed?

anevins12 avatar Mar 23 '20 15:03 anevins12

I am pretty sure it hasn't been done yet.

mgifford avatar Mar 23 '20 15:03 mgifford

I'm happy to help whomever starts working on this (I work on axe-core)

straker avatar Mar 23 '20 15:03 straker

+1 for aXe We also looked for a recent and maintain plugin for CKEditor, so it would be cool to have an integration with aXe.

jkevan avatar May 20 '20 13:05 jkevan

axe is great, but also worth considering others as I've outlined in Drupal's issue queue.

These engines have also been incorporated into CKEditor's WYSIWYG in Drupal

  • https://khan.github.io/tota11y/
  • https://squizlabs.github.io/HTML_CodeSniffer/

mgifford avatar Jan 19 '21 19:01 mgifford

@mgifford I am not sure why you state in the other ticket that integrating axe-core would take a lot of customization.

  1. axe-core automatically turns rules on and off based on whether you are analyzing the entire HTML page or just a section of it so it should give your content editors exactly the right results depending on what you analyze.
  2. axe-core allows individual rules to be run with a simple configuration and also allows individual rules to be turned off with a simple configuration that can be passed to the run function. So turning off color contrast for example is really easy.

dylanb avatar Jan 20 '21 21:01 dylanb

@dylanb which issue queue? I've been advocating folks move to axe for a while (on a lot of issues). I don't know if axe-core integration would be any harder than tota11y or HTML CodeSniffer. I am not sure I've seen a successful integration of axe into a WYSIWYG though. Maybe it exists. If so I'd love an example to add to the list.

I'm not a JS guy, so am looking at what people have accomplished. I am bringing up alternatives, to axe mostly because I haven't seem implementations of axe in this context.

Axe is super powerful, and a core part of so many good, modern, accessibility tools. I'd love to see it incorporated in the core of many authoring tools.

mgifford avatar Jan 21 '21 14:01 mgifford

Apologies for the confusion @mgifford it seems like I may have mis-read the comment stream. The integrations with CMS and editors that have been done with axe-core are all closed source that I know of. The features I mentioned above are good reasons to use axe-core for this purpose though - that and the rate of innovation and maintenance. As @straker pointed out above, let us know if we can help.

dylanb avatar Jan 22 '21 12:01 dylanb

I forked a repo here https://github.com/ejdunn2001/ckeditor-axe that implements axe-core and it is kind of working, but I am unfamiliar with ckeditor's codebase. It is returning results but not displaying them. @dylanb I can use all of the help I can get.

ejdunn2001 avatar Jun 22 '21 16:06 ejdunn2001

@ejdunn2001 I'm also unfamiliar with ckeditor's codebase but I'm happy to work on it with you. Last time I dabbled in it I was able to get axe running on the ckeditor dom, but didn't know what to do with the axe results object to have it integrate with the ckeditor suggestions.

straker avatar Jun 22 '21 19:06 straker