Accesibilidad para aplicaciones de Windows en tiempo de ejecución con C#/VB/C++ y XAML

Applies to Windows and Windows Phone

Aquí describimos algunos conceptos y tecnologías relativos a escenarios de accesibilidad para una aplicación de Windows en tiempo de ejecución que usa C#, Visual Basic o extensiones de componentes de Visual C++ (C++/CX) en su código de aplicación, y XAML para la definición de su interfaz de usuario.

¿Buscas la versión para JavaScript de este tema? Consulta Accesibilidad para aplicaciones de Windows en tiempo de ejecución con JavaScript y HTML.

Guía básica: Relación de este tema con los demás. Consulta:

Requisitos previos

Suponemos que sabes cómo crear una aplicación básica de Windows en tiempo de ejecución. Para obtener instrucciones sobre cómo crear tu primera aplicación de Windows en tiempo de ejecución con C++, C# o Visual Basic, consulta Crear la primera aplicación de Windows en tiempo de ejecución con C# o Visual Basic o Crear la primera aplicación de Windows en tiempo de ejecución con C++.

Accesibilidad y la aplicación

La accesibilidad consiste en hacer que tus aplicaciones puedan ser usadas por aquellas personas que tengan algún tipo de limitación que les impida el uso de las interfaces de usuario convencionales. En algunas casos, los requisitos de accesibilidad están impuestos por ley. Sin embargo, es una buena idea dar solución a estos problemas sin importar los requisitos legales, a fin de asegurarte de que tus aplicaciones tengan el mayor público posible. También hay una declaración de la Tienda Windows relativa a la accesibilidad de tu aplicación.

  • Applies to Windows Phone

Declarar la aplicación como accesible solo es importante en la Tienda Windows.

Existe una gran variedad de discapacidades, entre ellas, limitaciones en la movilidad, vista, percepción de los colores, audición, habla, cognición y alfabetización. No obstante, puedes dar respuesta a la mayoría de los requisitos si sigues las instrucciones incluidas en este documento. Esto significa que debes proporcionar lo siguiente:

  • Soporte para lectores de pantalla e interacciones de teclado.
  • Soporte para la personalización de usuario, como configuraciones de fuente, configuración de zoom (ampliación), color y contraste alto.
  • Alternativas o complementos para partes de la interfaz de usuario.

Los controles de Windows en tiempo de ejecución para XAML proporcionan soporte de teclado integrado y soporte de tecnologías de asistencia, como lectores de pantalla, que sacan provecho de los marcos de accesibilidad que ya admiten aplicaciones de Windows en tiempo de ejecución, HTML y otras tecnologías de interfaz de usuario. Este soporte integrado permite un nivel básico de accesibilidad que puedes personalizar con muy poco esfuerzo mediante la configuración de unas pocas propiedades. Si estás creando tus propios componentes XAML personalizados, también puedes agregar un soporte similar usando el concepto de sistemas de automatización del mismo nivel.

Además, las características de plantilla, estilo y enlace de datos simplifican el soporte de cambios dinámicos para mostrar la configuración y texto para interfaces de usuario alternativas.

Automatización de la interfaz de usuario

La compatibilidad para accesibilidad para aplicaciones de Windows en tiempo de ejecución con C++, C# o Visual Basic procede principalmente de la compatibilidad integrada del marco de automatización de la interfaz de usuario de Microsoft. Esa compatibilidad se proporciona mediante clases base y el comportamiento integrado de la implementación de clases para los tipos de control, y una representación de la interfaz de Windows en tiempo de ejecución de la API del proveedor de automatización de la interfaz de usuario. Cada clase de control usa los conceptos de automatización de la interfaz de usuario de automatización del mismo nivel y modelos de automatización que informan del contenido y rol del control a los clientes de automatización de la interfaz de usuario. La aplicación de la Windows en tiempo de ejecución es considerada por la automatización de la interfaz de usuario como una ventana de nivel superior y todo el contenido dentro de esa ventana de la aplicación se pone a disposición de un cliente de automatización de la interfaz de usuario a través del marco de automatización de la interfaz de usuario. Para obtener más información sobre la automatización de la interfaz de usuario, consulta la introducción a la automatización de la interfaz de usuario.

Tecnología de asistencia

