{"id":24152273,"url":"https://github.com/nfreear/accessibility-devops","last_synced_at":"2026-06-09T11:31:38.713Z","repository":{"id":250939452,"uuid":"835919510","full_name":"nfreear/accessibility-devops","owner":"nfreear","description":"Demonstration of integrating automated accessibility testing tools into a continuous integration/deployment (CI/CD) workflow.","archived":false,"fork":false,"pushed_at":"2025-01-29T19:02:33.000Z","size":583,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-01T19:22:34.443Z","etag":null,"topics":["accessibility","ci","ci-cd","cypress","cypress-a11y","cypress-axe","devops","pa11y-ci"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nfreear.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-30T19:37:46.000Z","updated_at":"2025-02-20T15:39:14.000Z","dependencies_parsed_at":"2024-07-30T23:59:23.720Z","dependency_job_id":"74bbe5df-6bab-4a80-afe7-1b9c86737a81","html_url":"https://github.com/nfreear/accessibility-devops","commit_stats":null,"previous_names":["nfreear/accessibility-devops"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nfreear/accessibility-devops","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfreear%2Faccessibility-devops","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfreear%2Faccessibility-devops/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfreear%2Faccessibility-devops/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfreear%2Faccessibility-devops/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nfreear","download_url":"https://codeload.github.com/nfreear/accessibility-devops/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfreear%2Faccessibility-devops/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34105565,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["accessibility","ci","ci-cd","cypress","cypress-a11y","cypress-axe","devops","pa11y-ci"],"created_at":"2025-01-12T10:15:36.599Z","updated_at":"2026-06-09T11:31:38.697Z","avatar_url":"https://github.com/nfreear.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Accessibility DevOps demo\n\n[![Node.js CI][ci-img]][ci] (_expected to fail!_)\n[![Should fail][ci-fail-img]][ci-fail]\n\nThis repository demonstrates integrating automated accessibility testing tools into a [continuous integration/deployment (CI/CD)][intro] workflow.\n\n* [@nfreear/accessibility-ci-demo][demo1]\n* [@nfreear/accessibility-devops][demo2] (_this repo._)\n\nIt demonstrates the use of two separate tools:\n\n* [pa11y-ci][],\n* [cypress-axe][] with [Cypress][] (see this [blog post][]).\n\nThe repo contains example _fails_ and _passes_ [pages](./pages), and corresponding [end-to-end tests](./cypress/e2e).\n\n![Screenshot showing Cypress output](./.github/workflows/screenshots/cypress-test-fail.png)\n\n## ⚠️✋ This project does not guarantee that what you build is accessible.\n\nThe GDS Accessibility team found that only [~30% of issues are found by automated testing][gds].\n\nYou'll also need to:\n* test your interface with the [assistive technologies that real users use][at] (see also [WebAIM's survey results][survey]).\n* include disabled people in user research.\n\n## Usage\n\n```\nnpm install\nnpm run lint\nnpm run start:detached\nnpm run test:cypress\nnpm run test:pa11y-ci\n_SPEC=pass npm run test:cypress\n```\n\n[gds]: https://accessibility.blog.gov.uk/2017/02/24/what-we-found-when-we-tested-tools-on-the-worlds-least-accessible-webpage\n[at]: https://www.gov.uk/service-manual/technology/testing-with-assistive-technologies#when-to-test\n[survey]: https://webaim.org/projects/screenreadersurvey10/#primary\n  \"Screen Reader Survey #10, 2024.\"\n[pa11y-ci]: https://github.com/pa11y/pa11y-ci\n[cypress]: https://www.cypress.io/\n[cypress-accessibility]: https://docs.cypress.io/accessibility/get-started/introduction\n[cypress-axe]: https://www.npmjs.com/package/cypress-axe\n[blog post]: https://opensource.com/article/23/2/automated-accessibility-testing\n  \"Blog: example of performing accessibility tests in GitLab with Pa11y and Cypress, By Daniel Mundra, February 22, 2023\"\n[civic-repo]: https://gitlab.com/civicactions/accessibility\n[wp-ci]: https://en.wikipedia.org/wiki/Continuous_integration\n[wp-ops]: https://en.wikipedia.org/wiki/DevOps\n[intro]: https://github.com/GoogleChrome/lighthouse-ci/blob/main/docs/introduction-to-ci.md\n  \"Introduction to Continuous Integration (Google)\"\n[demo1]: https://github.com/nfreear/accessibility-ci-demo\n  \"#1 Demos use of 'jest-axe' and 'lighthouse-ci-action'\"\n[demo2]: https://github.com/nfreear/accessibility-devops\n  \"#2 Demos use of 'pa11y-ci' and Cypress\"\n\n[ci]: https://github.com/nfreear/accessibility-devops/actions/workflows/node.js.yml\n[ci-img]: https://github.com/nfreear/accessibility-devops/actions/workflows/node.js.yml/badge.svg\n\n[ci-fail]: https://github.com/nfreear/accessibility-devops/actions/workflows/fail.yml\n[ci-fail-img]: https://github.com/nfreear/accessibility-devops/actions/workflows/fail.yml/badge.svg\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnfreear%2Faccessibility-devops","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnfreear%2Faccessibility-devops","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnfreear%2Faccessibility-devops/lists"}