Skip to content
Automated accessibility testing engine for Windows applications
C# Other
  1. C# 98.4%
  2. Other 1.6%
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github chore: update issue templates to use headings and comments (#157) Sep 30, 2019
brand adding smaller logo for readme Apr 24, 2019
build Merge branch 'AdjustSigningValidation' Oct 18, 2019
docs Add .Net Standard-related content to documentation (#117) Jul 29, 2019
keys Moving AxeWindows code and other files in the repo (#2) Apr 24, 2019
src Update to Roslyn 2.9.6. No code changes were required (#163) Oct 4, 2019
tools Use VS2019 build environment in both PR and signed builds (#160) Oct 5, 2019
.gitattributes Moving AxeWindows code and other files in the repo (#2) Apr 24, 2019
.gitignore Initial commit Apr 19, 2019 Fix heading title case (#96) Jul 10, 2019
LICENSE Initial commit Apr 19, 2019 Update docs to move automation info to the foreground and contributio… Jul 11, 2019
thirdpartynotices.html Moving AxeWindows code and other files in the repo (#2) Apr 24, 2019


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

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
     // Optional: configure to output the file to a specific directory (otherwise, current directory will be used)
     // Ready to use config
     var myConfig =;
  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 method on the Scanner object.

     var scanResults;
         scanResults = scanner.Scan();
     catch(AxeWindowsAutomationException e)
  4. 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


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.


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.


Please visit our FAQ section to get answers to common questions.

You can’t perform that action at this time.