Muchas de las necesidades de accesibilidad del usuario se satisfacen a través de productos de tecnología de ayuda instalados por este o por herramientas y parámetros de configuración proporcionados por el sistema operativo. Esto incluye funciones como lectores de pantalla, ampliación de pantalla y configuración de contraste alto.

Los productos de tecnología de asistencia incluyen una variedad de software y hardware. Estos productos funcionan a través de los marcos de accesibilidad y la interfaz de teclado estándar que proporcionan información acerca del contenido y la estructura de una interfaz de usuario a los lectores de pantalla y otras tecnologías de asistencia. A continuación, se incluyen algunos ejemplos de productos de tecnología de asistencia:

  • Teclado en pantalla, que permite a las personas usar un puntero en lugar de un teclado para escribir texto.
  • Software de reconocimiento de voz, que convierte las palabras habladas en texto escrito.
  • Lectores de pantalla, que convierten el texto en palabras habladas u otros formatos como el Braille.
  • Lector de pantalla Narrador, que forma parte específica de Windows. Narrador tienen un modo táctil que puede llevar a cabo tareas de lectura con gestos táctiles cuando no hay un teclado disponible.
  • Programas o configuraciones que ajustan la pantalla o áreas de la misma, por ejemplo, temas de alto contraste, el ajuste de puntos por pulgada (ppp) de pantalla o la herramienta Lupa.

En general, las aplicaciones que tienen buena compatibilidad para lectores de pantalla y teclados funcionan correctamente con diversos productos de tecnología de asistencia. En muchos casos, una aplicación de Windows en tiempo de ejecución funciona con estos productos sin necesidad de modificar la información o la estructura. No obstante, es posible que quieras modificar algunas configuraciones para lograr una experiencia de accesibilidad óptima o para implementar compatibilidad adicional.

Algunas de las opciones que puedes usar para probar los escenarios de accesibilidad básicos con tecnologías de ayuda se enumeran en el tema sobre cómo probar la accesibilidad de una aplicación.

Información de accesibilidad básica y compatibilidad para lectores de pantalla

Los lectores de pantalla proporcionan acceso al texto de una aplicación representándolo en algún otro formato, como Braille o idioma hablado. El comportamiento exacto de un lector de pantalla depende del software y de la configuración de usuario de este.

Por ejemplo, algunos lectores de pantalla leen toda la interfaz de usuario de una aplicación cuando el usuario la inicia o cambia a ella, lo que permite que el usuario reciba todo el contenido informativo disponible antes de desplazarse por ella. Algunos lectores de pantalla también leen el texto asociado con un control individual cuando recibe el foco durante la navegación por tabulación. Esto permite a los usuarios orientarse mientras navegan entre los controles de entrada de una aplicación. Narrador es un ejemplo de lector de pantalla que proporciona ambos comportamientos, en función de la elección del usuario.

La información más importante que necesita un lector de pantalla o cualquier otra tecnología de asistencia para poder ayudar a los usuarios a comprender una aplicación o navegar por ella, es un nombre accesible para los elementos de la aplicación. En muchos casos, un control o elemento ya tienen un nombre accesible calculado a partir de otros valores de propiedad que hayas proporcionado de alguna manera. El caso más común en el que se puede usar un nombre calculado previamente es un elemento que admita y muestre texto interno. Para otros elementos, a veces debes considerar otras maneras de proporcionar un nombre accesible siguiendo los procedimientos recomendados para la estructura de elementos. Y otras veces debes proporcionar un nombre que esté destinado explícitamente a ser el nombre accesible para la accesibilidad de la aplicación. Para obtener una lista de cuántos de estos valores calculados funcionan en elementos de la interfaz de usuario comunes y para obtener información general sobre los nombres accesibles, consulta Exponer información de accesibilidad básica acerca de los elementos de la interfaz de usuario.

Existen muchas otras propiedades de automatización disponibles (incluidas las propiedades de teclado descritas en la siguiente sección). Pero no todos los lectores de pantalla admiten todas las propiedades de automatización. En general, debes establecer todas las propiedades de automatización correspondientes y hacer una prueba para proporcionar la mayor compatibilidad posible para los lectores de pantalla.

Compatibilidad de teclado

