Comprobación de accesibilidad web – Errores y advertencias

Cómo comprobar la accesibilidad de un sitio web

Comprobar la accesibilidad de un sitio web significa asegurarse de que todo el mundo, incluidas las personas con discapacidad, puede utilizar su sitio web o aplicación. Esto implica comprobar su contenido según directrices como WCAG, que describen cómo hacer que las experiencias digitales sean más inclusivas. Con Aspose.HTML for Java, puede automatizar este proceso analizando HTML y CSS en busca de problemas de accesibilidad, ya sea con respecto al conjunto completo de normas WCAG o centrándose en criterios específicos.

En este artículo, aprenderás a evaluar la accesibilidad de un sitio web para comprobar que cumple las WCAG utilizando las clases y métodos de los paquetes com.aspose.html.accessibility y com.aspose.html.accessibility.results. Exploraremos varias clases e interfaces que ayudan a recopilar información sobre errores y advertencias al comprobar la accesibilidad de un sitio web. Se prestará especial atención a los criterios de fallo y a los métodos para informar de errores, junto con un ejemplo Java que demuestra cómo recuperar errores de accesibilidad web después de validar un documento HTML.

Veamos un fragmento de código relacionado con la validación de accesibilidad web. El siguiente código comprueba la accesibilidad de una página HTML remota utilizando todas las reglas de validación WCAG e imprime los detalles de cualquier regla que no se haya cumplido correctamente:

  1. Utilice el constructor WebAccessibility() para crear una instancia de la clase WebAccessibility responsable de la validación de accesibilidad web.
  2. Llame al método createValidator() para crear un objeto validador.
  3. Cargar una página HTML utilizando el constructor HTMLDocument(Url).
  4. Utilice el método validate(document) para comprobar la accesibilidad de la página web. El resultado se almacena en la variable validationResult.
  5. Comprueba si la validación se ha realizado correctamente. Para cada problema de accesibilidad, imprime información sobre el código de la regla, la descripción de la regla y si la validación ha tenido éxito o ha fallado.
 1// Initialize webAccessibility container
 2WebAccessibility webAccessibility = new WebAccessibility();
 3
 4// Create an accessibility validator with static instance
 5// for all rules from repository that match the builder settings
 6AccessibilityValidator validator = webAccessibility.createValidator(ValidationBuilder.getAll());
 7
 8// Initialize an HTMLDocument object
 9final HTMLDocument document = new HTMLDocument("https://products.aspose.com/html/net/generators/video/");
10ValidationResult validationResult = validator.validate(document);
11
12// Checking for success
13if (!validationResult.getSuccess()) {
14    // Get a list of Details
15    for (RuleValidationResult detail : validationResult.getDetails()) {
16        System.out.println(String.format("%s: %s = %s",
17                detail.getRule().getCode(),
18                detail.getRule().getDescription(),
19                detail.getSuccess()
20        ));
21    }
22}
Example_ValidateWebsite hosted with ❤ by GitHub

Errores y advertencias

La detección de errores ayuda a identificar las barreras que pueden impedir a las personas con discapacidad utilizar e interactuar con los contenidos web de forma eficaz. Los errores y advertencias orientan sobre lo que hay que hacer para mejorar la accesibilidad web. Sirven de hoja de ruta para que 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 comprobación errónea, es decir, que la regla no se ha superado – y su resultado no coincide con Accessibility.

La interfaz IError describe los detalles de un problema de validación encontrado durante las comprobaciones de accesibilidad. Proporciona información clave sobre el error, incluyendo un mensaje legible por humanos a través de getErrorMessage, el estado del resultado con getSuccess, y el tipo de error como un valor numérico (getErrorType) y un nombre descriptivo (getErrorTypeName), como Error o Warning. Además, getTarget devuelve el elemento HTML o CSS específico en el que se ha encontrado el problema, lo que permite identificar y corregir con precisión los problemas de accesibilidad. Esta interfaz es esencial para interpretar e informar eficazmente de los resultados de las comprobaciones de accesibilidad.

El objeto IError tiene estos significados

* 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. 

El tipo de error viene determinado por el tipo de técnica:

Target

La clase Target representa un elemento HTML o CSS específico en el que se ha detectado un error o advertencia de accesibilidad durante la validación. Proporciona dos propiedades clave: getItem, que devuelve el objeto real (como una etiqueta HTML o una regla CSS) que causó el problema, y getTargetType, que determina si el origen del problema es un elemento HTML o un componente CSS.

TargetTypes

La enumeración TargetTypes define los posibles tipos de objetos de un documento HTML en los que se puede encontrar un error o advertencia de accesibilidad. Ayuda a clasificar el origen del problema, facilitando su identificación y resolución. La enumeración incluye tres valores:

NameValueDescription
HTMLElement0The element containing the HTMLElement from a document: standard HTML elements such as <img> or <button>.
CSSStyleRule1The element containing the CSSStyleRule from a document: specific CSS rules in stylesheets.
CSSStyleSheet2The element containing the CSSStyleSheet from a document: entire CSS stylesheets.

Esta enumeración funciona en conjunción con la clase Target para indicar exactamente qué tipo de elemento causó el resultado de la validación.

Generar informe completo de accesibilidad

