{"action":"created","issue":{"url":"https://api.github.com/repos/18F/web-design-standards/issues/1486","repository_url":"https://api.github.com/repos/18F/web-design-standards","labels_url":"https://api.github.com/repos/18F/web-design-standards/issues/1486/labels{/name}","comments_url":"https://api.github.com/repos/18F/web-design-standards/issues/1486/comments","events_url":"https://api.github.com/repos/18F/web-design-standards/issues/1486/events","html_url":"https://github.com/18F/web-design-standards/pull/1486","id":177464812,"number":1486,"title":"Add AccessLint CI to run accessibility tests","user":{"login":"ckundo","id":108163,"avatar_url":"https://avatars.githubusercontent.com/u/108163?v=3","gravatar_id":"","url":"https://api.github.com/users/ckundo","html_url":"https://github.com/ckundo","followers_url":"https://api.github.com/users/ckundo/followers","following_url":"https://api.github.com/users/ckundo/following{/other_user}","gists_url":"https://api.github.com/users/ckundo/gists{/gist_id}","starred_url":"https://api.github.com/users/ckundo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ckundo/subscriptions","organizations_url":"https://api.github.com/users/ckundo/orgs","repos_url":"https://api.github.com/users/ckundo/repos","events_url":"https://api.github.com/users/ckundo/events{/privacy}","received_events_url":"https://api.github.com/users/ckundo/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2016-09-16T16:16:51Z","updated_at":"2016-09-16T18:02:32Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/18F/web-design-standards/pulls/1486","html_url":"https://github.com/18F/web-design-standards/pull/1486","diff_url":"https://github.com/18F/web-design-standards/pull/1486.diff","patch_url":"https://github.com/18F/web-design-standards/pull/1486.patch"},"body":"## Description\r\n\r\n- Runs [accesslint-ci][blog] on the entire site for new pull requests and comments on the PR with accessibility issues.\r\n- CI will *not* fail on accessibility errors. accesslint-ci will comment on the pull requests.\r\n- The first PR with this change will list all of the accessibility issues on the site.\r\n- Subsequent PRs will only receive comments there are new changes.\r\n\r\n[blog]: https://robots.thoughtbot.com/introducing-accesslint-web-accessibility-testing-in-ci\r\n\r\n## Additional Information\r\n\r\n- Installs [`accesslint-cli`][cli].\r\n  - `accesslint-cli` is a node module that injects the [axe-core][axe] library into a page to run accessibility tests.\r\n- Installs [`accesslint-ci`][ci].\r\n  - crawls a host and passes the urls to `accesslint-cli` for accessibility evaluation.\r\n- Set `ACCESSLINT_MASTER_BRANCH`.\r\n  - AccessLint CI stores accessibility logs in Circle CI artifacts\r\n    for every build. It compares logs for new builds against the last\r\n    successful build on the mainline branch (default `master`). This\r\n    setting specifies `staging` as the branch with which to compare new\r\n    results.\r\n- Run a detached jekyll server for crawling and analysis.\r\n- Scan the host served via jekyll with `accesslint-ci`\r\n\r\n[cli]: https://github.com/accesslint/accesslint-cli.js\r\n[axe]: https://github.com/dequelabs/axe-core\r\n[ci]: https://github.com/accesslint/accesslint-ci\r\n\r\n### Example scenario\r\n\r\n- Developer branches from the development branch (`staging`).\r\n- Developer makes changes that introduce accessibility issues (form element with a missing label).\r\n- Developer opens a pull request in GitHub with the changes.\r\n- Developer gets a comment notification that his or her PR introduced 1 new error, including the url, criticality, and CSS selector of the failing element, like so:\r\n\r\n```\r\n'http://localhost:4000/form-templates/ | serious | Form elements must have labels | [\"#\\\\30 3-sign-in-form > .preview > .usa-form > fieldset > input:nth-of-type(2)\", \"#\\\\30 4-password-reset-form > .preview > .usa-form > fieldset > .js-validate_password\"]'\r\n```\r\n\r\n### Circle CI setup\r\n\r\n- Set the following in [Circle CI environment variables][circle-env]\r\n  - `ACCESSLINT_GITHUB_TOKEN` - [GitHub personal access token][github]\r\n    from a [collaborator account with write permissions][collaborator]\r\n  - `CIRCLE_TOKEN` - [Circle CI API token][circle-api]\r\n\r\n[circle-env]: https://circleci.com/gh/18F/web-design-standards/edit#env-vars\r\n[github]: https://github.com/settings/tokens/new\r\n[collaborator]: https://github.com/18F/web-design-standards/settings/collaboration\r\n[circle-api]: https://circleci.com/account/api"},"comment":{"url":"https://api.github.com/repos/18F/web-design-standards/issues/comments/247667333","html_url":"https://github.com/18F/web-design-standards/pull/1486#issuecomment-247667333","issue_url":"https://api.github.com/repos/18F/web-design-standards/issues/1486","id":247667333,"user":{"login":"ckundo","id":108163,"avatar_url":"https://avatars.githubusercontent.com/u/108163?v=3","gravatar_id":"","url":"https://api.github.com/users/ckundo","html_url":"https://github.com/ckundo","followers_url":"https://api.github.com/users/ckundo/followers","following_url":"https://api.github.com/users/ckundo/following{/other_user}","gists_url":"https://api.github.com/users/ckundo/gists{/gist_id}","starred_url":"https://api.github.com/users/ckundo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ckundo/subscriptions","organizations_url":"https://api.github.com/users/ckundo/orgs","repos_url":"https://api.github.com/users/ckundo/repos","events_url":"https://api.github.com/users/ckundo/events{/privacy}","received_events_url":"https://api.github.com/users/ckundo/received_events","type":"User","site_admin":false},"created_at":"2016-09-16T18:02:32Z","updated_at":"2016-09-16T18:02:32Z","body":"I see the jekyll site was extracted to https://github.com/18F/web-design-standards-docs, will reopen there."}}
{"actor":{"display_login":"ckundo"}}