{"id":14483575,"url":"https://github.com/guidepup/guidepup","last_synced_at":"2025-05-14T20:08:36.793Z","repository":{"id":43819177,"uuid":"436571860","full_name":"guidepup/guidepup","owner":"guidepup","description":"Screen reader driver for test automation.","archived":false,"fork":false,"pushed_at":"2024-11-30T12:15:18.000Z","size":3803,"stargazers_count":459,"open_issues_count":7,"forks_count":9,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-13T16:53:26.025Z","etag":null,"topics":["a11y","a11y-api","a11y-automation","a11y-testing","accessibility","accessibility-automation","accessibility-testing","nvda","screen-reader","screen-reader-api","voiceover"],"latest_commit_sha":null,"homepage":"https://guidepup.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/guidepup.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS.md","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["cmorten"]}},"created_at":"2021-12-09T10:20:50.000Z","updated_at":"2025-04-06T22:48:27.000Z","dependencies_parsed_at":"2024-06-18T18:37:47.643Z","dependency_job_id":"413c3115-ec1f-47b7-abd7-fd111dc34074","html_url":"https://github.com/guidepup/guidepup","commit_stats":{"total_commits":147,"total_committers":5,"mean_commits":29.4,"dds":0.2925170068027211,"last_synced_commit":"96abae9e1593aa96609853b4c2f06161df6d0be3"},"previous_names":[],"tags_count":57,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guidepup%2Fguidepup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guidepup%2Fguidepup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guidepup%2Fguidepup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guidepup%2Fguidepup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/guidepup","download_url":"https://codeload.github.com/guidepup/guidepup/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254219373,"owners_count":22034397,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["a11y","a11y-api","a11y-automation","a11y-testing","accessibility","accessibility-automation","accessibility-testing","nvda","screen-reader","screen-reader-api","voiceover"],"created_at":"2024-09-03T00:01:52.778Z","updated_at":"2025-05-14T20:08:36.725Z","avatar_url":"https://github.com/guidepup.png","language":"TypeScript","readme":"# Guidepup\n\n\u003ca href=\"https://www.npmjs.com/package/@guidepup/guidepup\"\u003e\u003cimg alt=\"Guidepup available on NPM\" src=\"https://img.shields.io/npm/v/@guidepup/guidepup\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/guidepup/guidepup/actions/workflows/test.yml\"\u003e\u003cimg alt=\"Guidepup test workflows\" src=\"https://github.com/guidepup/guidepup/workflows/Test/badge.svg\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/guidepup/guidepup/blob/main/LICENSE\"\u003e\u003cimg alt=\"Guidepup uses the MIT license\" src=\"https://img.shields.io/github/license/guidepup/guidepup\" /\u003e\u003c/a\u003e\n\n## [Documentation](https://guidepup.dev) | [API Reference](https://www.guidepup.dev/docs/api/class-guidepup)\n\n[![MacOS Monetary Support](https://img.shields.io/badge/macos-Monetary-blue.svg?logo=apple)](https://apps.apple.com/us/app/macos-monterey/id1576738294)\n[![MacOS Ventura Support](https://img.shields.io/badge/macos-Ventura-blue.svg?logo=apple)](https://apps.apple.com/us/app/macos-ventura/id1638787999)\n[![MacOS Sonoma Support](https://img.shields.io/badge/macos-Somona-blue.svg?logo=apple)](https://apps.apple.com/us/app/macos-sonoma/id6450717509)\n[![Windows 10 Support](https://img.shields.io/badge/windows-10-blue.svg?logo=windows10)](https://www.microsoft.com/en-gb/software-download/windows10ISO)\n[![Windows Server 2019 Support](https://img.shields.io/badge/windows_server-2019-blue.svg?logo=windows)](https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2019)\n[![Windows Server 2022 Support](https://img.shields.io/badge/windows_server-2022-blue.svg?logo=windows)](https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2022)\n\nGuidepup is a screen reader driver for test automation.\n\nIt enables testing for \u003ca href=\"https://www.guidepup.dev/docs/api/class-voiceover\"\u003e\u003cb\u003eVoiceOver on MacOS\u003c/b\u003e\u003c/a\u003e and \u003ca href=\"https://www.guidepup.dev/docs/api/class-nvda\"\u003e\u003cb\u003eNVDA on Windows\u003c/b\u003e\u003c/a\u003e with a single API.\n\n## Capabilities\n\n- **Full Control** - If a screen reader has a keyboard command, then Guidepup supports it.\n- **Mirrors Real User Experience** - Assert on what users really do and hear when using screen readers.\n- **Framework Agnostic** - Run with Jest, with Playwright, as an independent script, no vendor lock-in.\n\n## Getting Started\n\nSet up your environment for screen reader automation with [`@guidepup/setup`](https://github.com/guidepup/setup):\n\n```bash\nnpx @guidepup/setup\n```\n\nInstall Guidepup to your project:\n\n```bash\nnpm install @guidepup/guidepup\n```\n\nAnd get cracking with your first screen reader automation code!\n\n## Examples\n\nHead over to the [Guidepup Website](https://www.guidepup.dev/) for guides, real world examples, environment setup, and complete API documentation with examples.\n\nYou can also check out these [awesome examples](https://github.com/guidepup/guidepup/tree/main/examples) to learn how you could use Guidepup in your projects.\n\nAlternatively check out [this project](https://github.com/guidepup/aria-at-tests) which runs several thousand tests to assert screen reader compatibility against [W3C ARIA-AT](https://github.com/w3c/aria-at) test suite.\n\n### Basic Navigation\n\n#### VoiceOver\n\n```ts\nimport { voiceOver } from \"@guidepup/guidepup\";\n\n(async () =\u003e {\n  await voiceOver.start();\n\n  await voiceOver.next();\n  console.log(await voiceOver.spokenPhraseLog());\n\n  await voiceOver.stop();\n})();\n```\n\n#### NVDA\n\n```ts\nimport { nvda } from \"@guidepup/guidepup\";\n\n(async () =\u003e {\n  await nvda.start();\n\n  await nvda.next();\n  console.log(await nvda.spokenPhraseLog());\n\n  await nvda.stop();\n})();\n```\n\n### Complex Navigation\n\n#### VoiceOver\n\n```ts\nimport { voiceOver } from \"@guidepup/guidepup\";\n\n(async () =\u003e {\n  await voiceOver.start();\n\n  await voiceOver.perform(voiceOver.keyboardCommands.findNextHeading);\n  console.log(await voiceOver.itemText());\n\n  await voiceOver.perform(voiceOver.keyboardCommands.findNextControl);\n  console.log(await voiceOver.lastSpokenPhrase());\n\n  await voiceOver.stop();\n})();\n```\n\n#### NVDA\n\n```ts\nimport { nvda } from \"@guidepup/guidepup\";\n\n(async () =\u003e {\n  await nvda.start();\n\n  await nvda.perform(nvda.keyboardCommands.moveToNextHeading);\n  console.log(await nvda.itemText());\n\n  await nvda.perform(nvda.keyboardCommands.moveToNextFormField);\n  console.log(await nvda.lastSpokenPhrase());\n\n  await nvda.stop();\n})();\n```\n\n## Powerful Tooling\n\nCheck out some of the other Guidepup modules:\n\n- [`@guidepup/setup`](https://github.com/guidepup/setup/) - Set up your local or CI environment for screen reader test automation.\n- [`@guidepup/playwright`](https://github.com/guidepup/guidepup-playwright/) - Seemless integration of Guidepup with Playwright.\n- [`@guidepup/virtual-screen-reader`](https://github.com/guidepup/virtual-screen-reader/) - Reliable unit testing for your screen reader a11y workflows.\n- [`@guidepup/jest`](https://github.com/guidepup/jest/) - Jest matchers for reliable unit testing of your screen reader a11y workflows.\n\nIf you are using GitHub Actions, check out the dedicated [`guidepup/setup-action`](https://github.com/marketplace/actions/guidepup-setup) to set up your CI ready for screen reader automation:\n\n```yaml\n- name: Set Up Environment For Screen Reader Automation\n  uses: guidepup/setup-action\n```\n\n## Similar\n\nHere are some similar unaffiliated projects:\n\n- [`at-driver`](https://github.com/w3c/at-driver)\n- [`nvda-at-automation`](https://github.com/Prime-Access-Consulting/nvda-at-automation)\n- [`@accesslint/voiceover`](https://github.com/AccessLint/screenreaders)\n- [`screen-reader-reader`](https://github.com/phenomnomnominal/screen-reader-reader)\n- [`web-test-runner-voiceover`](https://github.com/coryrylan/web-test-runner-voiceover)\n- [`nvda-testing-driver`](https://github.com/kastwey/nvda-testing-driver)\n- [`assistive-webdriver`](https://github.com/AmadeusITGroup/Assistive-Webdriver)\n- [`screen-reader-testing-library`](https://github.com/eps1lon/screen-reader-testing-library)\n\n## Resources\n\n- [Documentation](https://www.guidepup.dev/docs/intro)\n- [API Reference](https://www.guidepup.dev/docs/api/class-guidepup)\n- [Contributing](.github/CONTRIBUTING.md)\n- [Changelog](https://github.com/guidepup/guidepup/releases)\n- [MIT License](https://github.com/guidepup/guidepup/blob/main/LICENSE)\n","funding_links":["https://github.com/sponsors/cmorten"],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguidepup%2Fguidepup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguidepup%2Fguidepup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguidepup%2Fguidepup/lists"}