Schreiben von Tests für axe DevTools for Web in 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

So schreiben Sie effektive Tests für die Barrierefreiheit mit axe DevTools for Web für C#

Not for use with personal data

Dieses Handbuch enthält Beispieltests für NUnit und MSTest. Alle Tests verwenden die AxeReporting Klasse, um erste Berichtsergebnisse zu erstellen. Weitere Informationen zu den Testklassen von axe DevTools finden Sie in der C# API-Referenz.

Ein grundlegender Standardtest

Der folgende Test ruft axe.Analyze() auf, um die Seite zu analysieren, vergleicht die Ergebnisse mit der Assert-Anweisung und erstellt unter Verwendung der AxeReporting Klasse eine erste Berichtsausgabe.

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

Testen von Seitenzuständen und -flüssen

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 Zusicherung und erstellt eine erste Berichtsausgabe:

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 nur mit bestimmten Regeln

Dieser Test ruft axe.Analyze() 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 bestimmten deaktivierten Regeln

Dieser Test ruft axe.Analyze() die zum Scannen mit deaktivierten spezifischen Regeln auf:

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 bestimmten Regelsatz

Dieser Test ruft axe.Analyze() die Seite mit einem angegebenen Regelsatz zu scannen auf, 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);
}

Testing a specific portion of the page (scoped test)

Die folgenden Testaufrufe schließen den Inhalt aus, der mit der axe.Analyze(); ID verknüpft ist, vom Test aus und stellen sicher, dass der Inhalt mit der #header ID getestet wird: #homecontent

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

Herunterladbare Beispiele

Laden Sie die C# NUnit- und MSTest-Beispiele von axe DevTools herunter und führen Sie sie aus:

In den README.md Dateien in den heruntergeladenen attestCSharpNUnit/attestCSharpExample und attestCSharpMSTest/attestMSTestExample Paketordnern finden Sie Voraussetzungen, Integrationsinformationen, enthaltene Testfälle und die Einrichtung der Berichterstellung in jedem Beispielpaket.