Rédaction de tests pour axe DevTools for Web en C#

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

Comment écrire des tests efficaces pour l'accessibilité en utilisant axe DevTools for Web pour C#

Not for use with personal data

Ce guide fournit des exemples de tests pour NUnit et MSTest. Tous les tests utilisent la classe AxeReporting pour créer les résultats de rapport initiaux. Pour plus d'informations sur les classes de test axe DevTools, visitez la Référence API C#.

Un test de base par défaut

Le test suivant fait des appels axe.Analyze() pour analyser la page, compare les résultats à l'assertion et crée une sortie de rapport initiale à l'aide de la AxeReporting classe.

Syntaxe NUnit

[Test]
public void AccessibilityAnalyzeAsync()
{
  var results = axe.Analyze();

  AxeReporting.CreateResultsOutput(results, "basic analyze");

  Assert.That(results.Findings.Violations.Count, Is.EqualTo(0));
}

Syntaxe MSTest

[TestMethod]
public void AccessibilityAnalyzeAsync()
{
  var results = axe.Analyze();

  AxeReporting.CreateResultsOutput(results, "basic analyze");

  Assert.IsTrue(results.Findings.Violations.Count == 0);
}

Tester les états et les flux des pages

Ce cas de test fait des appels axe.Analyze() pour analyser la page dans différents états ou différents flux de la page, compare les résultats à l'assertion et crée une sortie de rapport initiale :

Syntaxe NUnit

[Test]
public void AccessibilityAnalyzeWithPageFlow()
{
  var homeResults = axe.Analyze();
  AxeReporting.CreateResultsOutput(homeResults, "home-page");

  driver.FindElementByName("q").SendKeys("csun 2019 accepting new papers for presentations");

  driver.FindElementById("go").Click();

  var searchResults = axe.Analyze();
  AxeReporting.CreateResultsOutput(searchResults,"search-results-page");

  Assert.That(searchResults.Findings.Violations.Count, Is.EqualTo(0));
}

Syntaxe MSTest

[TestMethod]
public void AccessibilityAnalyzeWithPageFlow()
{
  var homeResults = axe.Analyze();
  AxeReporting.CreateResultsOutput(homeResults, "home-page");

  driver.FindElementByName("q").SendKeys("csun 2019 accepting new papers for presentations");

  driver.FindElementById("go").Click();

  var searchResults = axe.Analyze();

  AxeReporting.CreateResultsOutput(searchResults, "search-results-page");

  Assert.IsTrue(searchResults.Findings.Violations.Count == 0);
}

Tester uniquement avec des règles spécifiques

Ce test fait appel axe.Analyze() à analyser la page avec des règles spécifiées :

Syntaxe NUnit

[Test]
public void AccessibilityAnalyzeWithSpecificRules()
{
  var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("specifc rules")).WithRules("heading-order", "link-name");
  var results = axe.Analyze();

  System.Console.WriteLine(results);
  
  AxeReporting.CreateResultsOutput(results, "specific-rules");

  Assert.That(results.Findings.Violations.Count, Is.EqualTo(0));
}

Tester avec des règles spécifiques désactivées

Ce test appelle axe.Analyze() à analyser avec des règles spécifiques désactivées :

Syntaxe NUnit

[Test]
public void AccessibilityAnalyzeWithDisabledRules()
{
  var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("disabled rules")).DisablingRules("heading-order", "link-name");

  var results = axe.Analyze();

  AxeReporting.CreateResultsOutput(results, "disabled-rules");

  Assert.That(results.Findings.Violations.Count, Is.EqualTo(0));
}

Syntaxe MSTest

[TestMethod]
public void AccessibilityAnalyzeWithDisabledRules()
{
  var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("disabled rules")).DisablingRules("heading-order", "link-name");

  var results = axe.Analyze();

  AxeReporting.CreateResultsOutput(results, "disabled-rules");

  Assert.IsTrue(results.Findings.Violations.Count == 0);
}

Tester avec un ensemble de règles spécifique

Ce test effectue un appel axe.Analyze() pour analyser la page avec un ensemble de règles spécifié, dans ce cas 508 :

Syntaxe NUnit

[Test]
public void AccessibilityAnalyzeWith508Ruleset()
{
  var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("specific ruleset")).WithRuleset("508");
  
  var results = axe.Analyze();
  
  AxeReporting.CreateResultsOutput(results, "508-rules");
  
  Assert.That(results.Findings.Violations.Count, Is.EqualTo(0));
}

Syntaxe MSTest

[TestMethod]
public void AccessibilityAnalyzeWith508Ruleset()
{
  var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("specific ruleset")).WithRuleset("508");

  var results = axe.Analyze();

  AxeReporting.CreateResultsOutput(results, "508-rules");

  Assert.IsTrue(results.Findings.Violations.Count == 0);
}

Testing a specific portion of the page (scoped test)

Le test suivant appelle axe.Analyze(); pour exclure le contenu associé à des tests de l'ID #header et garantit que le contenu avec l'ID #homecontent est testé :

Syntaxe NUnit

[Test]
public void IncludingAndExcludingElements()
{
  var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("excluding and including ruleset")).Excluding("#header").Including("#homecontent");

  var results = axe.Analyze();

  AxeReporting.CreateResultsOutput(results, "Including-Excluding rules");

  Assert.That(results.Findings.Violations.Count, Is.EqualTo(0));
}

Syntaxe MSTest

[TestMethod]
public void IncludingAndExcludingElements()
{
  var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("excluding and including ruleset")).Excluding("#header").Including("#homecontent");

  var results = axe.Analyze();

  AxeReporting.CreateResultsOutput(results, "Including-Excluding rules");

  Assert.IsTrue(results.Findings.Violations.Count == 0);
  }

Exemples téléchargeables

Téléchargez et exécutez les deux exemples axe DevTools C# NUnit et MSTest :

Reportez-vous aux README.md fichiers dans les dossiers de packages téléchargés attestCSharpNUnit/attestCSharpExample attestCSharpMSTest/attestMSTestExample pour connaître les conditions préalables, les informations d'intégration, les cas de test inclus et la configuration des rapports dans chaque exemple de package.