Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/guidepup/guidepup
Screen reader driver for test automation.
https://github.com/guidepup/guidepup
a11y a11y-api a11y-automation a11y-testing accessibility accessibility-automation accessibility-testing nvda screen-reader screen-reader-api voiceover
Last synced: 8 days ago
JSON representation
Screen reader driver for test automation.
- Host: GitHub
- URL: https://github.com/guidepup/guidepup
- Owner: guidepup
- License: mit
- Created: 2021-12-09T10:20:50.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-09-14T09:47:13.000Z (2 months ago)
- Last Synced: 2024-09-14T20:11:32.145Z (2 months ago)
- Topics: a11y, a11y-api, a11y-automation, a11y-testing, accessibility, accessibility-automation, accessibility-testing, nvda, screen-reader, screen-reader-api, voiceover
- Language: TypeScript
- Homepage: https://guidepup.dev
- Size: 3.55 MB
- Stars: 439
- Watchers: 3
- Forks: 7
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# Guidepup
## [Documentation](https://guidepup.dev) | [API Reference](https://www.guidepup.dev/docs/api/class-guidepup)
[![MacOS Monetary Support](https://img.shields.io/badge/macos-Monetary-blue.svg?logo=apple)](https://apps.apple.com/us/app/macos-monterey/id1576738294)
[![MacOS Ventura Support](https://img.shields.io/badge/macos-Ventura-blue.svg?logo=apple)](https://apps.apple.com/us/app/macos-ventura/id1638787999)
[![MacOS Sonoma Support](https://img.shields.io/badge/macos-Somona-blue.svg?logo=apple)](https://apps.apple.com/us/app/macos-sonoma/id6450717509)
[![Windows 10 Support](https://img.shields.io/badge/windows-10-blue.svg?logo=windows10)](https://www.microsoft.com/en-gb/software-download/windows10ISO)
[![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)
[![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)Guidepup is a screen reader driver for test automation.
It enables testing for VoiceOver on MacOS and NVDA on Windows with a single API.
## Capabilities
- **Full Control** - If a screen reader has a keyboard command, then Guidepup supports it.
- **Mirrors Real User Experience** - Assert on what users really do and hear when using screen readers.
- **Framework Agnostic** - Run with Jest, with Playwright, as an independent script, no vendor lock-in.## Getting Started
Set up your environment for screen reader automation with [`@guidepup/setup`](https://github.com/guidepup/setup):
```bash
npx @guidepup/setup
```Install Guidepup to your project:
```bash
npm install @guidepup/guidepup
```And get cracking with your first screen reader automation code!
## Examples
Head over to the [Guidepup Website](https://www.guidepup.dev/) for guides, real world examples, environment setup, and complete API documentation with examples.
You 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.
Alternatively 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.
### Basic Navigation
#### VoiceOver
```ts
import { voiceOver } from "@guidepup/guidepup";(async () => {
await voiceOver.start();await voiceOver.next();
console.log(await voiceOver.spokenPhraseLog());await voiceOver.stop();
})();
```#### NVDA
```ts
import { nvda } from "@guidepup/guidepup";(async () => {
await nvda.start();await nvda.next();
console.log(await nvda.spokenPhraseLog());await nvda.stop();
})();
```### Complex Navigation
#### VoiceOver
```ts
import { voiceOver } from "@guidepup/guidepup";(async () => {
await voiceOver.start();await voiceOver.perform(voiceOver.keyboardCommands.findNextHeading);
console.log(await voiceOver.itemText());await voiceOver.perform(voiceOver.keyboardCommands.findNextControl);
console.log(await voiceOver.lastSpokenPhrase());await voiceOver.stop();
})();
```#### NVDA
```ts
import { nvda } from "@guidepup/guidepup";(async () => {
await nvda.start();await nvda.perform(nvda.keyboardCommands.moveToNextHeading);
console.log(await nvda.itemText());await nvda.perform(nvda.keyboardCommands.moveToNextFormField);
console.log(await nvda.lastSpokenPhrase());await nvda.stop();
})();
```## Powerful Tooling
Check out some of the other Guidepup modules:
- [`@guidepup/setup`](https://github.com/guidepup/setup/) - Set up your local or CI environment for screen reader test automation.
- [`@guidepup/playwright`](https://github.com/guidepup/guidepup-playwright/) - Seemless integration of Guidepup with Playwright.
- [`@guidepup/virtual-screen-reader`](https://github.com/guidepup/virtual-screen-reader/) - Reliable unit testing for your screen reader a11y workflows.
- [`@guidepup/jest`](https://github.com/guidepup/jest/) - Jest matchers for reliable unit testing of your screen reader a11y workflows.If 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:
```yaml
- name: Set Up Environment For Screen Reader Automation
uses: guidepup/setup-action
```## Similar
Here are some similar unaffiliated projects:
- [`at-driver`](https://github.com/w3c/at-driver)
- [`nvda-at-automation`](https://github.com/Prime-Access-Consulting/nvda-at-automation)
- [`@accesslint/voiceover`](https://github.com/AccessLint/screenreaders)
- [`screen-reader-reader`](https://github.com/phenomnomnominal/screen-reader-reader)
- [`web-test-runner-voiceover`](https://github.com/coryrylan/web-test-runner-voiceover)
- [`nvda-testing-driver`](https://github.com/kastwey/nvda-testing-driver)
- [`assistive-webdriver`](https://github.com/AmadeusITGroup/Assistive-Webdriver)
- [`screen-reader-testing-library`](https://github.com/eps1lon/screen-reader-testing-library)## Resources
- [Documentation](https://www.guidepup.dev/docs/intro)
- [API Reference](https://www.guidepup.dev/docs/api/class-guidepup)
- [Contributing](.github/CONTRIBUTING.md)
- [Changelog](https://github.com/guidepup/guidepup/releases)
- [MIT License](https://github.com/guidepup/guidepup/blob/main/LICENSE)