Tests für Axe DevTools for Web in C# schreiben

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

Wie man effektive Tests für Barrierefreiheit mit Axe DevTools for Web für C# schreibt

Not for use with personal data

Dieser Leitfaden bietet Beispieltests für sowohl NUnit als auch MSTest. Alle Tests verwenden die AxeReporting-Klasse, um anfängliche Berichterstattungsergebnisse zu erstellen. Für weitere Informationen über die Axe DevTools-Testklassen besuchen Sie die C# API-Referenz.

Ein grundlegender Standardtest

Der folgende Test ruft axe.Analyze() auf, um die Seite zu analysieren, vergleicht die Ergebnisse mit der Assertion und erstellt anfängliche Berichtsausgaben unter Verwendung der AxeReporting-Klasse.

NUnit-Syntax

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

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

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

MSTest-Syntax

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

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

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

Seitenzustände und -abläufe testen

Dieser Testfall ruft axe.Analyze() auf, um die Seite in verschiedenen Zuständen oder verschiedenen Abläufen der Seite zu scannen, vergleicht die Ergebnisse mit der Assertion und erstellt anfängliche Berichtsausgaben:

NUnit-Syntax

[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));
}

MSTest-Syntax

[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);
}

Testen mit nur spezifischen Regeln

Dieser Test ruft axe.Analyze() auf, um die Seite mit angegebenen Regeln zu scannen:

NUnit-Syntax

[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));
}

Testen mit deaktivierten spezifischen Regeln

Dieser Test ruft axe.Analyze() auf, um die mit deaktivierten spezifischen Regeln zu scannen:

NUnit-Syntax

[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));
}

MSTest-Syntax

[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);
}

Testen mit einem spezifischen Regelset

Dieser Test ruft axe.Analyze() auf, um die Seite mit einem angegebenen Regelset zu scannen, in diesem Fall 508:

NUnit-Syntax

[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));
}

MSTest-Syntax

[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);
}

Testen eines spezifischen Seitenbereichs (abgegrenzter Test)

Der folgende Test ruft axe.Analyze(); auf, um den mit der #header ID verbundenen Inhalt vom Test auszuschließen und stellt sicher, dass der Inhalt mit der #homecontent ID getestet wird:

NUnit-Syntax

[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));
}

MSTest-Syntax

[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);
  }