https://github.com/microsoft/axe-windows
Automated accessibility testing engine for Windows applications
https://github.com/microsoft/axe-windows
accessibility-insights hacktoberfest
Last synced: about 1 month ago
JSON representation
Automated accessibility testing engine for Windows applications
- Host: GitHub
- URL: https://github.com/microsoft/axe-windows
- Owner: microsoft
- License: mit
- Created: 2019-04-19T18:29:40.000Z (about 6 years ago)
- Default Branch: main
- Last Pushed: 2025-03-25T10:49:39.000Z (about 2 months ago)
- Last Synced: 2025-04-08T10:11:31.305Z (about 1 month ago)
- Topics: accessibility-insights, hacktoberfest
- Language: C#
- Homepage:
- Size: 5.06 MB
- Stars: 144
- Watchers: 17
- Forks: 65
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Contributing: Contributing.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
## Overview
Axe.Windows is a NuGet package for running automated accessibility tests on Windows® applications.
To get the latest version of the Axe.Windows NuGet package, visit
[Axe.Windows on NuGet.org](https://www.nuget.org/packages/Axe.Windows/).### How to run automated accessibility tests
1. Create a `Config` object using `Config.Builder`.
// Create config to specifically target a process
var myConfigBuilder = Config.Builder.ForProcessId(1234);// Optional: configure to create an A11yTest file
myConfigBuilder.WithOutputFileFormat(OutputFileFormat.A11yTest);// Optional: configure to output the file to a specific directory (otherwise, current directory will be used)
myConfigBuilder.WithOutputDirectory(".\test-directory");// Ready to use config
var myConfig = myConfigBuilder.build();2. Create a `Scanner` object using the `ScannerFactory` object with the `Config`.
// Create scanner using myConfig
var scanner = ScannerFactory.CreateScanner(myConfig);3. Call the `Scan` or `ScanAsync` method on the `Scanner` object, to scan synchronously or asynchronously respectively.
var scanOutput = scanner.Scan(null); // Synchronously scan with default options.
4. Check the output.
Console.WriteLine("Number of errors found in scan of first top-level window: " + scanOutput.WindowScanOutputs.first().ErrorCount);
- Use an automation test framework like [UI Automation](https://docs.microsoft.com/en-us/dotnet/framework/ui-automation/ui-automation-overview) or [WinAppDriver](https://github.com/microsoft/WinAppDriver) to manipulate your application
- Scan your application as many times as you need to
- Axe.Windows returns results with each scan and can optionally save each scan's results to an a11ytest file you can open with [Accessibility Insights](https://accessibilityinsights.io/docs/en/windows/overview)For more details and a complete code example, please visit the [automation reference page](./docs/AutomationReference.md)
## Command line interface
Axe.Windows also has a command line interface (CLI) to simplify automated testing in build pipelines. Please check out the
[command line interface readme](./src/CLI/README.MD)
for more information.## Contributing
All contributions are welcome! Please read through our guidelines on [contributions](./Contributing.md) to this project.
For instructions on how to build the code, please visit [building the code](./docs/BuildingTheCode.md).
For an overview of the solution, please visit the [solution overview](./docs/solution.md).
### More information
Visit the [Overview of Axe.Windows](./docs/Overview.md) page.
## Data/Telemetry
Axe.Windows does not collect any telemetry on its own. However, the package does provide telemetric data for use by calling applications.
Please see the [Telemetry](./docs/Telemetry.md) page for more details.## Reporting security vulnerabilities
If you believe you have found a security vulnerability in this project, please follow [these steps](https://technet.microsoft.com/en-us/security/ff852094.aspx) to report it. For more information on how vulnerabilities are disclosed, see [Coordinated Vulnerability Disclosure](https://technet.microsoft.com/en-us/security/dn467923).## FAQ
Please visit our [FAQ section](./docs/FAQ.md) to get answers to common questions.