Para proporcionar una buena compatibilidad de teclado, debes asegurarte de que cada parte de tu aplicación pueda usarse con un teclado. Si tu aplicación usa principalmente los controles estándar y no usa ningún control personalizado, ya tienes la mayor parte del camino recorrido. El modelo de control básico de XAML de Windows en tiempo de ejecución proporciona compatibilidad de teclado integrada que incluye navegación por tabulación, entrada de texto y compatibilidad específica del control. Los elementos que funcionan como contenedores de diseño (como los paneles) usan el orden de diseño para establecer un orden de tabulación predeterminado. Ese orden suele ser el orden de tabulación que se debe usar para una representación accesible de la interfaz de usuario. Si usas los controles ListBox y GridView para mostrar los datos, estos proporcionan navegación integrada mediante teclas de dirección. O bien, si usas un control Button, este ya controla la tecla Entrar o la barra espaciadora para la activación de botones.

Para obtener más información sobre todos los aspectos de la compatibilidad de teclado en una aplicación de Windows en tiempo de ejecución, incluido el orden de tabulación y la activación o la navegación basadas en teclas, consulta Implementación de accesibilidad de teclado.

Medios y subtítulos

Para una aplicación de Windows en tiempo de ejecución con C++, C# o Visual Basic, normalmente muestras los medios audiovisuales a través de un objeto MediaElement. Puedes usar las API MediaElement para controlar la reproducción multimedia. Para fines de accesibilidad, proporciona controles que permitan a los usuarios reproducir, pausar y detener los medios según sea necesario. En ocasiones, los medios incluyen componentes adicionales que tienen como propósito proporcionar accesibilidad, como subtítulos o pistas de audio alternativas que incluyen descripciones narrativas. Para obtener más información sobre los conceptos relacionados con los medios, MediaElement y accesibilidad, consulta Hacer que el contenido multimedia sea accesible.

Texto accesible

Tres aspectos del texto son pertinentes para la accesibilidad:

  • Las herramientas deben determinar si se debe leer el texto como parte de un recorrido de secuencia de tabulación o solo como una representación general del documento. Para ayudar a determinar este aspecto, puedes elegir el elemento adecuado para mostrar el texto o ajustar las propiedades de esos elementos de texto. Cada elemento de texto disponible en una aplicación de Windows en tiempo de ejecución tiene un propósito específico que, a su vez, suele tener un rol de automatización de la interfaz de usuario correspondiente. Si se usa el elemento incorrecto, es posible que se notifique el rol incorrecto a la automatización de la interfaz de usuario y que se genere confusión en la experiencia de un usuario de tecnología de asistencia.
  • Muchos usuarios tienen problemas de vista que les dificulta la lectura de texto, a menos de que tenga el contraste adecuado con respecto al color de fondo. La manera en que esto afecta al usuario no es algo que los diseñadores de aplicaciones que no padecen esos problemas de vista puedan reconocer de manera intuitiva. Por ejemplo, una mala elección del color en el diseño puede generar que algunos usuarios daltónicos no puedan leer el texto. Las recomendaciones de accesibilidad que se realizaron originalmente para contenido web definen las normas sobre contraste que permiten evitar estos problemas también en las aplicaciones. Para obtener más información, consulta Cumplir con requisitos para texto accesible.
  • Muchos usuarios tienen dificultades para leer texto que es demasiado pequeño. Puedes evitar este problema creando un tamaño de texto lo suficientemente grande en la interfaz de usuario de la aplicación. Pero eso resulta complicado en las aplicaciones que muestran grandes cantidades de texto o texto intercalado con otros elementos visuales. En estos casos, asegúrate de que la aplicación interactúe correctamente con las características del sistema que pueden aumentar el tamaño de la pantalla para que el texto de las aplicaciones aumente de tamaño con estas. (Algunos usuarios cambian los valores de ppp como opción de accesibilidad. Esa opción está disponible en el ajuste Aumentar el tamaño de los objetos en pantalla de Accesibilidad, que abre la interfaz de Panel de control correspondiente a Apariencia y personalización / Pantalla.)

Compatibilidad con temas de contraste alto

