Compartir a través de


Compatibilidad de accesibilidad en ASP.NET

Actualización: noviembre 2007

ASP.NET puede ayudarle a crear aplicaciones Web con un acceso más fácil para personas con discapacidades. Las aplicaciones Web accesibles permiten utilizar tecnologías de ayuda, como lectores de pantalla, para trabajar con páginas Web. Las aplicaciones Web accesibles ofrecen las ventajas siguientes:

  • Pueden utilizarlas un mayor número de personas.

  • Implican principios de diseño que con frecuencia benefician a todos los usuarios, no sólo a los que tienen discapacidades.

  • Cumplen los requisitos de muchas instituciones en el sentido de que todas las aplicaciones Web sean accesibles.

El conocimiento de los consejos para la accesibilidad y de cómo puede ayudarle ASP.NET a seguirlos le permitirán crear aplicaciones con las que las personas que tienen discapacidades tendrán la posibilidad de interaccionar con mayor facilidad.

Consejos para la accesibilidad

Hay distintas organizaciones que publican consejos acerca de cómo crear aplicaciones accesibles. A continuación se indican algunas directrices de amplia difusión:

  • Web Content Accessibility Guidelines 1.0 (WCAG), consejos para la accesibilidad a contenido Web.

    El consorcio World Wide Web (W3C) desarrolla estos estándares, que constituyen la base para muchas normas de accesibilidad. Entre éstas se encuentran normas de accesibilidad que utilizan gobiernos de todo el mundo.

    Si desea conocer los consejos para la accesibilidad a contenido Web, visite el sitio Web del consorcio World Wide Web (W3C).

    Las directrices WCAG definen distintos niveles de prioridades, según una escala del 1 al 3 para los puntos de control que se asocian a cada consejo. Algunas instituciones exigen que los sitios Web cumplan todos los puntos de control de prioridad 1 y 2.

  • Sección 508.

    El gobierno de Estados Unidos define en la sección 508 de la Ley de Rehabilitación (Rehabilitation Act) las normas de accesibilidad, que son similares a las directrices WCAG.

    Para conocer las directrices de la sección 508, visite http://www.section508.gov.

  • Consejos para la accesibilidad de Microsoft.

    Para conocer los consejos para la accesibilidad de Microsoft, visite Accesibilidad de Microsoft y, en MSDN Library, busque el artículo, en inglés, "Accessibility Design Guidelines for the Web" (consejos de diseño para la accesibilidad en Web).

Probar la accesibilidad

Hay herramientas disponibles a través de terceros que ofrecen ciertas posibilidades para probar en qué medida cumplen las páginas Web los estándares de accesibilidad.

Si tiene un entorno de desarrollo, como Microsoft Visual Studio 2005, es posible que el entorno incluya herramientas para probar la accesibilidad. Para obtener más información, busque en la documentación del producto. Sin embargo, las herramientas de validación de la accesibilidad en tiempo de diseño no permiten probar los resultados que se generan dinámicamente, como el marcado que representan los controles de servidor de ASP.NET o el código que se programa. Además de utilizar herramientas de validación de accesibilidad en tiempo de diseño, deberá probar el resultado de las páginas.

Una comprobación de accesibilidad automatizada no permite realizar un diagnóstico completo de la accesibilidad de una página o de un sitio Web. Muchos de los consejos para la accesibilidad apelan a su criterio para que determine si las características de una página cumplen la directriz en cuestión. Por ejemplo, con una prueba automatizada se puede determinar si se ha proporcionado texto alt para todas las imágenes de la página. Sin embargo, la prueba automatizada no puede determinar si el texto alt describe la imagen. Asimismo, una prueba automatizada tampoco puede determinar de forma objetiva si los colores que se utilizan en la página son adecuados para los lectores que precisan texto de alto contraste. Por lo tanto, para crear aplicaciones realmente accesibles debe familiarizarse con los pormenores y el propósito de los consejos para la accesibilidad a fin de poder aplicarlos en la creación de páginas. En otro ejemplo de comprobación de accesibilidad que no podría realizar una herramienta, debe haber texto alt para una imagen exclusivamente gráfica, como un borde de tabla redondeado. De lo contrario, un lector de pantalla leerá el archivo de imagen. Si el texto alt está vacío, el lector de pantalla omitirá correctamente la imagen.

Características de accesibilidad en ASP.NET

En la mayoría de las ocasiones, los controles ASP.NET representan marcado de modo que se generan páginas con arreglo a los estándares de accesibilidad o exponen propiedades que se pueden establecer para que las páginas resulten accesibles. Sin embargo, hay veces en que los controles ASP.NET representan resultados que no cumplen con los estándares de accesibilidad. Para obtener información detallada, vea Controles y accesibilidad en ASP.NET.

Características generales de los controles que admiten la accesibilidad

