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.
How to run automated accessibility tests
-
Create a
Config
object usingConfig.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();
-
Create a
Scanner
object using theScannerFactory
object with theConfig
.// Create scanner using myConfig var scanner = ScannerFactory.CreateScanner(myConfig);
-
Call the
Scan
method on theScanner
object.var scanResults; try { scanResults = scanner.Scan(); } catch(AxeWindowsAutomationException e) { Console.WriteLine(e.ToString()); }
-
Check the results.
Console.WriteLine("Number of errors found in scan: " + scanResults.ErrorCount);
- Use an automation test framework like UI Automation or 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
For more details and a complete code example, please visit the automation reference page
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 for more information.
Contributing
All contributions are welcome! Please read through our guidelines on contributions to this project.
For instructions on how to build the code, please visit building the code.
For an overview of the solution, please visit the solution overview.
More information
Visit the Overview of Axe.Windows 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 page for more details.
Reporting security vulnerabilities
If you believe you have found a security vulnerability in this project, please follow these steps to report it. For more information on how vulnerabilities are disclosed, see Coordinated Vulnerability Disclosure.
FAQ
Please visit our FAQ section to get answers to common questions.