Veamos el código Java para iterar por los resultados de la comprobación de accesibilidad web, prestando especial atención a los criterios de fallo y a los detalles de los métodos que informan de los errores. Ejemplo de obtención de 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.getDetails(). Estos representan diferentes criterios de accesibilidad.
  2. Imprima el código y la descripción del criterio y si ha tenido éxito o no. Para ello, utilice las propiedades getCode y getDescription de la interfaz IRule.
  3. Utiliza la propiedad getSuccess para comprobar el criterio.
  4. Utilice los objetos ITechniqueResultruleDetail contenidos en ruleResult.getErrors(). Los objetos ITechniqueResult representan resultados de reglas individuales para el criterio que informó errores.
  5. Imprime la información sobre el método, incluyendo el código del método, el estado de éxito y la descripción.
  6. Utilice la propiedad IError para obtener el objeto error del ruleDetail. El ruleDetail representa un problema de accesibilidad específico, y el objeto error contiene información sobre ese problema.
  7. Utilice la propiedad getTarget para recuperar el objeto target asociado al error. El objeto target suele representar el elemento HTML específico, la regla CSS u otro contenido que ha provocado el error de accesibilidad.
  8. Imprime información sobre el error. Incluye el tipo de error error.getErrorTypeName() y el mensaje de error error.getErrorMessage().
  9. Utilice la propiedad getTargetType de la clase Target para comprobar el tipo del objeto de destino. Dependiendo del tipo del objeto de destino, se extrae información específica y se imprime en la consola.
 1// Initialize a webAccessibility container
 2WebAccessibility webAccessibility = new WebAccessibility();
 3
 4// Create an accessibility validator with static instance
 5// for all rules from repository that match the builder settings
 6AccessibilityValidator validator = webAccessibility.createValidator(ValidationBuilder.getAll());
 7
 8String documentPath = "input.html";
 9
10// Initialize an object of the HTMLDocument class
11final HTMLDocument document = new HTMLDocument(documentPath);
12ValidationResult validationResult = validator.validate(document);
13
14for (RuleValidationResult ruleResult : validationResult.getDetails()) {
15    //  list only unsuccessful rule
16    if (!ruleResult.getSuccess()) {
17        // print the code and description of the rule
18        System.out.println(String.format("%s: %s = %s",
19                ruleResult.getRule().getCode(),
20                ruleResult.getRule().getDescription(),
21                ruleResult.getSuccess()
22        ));
23
24        // print the results of methods with errors
25        for (ITechniqueResult ruleDetail : ruleResult.getErrors()) {
26            // print the code and description of the method
27            StringBuilder str = new StringBuilder(String.format("\n{0}: {1} - {2}",
28                    ruleDetail.getRule().getCode(),
29                    ruleDetail.getSuccess(),
30                    ruleDetail.getRule().getDescription()
31            ));
32            // get an error object
33            IError error = ruleDetail.getError();
34            // get a target object
35            Target target = error.getTarget();
36            // get error type and message
37            str.append(String.format("\n\n\t%s : %s",
38                    error.getErrorTypeName(),
39                    error.getErrorMessage()
40            ));
41
42            if (target != null) {
43                // Checking the type of the contained object for casting and working with it
44                if (target.getTargetType() == TargetTypes.CSSStyleRule) {
45                    ICSSStyleRule cssRule = (ICSSStyleRule) target.getItem();
46                    str.append(String.format("\n\n\t%s",
47                            cssRule.getCSSText()
48                    ));
49                }
50                if (ruleDetail.getError().getTarget().getTargetType() == TargetTypes.CSSStyleSheet) {
51                    str.append(String.format("\n\n\t%s",
52                            ((ICSSStyleSheet) target.getItem()).getTitle()
53                    ));
54                }
55                if (ruleDetail.getError().getTarget().getTargetType() == TargetTypes.HTMLElement) {
56                    str.append(String.format("\n\n\t%s",
57                            ((HTMLElement) target.getItem()).getOuterHTML()
58                    ));
59                }
60            }
61            System.out.println(str);
62        }
63    }
64}
Example_Errors hosted with ❤ by GitHub

Para cada criterio fallido, el código enumera las descripciones de las reglas, los métodos fallidos, los mensajes de error y destaca el elemento HTML o CSS exacto en el que se encontró el problema. Este enfoque es ideal para generar un informe de accesibilidad completo y preciso, que incluya el contexto del error y diagnósticos técnicos para los desarrolladores.

Ver también

  • Encontrará consejos útiles para evaluar y mejorar la visibilidad del texto en el artículo Accesibilidad del contraste de color, que aborda la comprobación de contraste basada en WCAG con Aspose.HTML para Java.
  • Para obtener instrucciones sobre cómo comprobar la compatibilidad del contenido web con lectores de pantalla, consulte el artículo Accesibilidad de lectores de pantalla. Aprenderá a comprobar el texto alternativo y otros elementos clave.
  • Si desea aprender a ver los resultados de la validación e identificar problemas de accesibilidad web, consulte el artículo Resultados de la validación.

Aspose.HTML ofrece una herramienta en línea gratuita Comprobador de contraste de color para comprobar las relaciones de contraste en tus diseños web. Esta herramienta proporciona información sobre si los colores elegidos cumplen las normas de accesibilidad.

Texto “Comprobador de contraste de color”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.