Generalmente, los controles ASP.NET cumplen los requisitos de accesibilidad tal como se indica a continuación:

  • Proporcionan un medio de especificar un equivalente de texto para cualquier elemento que no es de texto.

  • No tienen dependencias con respecto a los colores.

  • Representan títulos y encabezados de columnas de tablas con tablas.

  • Representan los elementos fieldset y legend que tienen elementos div.

  • No necesitan hojas de estilos.

  • Admiten el establecimiento de posiciones mediante propiedades de estilo.

  • Asocian etiquetas con controles.

  • Generan secuencias de comandos de cliente independientes del dispositivo; por ejemplo, secuencias de comandos que no sólo responden a los clics del mouse (ratón).

Acceso mediante el teclado

Una característica importante de la accesibilidad es que la funcionalidad de la página esté disponible para formas de entrada de datos alternativas. En la práctica, esto significa que cualquier tarea que se puede realizar con el mouse (ratón) también puede llevarse a cabo con el teclado.

ASP.NET permite incluir compatibilidad con el teclado para las páginas por los medios que se indican a continuación:

  • Puede establecer el orden de tabulación para los controles mediante la propiedad TabIndex.

  • Puede especificar un botón predeterminado para un formulario o un control Panel si establece la propiedad DefaultButton.

  • Puede establecer el foco en los controles de entrada, ya sea a través de métodos como SetFocus o si establece la propiedad DefaultFocus para un formulario.

  • Puede definir teclas de acceso para los controles de botón si establece la propiedad AccessKey.

  • Puede utilizar controles Label con cuadros de texto, que le permiten definir teclas de acceso para los cuadros de texto. Para obtener información detallada, vea Cómo: Utilizar controles Label de servidor Web como títulos.

Imágenes y texto alternativo

Los consejos para la accesibilidad recomiendan que se proporcione en la página texto alternativo o imágenes con un propósito funcional, como servir de botones o imágenes representadas por controles de datos. Esto permite a los lectores de pantalla informar de la función de cada imagen de la página. Si una imagen no tiene ningún propósito funcional, sino decorativo, el texto alternativo debe establecerse como una cadena vacía para que los lectores de pantalla omitan la imagen.

De forma predeterminada, dado que los controles Image, ImageButton y ImageMap no pueden generar automáticamente texto significativo, estos controles no representan ningún texto alternativo. En su lugar, debería proporcionarse el texto. Los comprobadores de accesibilidad indican que los controles de imagen sin texto alternativo infringen las directrices.

Para los controles de imagen, debería realizar una de las siguientes operaciones:

  • Establezca la propiedad AlternateText con texto significativo.

  • Establezca la propiedad GenerateEmptyAlternateText como true para que un control ASP.NET Image represente una cadena vacía como el texto alternativo. Los comprobadores de accesibilidad interpretan el texto alternativo vacío como una indicación que ha marcado deliberadamente la imagen como no importante.

Controles con imágenes inherentes o vínculos

Algunos controles, como TreeView, Menu y los elementos Web, representan imágenes o vínculos como parte de su marcado. En estos casos, el control crea el texto alternativo para cada imagen o vínculo que describe su función.

Por ejemplo, el control TreeView representa las imágenes de los botones de expansión y contracción de cada nodo. El control TreeView genera texto alternativo para estas imágenes a partir del texto del nodo. De forma predeterminada, el texto alternativo correspondiente a la imagen para expandir un nodo con el texto de inicio se representa como inicio expandido. Puede especificar su propio texto alternativo si establece las propiedades ExpandImageToolTip y CollapseImageToolTip para el control TreeView.

Asimismo, el comando Menú representa el texto alternativo de los vínculos que genera para expandir y contraer elementos de menú. Los botones de una barra de título de un control de elementos Web representan de igual forma texto alternativo que describe la función de cada botón.

Omitir vínculos repetitivos

Los productos de tecnología de ayuda, como los lectores de pantalla, deben enumerar todos los vínculos que se encuentran en la página en el orden en que aparecen. En ocasiones, como en el caso de un menú de una página principal que aparece en todas las páginas del sitio Web, el lector de pantalla se verá obligado a leer todas las entradas de cada página antes de llegar al contenido principal de la página. Para estos casos, los consejos para la accesibilidad recomiendan que se proporcione a los usuarios un medio de omitir las listas con vínculos repetitivos. Los controles siguientes implementan una forma de omitir los vínculos repetitivos:

Cada uno de estos controles admite una propiedad SkipLinkText. Si se establece esta propiedad como cadena (que puede incluir cualquier texto), el control representa antes que los vínculos un delimitador que incluye una imagen .gif invisible con texto alternativo. De forma predeterminada, el texto alternativo es Omitir vínculos de navegación, pero puede configurarlo. El delimitador establece un vínculo con otro delimitador que sigue el control. Esto permite a los lectores de pantalla y a tecnología similar brindar a los usuarios la opción de omitir los vínculos que genera el control, sin que ello interfiera visualmente en la presentación de la página. Si la propiedad SkipLinkText se establece como una cadena vacía, el control no representa las etiquetas delimitadoras.

Controles que representan tablas

Los consejos para la accesibilidad recomiendan que las tablas HTML incluyan lo siguiente:

  • Un título para ayudar a las tecnologías de ayuda a identificar el propósito de la tabla.

  • Una manera de identificar los encabezados de columna.

