Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Run accessibility audit on CI #262

Closed
jelbourn opened this issue Apr 5, 2016 · 14 comments
Closed

Run accessibility audit on CI #262

jelbourn opened this issue Apr 5, 2016 · 14 comments
Assignees
Labels
Accessibility This issue is related to accessibility (a11y) area: dev-infra Issue related to internal project infrastructure feature This issue represents a new feature or feature request rather than a bug or bug fix help wanted The team would appreciate a PR from the community to address this issue
Milestone

Comments

@jelbourn
Copy link
Member

jelbourn commented Apr 5, 2016

Tools to explore:
Chrome tools: https://github.com/GoogleChrome/accessibility-developer-tools
aXe: http://www.deque.com/products/axe/

The audit should run on the e2e examples.

@jelbourn jelbourn added Accessibility This issue is related to accessibility (a11y) help wanted The team would appreciate a PR from the community to address this issue area: dev-infra Issue related to internal project infrastructure labels Apr 5, 2016
@jelbourn jelbourn added this to the before beta milestone Apr 5, 2016
@jelbourn jelbourn changed the title Run chrome accessibility dev tools audit on CI Run accessibility audit on CI Apr 14, 2016
@jelbourn jelbourn added the feature This issue represents a new feature or feature request rather than a bug or bug fix label May 18, 2016
@sendilkumarn
Copy link
Contributor

We can use Protractor-accessibility-plugin ?

adding this to protractor.conf.js

screen shot 2016-05-25 at 12 52 51 pm

@sendilkumarn
Copy link
Contributor

if this is okay. I will do a PR for this :) @jelbourn

@devversion
Copy link
Member

devversion commented May 25, 2016

I think that makes sense. I'm not in position to confirm this, but I think a PR is always welcome, if it's not too much effort for you.

btw: I'm working a PR which uses Axe Core. So our work will not interfere :)

@sendilkumarn
Copy link
Contributor

Okay then 👍

@jelbourn
Copy link
Member Author

In the long term we probably just want to go with one a11y assertion system, but it could be good to compare them initially.

@devversion
Copy link
Member

@jelbourn I think both a11y assertion systems are powerful.

When I see the simplicity of the protractor plugin, I think this one is way easier to handle.

I already got Axe Core running on the e2e app as well.
Those A11Y checks can be triggered / started manually by adding a line to the given jasmine spec.

To get Axe Core running, we have to

  • Copy it to the vendors for e2e and load it in the e2e
    / Or inject it manually on the given spec (recommended)
  • Manually log our violations to the console or file (really difficult to show all necessary information)

Maybe @marcysutton can help in this case, and explain whats different about axe :)

@marcysutton
Copy link

The Protractor plugin will only run the A11y checks once at the end of a test and it won't let you specify an HTML fragment to test against (it tests the whole page). aXe, on the other hand, will allow you to run checks whenever the UI has changed within a set of tests and even test a DOM subtree.

The Chrome A11y Developer tools are also a smaller, noisier ruleset than aXe, and Tenon requires an API key and paid account.

Here are a few questions you should consider:

  • What should be done with the log output? (We could easily write a utility for this)
  • How will developers respond to accessibility issues? (for example, would developers run the tests and look at the debugger?)
  • Would the issues go into an issue tracker?
  • If you are analyzing whole pages, how do you plan to de-dupe the issues that are common from test-to-test? (None of the mentioned tools do this, but it's worth thinking about.)

@jelbourn
Copy link
Member Author

I'd actually like to have tests fail when the a11y audit encounters an issue.

@marcysutton
Copy link

You can easily do that, it just might take some more logging to make the failure understandable. Here is an example: https://github.com/marcysutton/axe-webdriverjs-demo/blob/master/spec/test.js#L54

@jelbourn
Copy link
Member Author

Yeah, that seems like a good area for some custom jasmine matchers.

@devversion
Copy link
Member

@jelbourn I already got that working without the custom webdriver of the axe-core library.

It as bit messy at the moment, because it's just a WIP branch (on vacation)

I'm looking for some good designs, to represent the violations.

Colors would be appropriated, but will require libraries like chalk

@sendilkumarn
Copy link
Contributor

Protractor tests fail when there are any accessibility issues.

@devversion devversion self-assigned this Dec 13, 2016
@devversion
Copy link
Member

Closing this, because #2010 just landed in master.

andrewseguin pushed a commit to andrewseguin/components that referenced this issue Oct 15, 2018
@angular-automatic-lock-bot
Copy link

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

This action has been performed automatically by a bot.

@angular-automatic-lock-bot angular-automatic-lock-bot bot locked and limited conversation to collaborators Sep 5, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Accessibility This issue is related to accessibility (a11y) area: dev-infra Issue related to internal project infrastructure feature This issue represents a new feature or feature request rather than a bug or bug fix help wanted The team would appreciate a PR from the community to address this issue
Projects
None yet
Development

No branches or pull requests

4 participants