Fehler und Warnungen – Überprüfung der Barrierefreiheit von Webseiten mit C#

Contents
[ Hide Show ]

Aspose.HTML for .NET bietet den Aspose.Html.Accessibility Namespace, der für alle Manipulationen und Überprüfungen im Zusammenhang mit der Barrierefreiheit im Web gedacht ist. In diesem Artikel werden Klassen und Schnittstellen untersucht, die beim Sammeln von Fehler- und Warninformationen helfen, wenn die Zugänglichkeit einer Website auf die Einhaltung der WCAG überprüft wird. Besonderes Augenmerk wird auf die Fehlerkriterien und Methoden gelegt, die Fehler melden, und es wird ein C#-Beispiel für die Ermittlung von Fehlern bei der Barrierefreiheit nach der Validierung eines HTML-Dokuments betrachtet.

In dem Artikel Accessibility Validator – Überprüfung der Zugänglichkeit von Websites in C# erfahren Sie, wie Sie die Klasse AccessibilityValidator verwenden können, um die Barrierefreiheit von Websites programmatisch zu prüfen.

Die Erkennung von Fehlern hilft bei der Identifizierung von Barrieren, die Menschen mit Behinderungen daran hindern können, Webinhalte effektiv zu nutzen und mit ihnen zu interagieren. Fehler und Warnungen geben Hinweise darauf, was zur Verbesserung der Barrierefreiheit im Web getan werden muss. Sie dienen Entwicklern und Designern als Wegweiser für notwendige Änderungen.

IError

Die IError ist eine öffentliche Schnittstelle, die Informationen über den Validierungsfehler enthält. Dies bedeutet eine fehlerhafte Prüfung, d.h. die Regel wurde nicht bestanden – und ihr Ergebnis entspricht nicht der Barrierefreiheit.

PropertyDescription
ErrorMessageReturns a string message of the error or warning.
TargetReturns an HTML or CSS element where the error was found. The returned object is of type Target.
ErrorTypeNameDescription of the presentation of the error object. It has two options error or “Warning”.
ErrorTypeReturns error type numeric value.
SuccessResult of this object.

IError-Objekt hat solche Bedeutungen:

* ErrorType = 1 and Success = false – this means that the error is critical, and the result of the check is not performed.
* ErrorType = 2 and Success = true – this means that the error is not critical but has an informational character and displays hints for possible improvement. 

Die Art des Fehlers wird durch die Art der Technik bestimmt:

Target

Das Target ist eine öffentliche Klasse, die ein HTML- oder CSS-Element des Dokuments enthält, in dem der Fehler gefunden wurde.

PropertyDescription
ItemReturns Object of html or css element.
TargetTypeReturns the type of the contained object. Object type of TargetTypes.

TargetTypes

Die TargetTypes Aufzählung von Elementtypen aus dem HTML-Dokument, das den Fehler enthält:

ValueDescription
HTMLElementThe element containing the HTMLElement from document.
CSSStyleRuleThe element containing the CSSStyleRule from document.
CSSStyleSheetThe element containing the CSSStyleSheet from document.

Schauen wir uns den C#-Code für die Iteration durch die Ergebnisse der Barrierefreiheitsprüfung an, wobei wir besonders auf die Fehlerkriterien und die Details der Methoden achten, die Fehler melden. Beispiel für das Abrufen von Fehlerdetails und Elementen eines HTML-Dokuments:

  1. Verwenden Sie die Klasse RuleValidationResult und iterieren Sie durch die in validationResult.Details enthaltenen ruleResult-Objekte. Diese repräsentieren verschiedene Zugänglichkeitskriterien.
  2. Drucken Sie den Code und die Beschreibung des Kriteriums und ob es erfolgreich war oder nicht. Verwenden Sie dazu die Eigenschaften Code und Beschreibung der Schnittstelle IRule.
  3. Verwenden Sie die Eigenschaft Erfolg, um die Kriterien zu prüfen.
  4. Verwenden Sie die Objekte ITechniqueResultruleDetail, die in ruleResult.Errors enthalten sind. Die ITechniqueResult-Objekte stellen einzelne Regelergebnisse für das Kriterium dar, das Fehler gemeldet hat.
  5. Druckt die Informationen über die Methode, einschließlich des Methodencodes, des Erfolgsstatus und der Beschreibung.
  6. Verwenden Sie die Eigenschaft IError, um das Objekt error aus ruleDetail zu erhalten. Das ruleDetail stellt ein spezifisches Problem der Zugänglichkeit dar, und das error-Objekt enthält Informationen über dieses Problem.
  7. Verwenden Sie die Eigenschaft Target, um das mit dem Fehler verbundene Objekt target abzurufen. Das target-Objekt stellt in der Regel das spezifische HTML-Element, die CSS-Regel oder einen anderen Inhalt dar, der den Eingabehilfenfehler ausgelöst hat.
  8. Druckt Informationen über den Fehler. Sie umfassen den Fehlertyp (error.ErrorTypeName) und die Fehlermeldung (error.ErrorMessage).
  9. Verwenden Sie die Eigenschaft TargetType der Klasse Target, um den Typ des Zielobjekts zu überprüfen. Je nach Typ des Zielobjekts werden bestimmte Informationen extrahiert und auf der Konsole ausgegeben.
 1// Check HTML for WCAG compliance and output failed rule codes and error messages
 2
 3// Initialize a webAccessibility container
 4WebAccessibility webAccessibility = new WebAccessibility();
 5
 6// Create an accessibillity validator with static instance for all rules from repository that match the builder settings
 7AccessibilityValidator validator = webAccessibility.CreateValidator(ValidationBuilder.All);
 8
 9string documentPath = Path.Combine(DataDir, "input.html");
