Errores y advertencias – comprobación de accesibilidad web en C#
Aspose.HTML for .NET proporciona el espacio de nombres Aspose.Html.Accessibility, que está destinado a todas las manipulaciones y comprobaciones relacionadas con la accesibilidad web. Este artículo examinará clases e interfaces que ayudan a recopilar información de errores y advertencias al verificar la accesibilidad de un sitio web con respecto al cumplimiento de WCAG. Prestaremos especial atención a los criterios de falla y los métodos que informan errores y veremos un ejemplo de C# sobre cómo obtener errores de accesibilidad web después de validar un documento HTML.
Puede aprender a utilizar la clase AccessibilityValidator para comprobar mediante programación la accesibilidad web en el artículo Validador de accesibilidad.
La detección de errores ayuda a identificar barreras que pueden impedir que las personas con discapacidad utilicen e interactúen con el contenido web de forma eficaz. Los errores y advertencias guían lo que se debe abordar para mejorar la accesibilidad web. Sirven como hoja de ruta para que los desarrolladores y diseñadores realicen los cambios necesarios.
IError
El IError es una interfaz pública que contiene información sobre el error de validación. Esto significa una verificación errónea, es decir, la regla no se aprobó y su resultado no coincide con Accesibilidad.
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. |
El objeto IError tiene tales significados:
* ErrorType = 1 and Success = false – esto significa que el error es crítico y no se realiza el resultado de la comprobación.
* ErrorType = 2 and Success = true – esto significa que el error no es crítico, pero tiene un carácter informativo y muestra sugerencias para una posible mejora.
El tipo de error está determinado por el tipo de equipo; si la técnica es suficiente, entonces ErrorType = 1, y es Error; de lo contrario, ErrorType = 2 – Advertencia.
Target
Target es una clase pública que contiene un elemento HTML o CSS del documento donde se encontró el error.
Property | Description |
---|---|
Item | Returns Object of html or css element. |
TargetType | Returns the type of the contained object. Object type of TargetTypes. |
TargetTypes
La enumeración TargetTypes de tipos de elementos del documento HTML que contiene el error:
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. |
Veamos el código C# para iterar a través de los resultados de la verificación de accesibilidad web, prestando especial atención a los criterios de error y los detalles de los métodos que informan errores. Ejemplo de cómo obtener detalles de errores y elementos de un documento HTML:
- Utilice la clase
RuleValidationResult e itere a través de los objetos
ruleResult
contenidos envalidationResult.Details
. Estos representan diferentes criterios de accesibilidad. - Imprima el código y la descripción del criterio y si fue exitoso o no. Para ello, utilice las propiedades Code y Description de la interfaz IRule.
- Utilice la propiedad Success para comprobar los criterios.
- Utilice los objetos
ITechniqueResult:
ruleDetail
contenidos enruleResult.Errors
. Los objetos ITechniqueResult representan resultados de reglas individuales para el criterio que informó errores. - Imprima la información sobre el método, incluido el código del método, el estado de éxito y la descripción.
- Utilice la propiedad
IError para obtener el objeto
error
deruleDetail
. ElruleDetail
representa un problema de accesibilidad específico y el objetoerror
contiene información sobre ese problema. - Utilice la propiedad
Target para recuperar el objeto
target
asociado con el error. El objetotarget
normalmente representa el elemento HTML específico, la regla CSS u otro contenido que desencadenó el error de accesibilidad. - Imprima información sobre el error. Incluye el tipo de error (error.ErrorTypeName) y el mensaje de error (error.ErrorMessage).
- Utilice la propiedad TargetType de la clase Target para verificar el tipo de objeto de destino. Dependiendo del tipo de objeto de destino, se extrae e imprime información específica en la consola.
1// Initialize a webAccessibility container
2var webAccessibility = new WebAccessibility();
3
4// Create an accessibillity validator with static instance for all rules from repository that match the builder settings
5var validator = webAccessibility.CreateValidator(ValidationBuilder.All);
6
7string documentPath = Path.Combine(DataDir, "input.html");
8
9// Initialize an object of the HTMLDocument class
10using (var document = new HTMLDocument(documentPath))
11{
12 // Check the document
13 ValidationResult validationResult = validator.Validate(document);
14
15 foreach (RuleValidationResult ruleResult in validationResult.Details)
16 {
17 // list only unsuccessful rule
18 if (!ruleResult.Success)
19 {
20 // print the code and description of the rule
21 Console.WriteLine("{0}:{1} = {2}", ruleResult.Rule.Code, ruleResult.Rule.Description, ruleResult.Success);
22 // print the results of methods with errors
23 foreach (ITechniqueResult ruleDetail in ruleResult.Errors)
24 {
25 // print the code and description of the method
26 StringBuilder str = new StringBuilder(string.Format("\n{0}: {1} - {2}",
27 ruleDetail.Rule.Code, ruleDetail.Success,
28 ruleDetail.Rule.Description));
29 // get an error object
30 var error = ruleDetail.Error;
31 // get a target object
32 var target = error.Target;
33 // get error type and message
34 str.AppendFormat("\n\n\t{0} : {1}", error.ErrorTypeName, error.ErrorMessage);
35 if (target != null)
36 {
37 // Checking the type of the contained object for casting and working with it
38 if (target.TargetType == TargetTypes.CSSStyleRule)
39 {
40 var cssRule = (ICSSStyleRule)target.Item;
41 str.AppendFormat("\n\n\t{0}", cssRule.CSSText);
42 }
43 if (ruleDetail.Error.Target.TargetType == TargetTypes.CSSStyleSheet)
44 str.AppendFormat("\n\n\t{0}", ((ICSSStyleSheet)target.Item).Title);
45
46 if (ruleDetail.Error.Target.TargetType == TargetTypes.HTMLElement)
47 str.AppendFormat("\n\n\t{0}", ((HTMLElement)target.Item).OuterHTML);
48 }
49 Console.WriteLine(str.ToString());
50 }
51 }
52 }
53}