Fehler und Warnungen – Überprüfung der Barrierefreiheit von Webseiten mit C#
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.
Property | Description |
---|---|
ErrorMessage | Returns a string message of the error or warning. |
Target | Returns an HTML or CSS element where the error was found. The returned object is of type Target. |
ErrorTypeName | Description of the presentation of the error object. It has two options error or “Warning”. |
ErrorType | Returns error type numeric value. |
Success | Result 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:
- Wenn eine Technik ein erforderliches Erfolgskriterium nicht erfüllt und dieses Kriterium erforderlich ist, um sie zu erfüllen, wird das Ergebnis als kritischer Fehler markiert, was zu
ErrorType=1
undSuccess=false
führt, und es ist ein Error. - Ist eine Technik nicht unbedingt erforderlich oder handelt es sich eher um eine bewährte Praxis oder einen Verbesserungsvorschlag als um einen schwerwiegenden Verstoß gegen die Regeln, wird sie als
ErrorType=2
undSuccess=true
gekennzeichnet und ist eine Warnung.
Target
Das Target ist eine öffentliche Klasse, die ein HTML- oder CSS-Element des Dokuments enthält, in dem der Fehler gefunden wurde.
Property | Description |
---|---|
Item | Returns Object of html or css element. |
TargetType | Returns 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:
Value | Description |
---|---|
HTMLElement | The element containing the HTMLElement from document. |
CSSStyleRule | The element containing the CSSStyleRule from document. |
CSSStyleSheet | The 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:
- Verwenden Sie die Klasse
RuleValidationResult und iterieren Sie durch die in
validationResult.Details
enthaltenenruleResult
-Objekte. Diese repräsentieren verschiedene Zugänglichkeitskriterien. - 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.
- Verwenden Sie die Eigenschaft Erfolg, um die Kriterien zu prüfen.
- Verwenden Sie die Objekte
ITechniqueResult –
ruleDetail
, die inruleResult.Errors
enthalten sind. Die ITechniqueResult-Objekte stellen einzelne Regelergebnisse für das Kriterium dar, das Fehler gemeldet hat. - Druckt die Informationen über die Methode, einschließlich des Methodencodes, des Erfolgsstatus und der Beschreibung.
- Verwenden Sie die Eigenschaft
IError, um das Objekt
error
ausruleDetail
zu erhalten. DasruleDetail
stellt ein spezifisches Problem der Zugänglichkeit dar, und daserror
-Objekt enthält Informationen über dieses Problem. - Verwenden Sie die Eigenschaft
Target, um das mit dem Fehler verbundene Objekt
target
abzurufen. Dastarget
-Objekt stellt in der Regel das spezifische HTML-Element, die CSS-Regel oder einen anderen Inhalt dar, der den Eingabehilfenfehler ausgelöst hat. - Druckt Informationen über den Fehler. Sie umfassen den Fehlertyp (error.ErrorTypeName) und die Fehlermeldung (error.ErrorMessage).
- 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.