10
11// Initialize an object of the HTMLDocument class
12using (HTMLDocument document = new HTMLDocument(documentPath))
13{
14    // Check the document
15    ValidationResult validationResult = validator.Validate(document);
16
17    foreach (RuleValidationResult ruleResult in validationResult.Details)
18    {
19        //  list only unsuccessful rule
20        if (!ruleResult.Success)
21        {
22            // print the code and description of the rule
23            Console.WriteLine("{0}:{1} = {2}", ruleResult.Rule.Code, ruleResult.Rule.Description, ruleResult.Success);
24            // print the results of methods with errors
25            foreach (ITechniqueResult ruleDetail in ruleResult.Errors)
26            {
27                // print the code and description of the method
28                StringBuilder str = new StringBuilder(string.Format("\n{0}: {1} - {2}",
29                                                           ruleDetail.Rule.Code, ruleDetail.Success,
30                                                           ruleDetail.Rule.Description));
31                // get an error object 
32                IError error = ruleDetail.Error;
33                // get a target object 
34                Target target = error.Target;
35                // get error type and message 
36                str.AppendFormat("\n\n\t{0} : {1}", error.ErrorTypeName, error.ErrorMessage);
37                if (target != null)
38                {
39                    // Checking the type of the contained object for casting and working with it
40                    if (target.TargetType == TargetTypes.CSSStyleRule)
41                    {
42                        ICSSStyleRule cssRule = (ICSSStyleRule)target.Item;
43                        str.AppendFormat("\n\n\t{0}", cssRule.CSSText);
44                    }
45                    if (ruleDetail.Error.Target.TargetType == TargetTypes.CSSStyleSheet)
46                        str.AppendFormat("\n\n\t{0}", ((ICSSStyleSheet)target.Item).Title);
47
48                    if (ruleDetail.Error.Target.TargetType == TargetTypes.HTMLElement)
49                        str.AppendFormat("\n\n\t{0}", ((HTMLElement)target.Item).OuterHTML);
50                }
51                Console.WriteLine(str.ToString());
52            }
53        }
54    }
55}

Siehe auch

  • Im Kapitel Zugänglichkeitsprüfung erfahren Sie, wie Sie die Zugänglichkeit einer Website auf die Einhaltung der WCAG überprüfen oder nur bestimmte Kriterien erfüllen können, indem Sie Klassen und Methoden der Namespaces Aspose.Html.Accessibility und Aspose.Html.Accessibility.Results verwenden.
  • Besuchen Sie den Artikel über Multimedia-Zugänglichkeit, wenn Sie erfahren möchten, wie Sie Multimedia-Inhalte inklusiv und für ein breiteres Publikum, einschließlich Menschen mit Behinderungen, zugänglich machen können. Dieser Artikel enthält C#-Beispiele zur Überprüfung der besten Praktiken für die Zugänglichkeit von Multimedia-Inhalten gemäß den WCAG-Standards.
  • Schauen Sie sich den Artikel Farbkontrast in C# prüfen an, wenn Sie erfahren möchten, wie Sie den Kontrast Ihrer Webinhalte richtig an die WCAG-Standards, die weltweite Autorität für Barrierefreiheit im Web, anpassen. Sie erfahren, wie Sie die Zugänglichkeit von Farbkontrasten mit C# testen und Ihre Webinhalte für alle Benutzer leicht lesbar machen können.

Aspose.HTML offers free online Web-Zugänglichkeits-Checker. This tool scans web pages, validates them for WCAG compliance, identifies problems, and suggests improvements. Get instant insights into your website’s compliance, allowing you to determine the scope of necessary corrections and the gap between the current state of your website or HTML document and WCAG requirements.

Text “Web-Zugänglichkeits-Checker”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.