Errores y advertencias – comprobación de accesibilidad web en C#

Contents
[ Hide Show ]

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.

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.

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.

PropertyDescription
ItemReturns Object of html or css element.
TargetTypeReturns 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:

ValueDescription
HTMLElementThe element containing the HTMLElement from document.
CSSStyleRuleThe element containing the CSSStyleRule from document.
CSSStyleSheetThe 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:

  1. Utilice la clase RuleValidationResult e itere a través de los objetos ruleResult contenidos en validationResult.Details. Estos representan diferentes criterios de accesibilidad.
  2. 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.
  3. Utilice la propiedad Success para comprobar los criterios.
  4. Utilice los objetos ITechniqueResult: ruleDetail contenidos en ruleResult.Errors. Los objetos ITechniqueResult representan resultados de reglas individuales para el criterio que informó errores.
  5. Imprima la información sobre el método, incluido el código del método, el estado de éxito y la descripción.
  6. Utilice la propiedad IError para obtener el objeto error de ruleDetail. El ruleDetail representa un problema de accesibilidad específico y el objeto error contiene información sobre ese problema.
  7. Utilice la propiedad Target para recuperar el objeto target asociado con el error. El objeto target normalmente representa el elemento HTML específico, la regla CSS u otro contenido que desencadenó el error de accesibilidad.
  8. Imprima información sobre el error. Incluye el tipo de error (error.ErrorTypeName) y el mensaje de error (error.ErrorMessage).
  9. 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}
view raw Example-Errors hosted with ❤ by GitHub
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.