Los controles de la interfaz de usuario que se proporcionan para las aplicaciones de Windows en tiempo de ejecución con C++, C# o Visual Basic usan una representación visual que se define como parte de un diccionario de temas de recursos XAML. Uno o varios de estos temas se usan específicamente cuando el sistema se establece en contraste alto. Cuando el usuario cambia a contraste alto, al buscar el tema adecuado de forma dinámica en un diccionario de recursos, todos tus controles de la interfaz de usuario también usarán un tema de contraste alto adecuado. Debes asegurarte de no haber deshabilitado los temas mediante la especificación de un estilo explícito o el uso de otra técnica de aplicación de estilo que evite la carga de temas de contraste alto e invalide los cambios de estilo. Para más información, consulta el tema sobre la compatibilidad con temas de contraste alto.

Diseño para interfaces de usuario alternativas

Cuando diseñes tus aplicaciones, ten en cuenta su uso por parte de personas con movilidad, vista y audición limitadas. Dado que los productos de tecnología de asistencia hacen gran uso de las interfaces de usuario estándares, es particularmente importante proporcionar buena compatibilidad para teclado y lectores de pantalla aunque no realices ningún otro ajuste para la accesibilidad.

En muchos casos, puedes transmitir información esencial mediante el uso de múltiples técnicas a fin de ampliar tu público. Por ejemplo, puedes resaltar información usando tanto información de color como iconos para ayudar a los usuarios con daltonismo; además, puedes mostrar alertas visuales junto con efectos de sonido para ayudar a los usuarios con discapacidades auditivas.

Si fuera necesario, puedes proporcionar elementos de interfaz de usuario alternativos y accesibles que quitan completamente las animaciones y los elementos que no son esenciales, y proporcionar otras simplificaciones para hacer que la experiencia del usuario sea más sencilla. La siguiente muestra de código muestra cómo presentar una instancia de UserControl en lugar de otra dependiendo de una configuración de usuario.


<StackPanel x:Name="LayoutRoot" Background="White">

  <CheckBox x:Name="ShowAccessibleUICheckBox" Click="ShowAccessibleUICheckBox_Click">
    Show Accessible UI
  </CheckBox>

  <UserControl x:Name="ContentBlock">
    <local:ContentPage/>
  </UserControl>

</StackPanel>


private void ShowAccessibleUICheckBox_Click(object sender, RoutedEventArgs e)
{
    if ((sender as CheckBox).IsChecked.Value)
    {
        ContentBlock.Content = new AccessibleContentPage();
    }
    else
    {
        ContentBlock.Content = new ContentPage();
    }
}

Verificación y comprobación

Para más información sobre declaraciones de accesibilidad y cómo publicar tu aplicación, consulta Declarar tu aplicación como accesible en la Tienda Windows.

  • Applies to Windows Phone

Declarar la aplicación como accesible solo es importante en la Tienda Windows.

Compatibilidad para tecnologías de asistencia en controles personalizados

Cuando crees un control personalizado, te recomendamos que también implementes o extiendas una o más subclases de AutomationPeer para proporcionar compatibilidad con accesibilidad. En algunos casos, siempre y cuando uses la misma clase del mismo nivel que usó la clase de control base, la compatibilidad de la automatización con tu clase derivada es adecuada en un nivel básico. De todos modos, debes probarlo. Y recuerda que la implementación de una clase del mismo nivel es un procedimiento recomendado para que esta pueda notificar correctamente el nombre de clase de tu nueva clase de control. La implementación de la automatización del mismo nivel personalizada conlleva algunos pasos. Para obtener más información, consulta Personalizar sistemas de automatización del mismo nivel.

Soporte técnico para tecnología auxiliar en aplicaciones que admitan la interoperabilidad XAML/Microsoft DirectX

No se puede acceder de manera predeterminada al contenido de DirectX hospedado en una interfaz de usuario XAML (mediante SwapChainPanel o SurfaceImageSource). La muestra de interoperabilidad XAML SwapChainPanel DirectX muestra cómo crear sistemas de automatización de la interfaz de usuario para el contenido DirectX hospedado. Esta técnica permite que se pueda acceder al contenido hospedado a través de la automatización de la interfaz de usuario.

Temas relacionados

Windows.UI.Xaml.Automation
Diseño de accesibilidad
Accesibilidad para aplicaciones de Windows en tiempo de ejecución con JavaScript y HTML
Muestra de accesibilidad XAML

 

 

Mostrar:
© 2014 Microsoft