Si utiliza el control Table para crear una tabla, puede establecer explícitamente su propiedad Caption. Existe la posibilidad de crear encabezados de tabla mediante la clase TableHeaderRow, si se establece la propiedad TableSection como la enumeración TableHeader de la clase TableRowSection. Esto provoca que la tabla represente un elemento thead. Cuando se crean celdas con el control TableCell, es posible establecer cada propiedad AssociatedHeaderCellID para la celda en el identificador de una celda de encabezado de tabla. De ese modo, la celda representa un atributo header que la asocia al encabezado de columna correspondiente.

Los siguientes controles de servidor de ASP.NET pueden representar tablas HTML:

Estos controles permiten establecer las propiedades Caption y CaptionAlign con objeto de crear los títulos recomendados para la tabla resultante.

Para estos controles, si establece la propiedad UseAccessibleHeader, el control representa elementos th que tienen atributos scope para identificar los encabezados de columna.

Hay dos controles adicionales, DataList y Repeater, que no representan automáticamente elementos thead ni th. Sin embargo, puede definir las plantillas de encabezado para estos controles. Para el control DataList, las plantillas de encabezado representan elementos th. El control Repeater no representa marcado automáticamente; deben definirse las plantillas de encabezado, cuerpo y pie para el control, en el que es posible definir marcado. Si especifica que el control Repeater debe representar una tabla HTML, tendrá que incluir el marcado adecuado para ajustarse a los estándares de accesibilidad.

Controles que representan elementos div

Los consejos para la accesibilidad recomiendan dividir los formularios de gran longitud en secciones para facilitar el desplazamiento de los usuarios por el formulario. HTML 4.0 introdujo los elementos fieldset y legend para que los desarrolladores de páginas Web pudieran dividir un formulario en secciones.

En ASP.NET puede utilizar el control Panel para crear subdivisiones en un formulario. Si establece la propiedad GroupingText para el control como una cadena, el control Panel representa un elemento div que contiene un elemento fieldset para el contenido y un elemento legend con la cadena que utilizó en la propiedad GroupingText.

Algunos controles de elementos Web también representan los elementos div. Estos controles representan automáticamente elementos fieldset y legend.

Controles de validación

En muchas páginas Web se muestra un asterisco (*) junto a un cuadro de texto cuando se necesita una entrada de datos o si el usuario ha cometido un error al escribirlos. Dado que un asterisco no es significativo, debe especificar siempre mensajes de error significativos en las propiedades Text y ErrorMessage de los controles de validación.

Además, los controles de validación deberían deshabilitar la secuencia de comandos de cliente (EnableClientScript=false).

Controles de inicio de sesión

Los controles de inicio de sesión, como Login, ChangePassword, PasswordRecovery y CreateUserWizard, incluyen otros controles, como Label, TextBox y controles de validación. Dado que el desarrollador de páginas Web no controla necesaria y directamente lo que representan los controles de inicio de sesión, en el diseño de estos controles se tiene en cuenta la accesibilidad. Por ejemplo, los controles presentan el siguiente comportamiento para posibilitar la accesibilidad:

  • Los cuadros de texto tienen etiquetas asociadas.

  • Los controles de entrada tienen una configuración de índice de tabulación.

Sin embargo, si crea plantillas para estos controles de inicio de sesión, debe configurar los controles de las plantillas de modo que se observen los consejos para la accesibilidad.

Controles de secuencias de comandos de cliente y controles de servidor de ASP.NET

Los estándares WCAG recomiendan que en las páginas no se utilicen secuencias de comandos de cliente para ningún propósito funcional, sólo con fines no esenciales, como el movimiento del mouse (ratón) sobre botones, por ejemplo. Las directrices de la Sección 508 permiten el uso de secuencias de comandos de cliente si las tecnologías de ayuda pueden funcionar con los valores que devuelve la secuencia de comandos.

Hay varios controles de servidor Web de ASP.NET que dependen de las secuencias de comandos de cliente. Por ejemplo:

  • Los controles LinkButton y ImageButton necesitan secuencias de comandos de cliente para las devoluciones de datos.

  • El control Calendar necesita secuencias de comandos de cliente para posibilitar clics en los vínculos correspondientes a días.

  • Los controles de elementos Web dependen de secuencias de comandos de cliente para cerrar, minimizar y editar vínculos.

Para obtener una lista completa de controles que utilizan secuencias de comandos de cliente, vea Controles de servidor web ASP.NET que utilizan script de cliente.

Por consiguiente, si utiliza en una página cualquiera de los controles que necesitan secuencias de comandos de cliente, no se ajustará a los estándares WCAG. Si la aplicación Web debe cumplir al 100% los estándares WCAG, no podrá utilizar en la página controles que dependan de secuencias de comandos de cliente. No obstante, estos controles cumplen los estándares de la sección 508 relativos al uso de secuencias de comandos de cliente en una página.

Vea también

Conceptos

Controles y accesibilidad en ASP.NET