Idioma: HTML | XAML

Responder a las interacciones del teclado (XAML)

Responde a las acciones de pulsación de tecla desde un teclado de hardware o un teclado táctil en tus aplicaciones, usando para ello controladores de eventos tanto de clase como de teclado.

Importante  

Algunos controles de Windows en tiempo de ejecución controlan los eventos de entrada de manera interna, en cuyo caso puede dar la impresión de que un evento de entrada no se produce, dado que la escucha de eventos no invoca al controlador asociado correspondiente. Normalmente, este subconjunto de teclas se procesa mediante el controlador de eventos de clase para aportar compatibilidad integrada de accesibilidad de teclado básico. Por ejemplo, la clase Button invalida los eventos OnKeyDown tanto de la barra espaciadora como de la tecla Entrar (así como OnPointerPressed) y los enruta al evento Click del control. Cuando una presión de tecla se controla mediante la clase de control, los eventos KeyDown y KeyUp no se generan.

Esto proporciona un teclado integrado que equivale a invocar el botón, como si se pulsara con un dedo o se hiciera clic en él con un mouse. Las teclas que no son la barra espaciadora ni Entrar sí siguen desencadenando eventos KeyDown y KeyUp. Consulta Introducción a eventos y eventos enrutados para más información sobre cómo funciona el control de eventos basado en clases (en concreto, Controladores de eventos de entrada en controles).

Sugerencia  La información de este tema es específica para desarrollar aplicaciones con C++, C# o Visual Basic.

Consulta Responder a las interacciones del teclado (HTML) para aplicaciones con JavaScript.

Requisitos previos:  Paséate por los siguientes temas para familiarizarte con las tecnologías tratadas aquí.

Crear la primera aplicación de la Tienda Windows con C# o Visual Basic

Crear la primera aplicación de la Tienda Windows con C++

Guía básica para crear aplicaciones de la Tienda Windows con C# o Visual Basic

Guía básica para crear aplicaciones de la Tienda Windows con C++

Obtén información sobre los eventos en Introducción a eventos y eventos enrutados.

Características de la aplicación, de principio a fin:  Adéntrate en esta funcionalidad como parte de nuestra serie Características de la aplicación, de principio a fin

Interacción del usuario, de principio a fin (XAML)

Personalización de la interacción del usuario, de principio a fin (XAML)

Directrices sobre la experiencia del usuario:  

Las bibliotecas de control de la plataforma (HTML y XAML) proporcionan una experiencia de interacción del usuario completa, incluidas interacciones estándar, efectos físicos animados y comentarios visuales. Si no necesitas compatibilidad para interacción personalizada, usa estos controles integrados.

Si los controles de la plataforma no son suficientes, estas directrices para la interacción del usuario te pueden ayudar a proporcionar una experiencia de interacción atractiva y envolvente que sea coherente en todos los modos de entrada. Estas instrucciones se centran principalmente en la entrada táctil, pero también son válidas para entradas de panel táctil, mouse, teclado y lápiz.

Ejemplos:  Echa un vistazo a esta funcionalidad en acción con nuestros ejemplos de aplicaciones.

Muestra de entrada

Entrada: muestra de funcionalidades del dispositivo

Entrada: muestra de teclado táctil

Muestra de respuesta a la apariencia del teclado en pantalla

Introducción

La entrada de teclado es una parte importante de la experiencia de interacción del usuario global en las aplicaciones. El teclado es indispensable para personas con ciertas discapacidades o para los usuarios que, simplemente, lo consideran una manera más eficaz de interactuar con una aplicación. Así, por ejemplo, los usuarios deben poder navegar por la aplicación con las teclas Tab y las flechas de dirección, activar los elementos de la interfaz de usuario con la barra espaciadora y la tecla Entrar y, asimismo, acceder a los comandos con los métodos abreviados del teclado.

Una interfaz de usuario de teclado bien diseñada es un aspecto importante de la accesibilidad del software. Permite a usuarios con dificultades visuales o con ciertas discapacidades motrices navegar por una aplicación e interactuar con sus características. Es posible que estos usuarios no puedan controlar un mouse y empleen varias tecnologías de ayuda, como herramientas para la mejora del teclado, teclados en pantalla, ampliadores de pantallas, lectores de pantalla y utilidades de entrada de voz.

El tipo de teclado más común es el teclado de hardware externo que se conecta físicamente al dispositivo. Además de un teclado de hardware, Windows 8 ofrece dos teclados de software:

  • Nota  Windows:

    El teclado en pantalla es un teclado de software visual que puedes usar en lugar del teclado físico para escribir datos con entrada táctil, el mouse, el lápiz o la pluma, u otro dispositivo señalador (no es necesaria una pantalla táctil). El teclado en pantalla se proporciona para sistemas que no incluyen un teclado físico o para usuarios cuyos problemas de movilidad les impidan usar los dispositivos de entrada físicos tradicionales. El teclado en pantalla simula la mayoría de las funciones, si no todas, de un teclado de hardware.

    El teclado en pantalla

  • Nota  Windows:

    El teclado táctil es un teclado de software visual que se usa para escribir texto con entrada táctil. El teclado táctil no reemplaza al teclado en pantalla, ya que se usa únicamente para escribir texto (no simula el teclado de hardware) y solo aparece cuando se hace foco en un campo editable o en otro control de texto editable.
    Nota  El teclado en pantalla tiene prioridad sobre el teclado táctil, que no se mostrará si el teclado en pantalla está presente.

    Estos son algunos ejemplos del teclado táctil. La primera imagen es el diseño predeterminado, la segunda es el diseño para pulgares (puede que no esté disponible para todos los idiomas).

    El teclado táctil en el diseño predeterminado

    El teclado táctil en el diseño para pulgares

Eventos de teclado

Los siguientes eventos de teclado se pueden producir en teclados tanto de hardware como táctiles.

EventoDescripción
KeyDown Ocurre cuando se presiona una tecla.
KeyUp Ocurre cuando se libera una tecla.

 

Eventos de teclado y foco

Los controles de la interfaz de usuario generan eventos de teclado solo cuando tienen el foco de entrada. Un control individual obtiene el foco cuando el usuario hace clic o pulsa directamente sobre dicho control en el diseño o bien usa la tecla Tab para entrar en una secuencia de tabulación dentro del área de contenido.

También puedes llamar al método Focus de un control para forzar el foco. Esto solo es necesario si implementas teclas de método abreviado, porque el foco del teclado no se establece de manera predeterminada cuando se carga la interfaz de usuario. Si deseas obtener más información, consulta el ejemplo de teclas de método abreviado más adelante en este tema.

Para que un control reciba el foco de entrada, debe estar habilitado y sus propiedades IsTabStop y HitTestVisible deben tener un valor true. Este es el estado predeterminado para la mayoría de los controles. Cuando un control tiene el foco de entrada, puede generar eventos de entrada del teclado y responder a ellos, tal y como se describe más adelante en este capítulo. También puedes responder a un control que recibe o pierde el enfoque al controlar los eventos GotFocus y LostFocus.

De manera predeterminada, la secuencia de tabulación de los controles es el orden con que aparecen en el XAML. Sin embargo, puedes modificar este orden con la propiedad TabIndex. Para obtener más información, consulta el tema sobre la implementación de accesibilidad de teclado.

Controladores de eventos de teclado

Un controlador de eventos de entrada implementa un delegado que proporciona la siguiente información:

  • El remitente del evento. El remitente notifica el objeto al que se adjunta el controlador de eventos.
  • Datos del evento. Para los eventos de teclado, esos datos serán una instancia de KeyRoutedEventArgs. El delegado de los controladores es KeyEventHandler. Las propiedades más importantes de KeyRoutedEventArgs para la mayoría de los escenarios de controladores son Key y posiblemente KeyStatus.
  • OriginalSource. Dado que los eventos de teclado están enrutados, los datos del evento proporcionan el OriginalSource. Si estás permitiendo deliberadamente que los eventos se propaguen por un árbol de objetos, a veces OriginalSource es el objeto de interés más que el remitente. Sin embargo, eso depende de tu diseño. Si deseas obtener más información sobre cómo podrías usar OriginalSource en lugar del remitente, consulta la sección "Eventos de teclado enrutados" de este tema o bien el tema de introducción a los eventos y los eventos enrutados.

Adjuntar un controlador de eventos de teclado

Puedes adjuntar funciones de controlador de eventos de teclado a cualquier objeto que incluya el evento como miembro. Esto engloba cualquier clase derivada de UIElement. El siguiente ejemplo en XAML muestra cómo adjuntar controladores para el evento KeyUp de un Grid.



<Grid KeyUp="Grid_KeyUp">
  ...
</Grid>


También puedes adjuntar un controlador de eventos mediante código. Para obtener más información, consulta el tema de introducción a los eventos y eventos enrutados.

Definición de un controlador de eventos de teclado

El siguiente ejemplo muestra la definición incompleta de un controlador de eventos para el controlador de eventos KeyUp que se adjuntó en el ejemplo anterior.



void Grid_KeyUp(object sender, KeyRoutedEventArgs e)
{
    //handling code here
}


Uso de KeyRoutedEventArgs

Todos los eventos de teclado usan KeyRoutedEventArgs para datos de eventos, y KeyRoutedEventArgs contiene las siguientes propiedades:

Tecla

El evento KeyDown se genera si se presiona una tecla. De igual modo, KeyUp se genera si se libera una tecla. Por lo general, los eventos se escuchan para procesar un valor de tecla específico. Para determinar qué tecla se presiona o se libera, comprueba el valor Key en los datos del evento. Key devuelve un valor VirtualKey. La enumeración VirtualKey incluye todas las teclas compatibles.

Teclas modificadoras

Nota  Windows:

Las teclas modificadoras son teclas como Ctrl o Mayús que los usuarios suelen presionar en combinación con otras teclas. Tu aplicación puede usar estas combinaciones como métodos abreviados de teclado para invocar comandos de la aplicación.

Las combinaciones de teclas de método abreviado se detectan usando código en los controladores de eventos KeyDown y KeyUp. Después, puedes seguir el estado de las teclas modificadoras presionadas que te interesen. Cuando se produce un evento de teclado para una tecla que no es modificadora, puedes comprobar si hay una tecla modificadora presionada al mismo tiempo.

Nota  El valor VirtualKey.Menu representa la tecla Alt.

Ejemplo de teclas de método abreviado

Nota  Windows:

En el siguiente ejemplo se muestra cómo implementar teclas de método abreviado. En este ejemplo, los usuarios pueden controlar la reproducción multimedia con los botones Reproducir, Pausa y Detener, o con las teclas de método abreviado Ctrl+P, Ctrl+A y Ctrl+S. El XAML de los botones muestra los métodos abreviados mediante las propiedades AutomationProperties e información sobre herramientas en las etiquetas de los botones. Esta información automática es importante para mejorar la facilidad de uso y de acceso de tu aplicación. Para obtener más información, consulta Implementación de accesibilidad de teclado.

Ten en cuenta también que la página establece el foco de entrada en sí misma cuando se carga. Sin este paso, ninguno de los controles tiene el enfoque de entrada inicial y la aplicación no genera eventos de entrada hasta que el usuario establece el enfoque manualmente (por ejemplo, mediante tabulación o haciendo clic en un control).


<Grid KeyDown="Grid_KeyDown">

  <Grid.RowDefinitions>
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
  </Grid.RowDefinitions>

  <MediaElement x:Name="DemoMovie" Source="xbox.wmv" 
    Width="500" Height="500" Margin="20" HorizontalAlignment="Center" />

  <StackPanel Grid.Row="1" Margin="10"
    Orientation="Horizontal" HorizontalAlignment="Center">

    <Button x:Name="PlayButton" Click="MediaButton_Click"
      ToolTipService.ToolTip="Shortcut key: Ctrl+P"
      AutomationProperties.AcceleratorKey="Control P">
      <TextBlock>Play</TextBlock>
    </Button>

    <Button x:Name="PauseButton" Click="MediaButton_Click"
      ToolTipService.ToolTip="Shortcut key: Ctrl+A" 
      AutomationProperties.AcceleratorKey="Control A">
      <TextBlock>Pause</TextBlock>
    </Button>

    <Button x:Name="StopButton" Click="MediaButton_Click"
      ToolTipService.ToolTip="Shortcut key: Ctrl+S" 
      AutomationProperties.AcceleratorKey="Control S">
      <TextBlock>Stop</TextBlock>
    </Button>

  </StackPanel>

</Grid>



protected override void OnNavigatedTo(NavigationEventArgs e)
{
    // Set the input focus to ensure that keyboard events are raised.
    this.Loaded += delegate { this.Focus(FocusState.Programmatic); };
}

private void Grid_KeyUp(object sender, KeyRoutedEventArgs e)
{
    if (e.Key == VirtualKey.Control) isCtrlKeyPressed = false;
}

private void Grid_KeyDown(object sender, KeyRoutedEventArgs e)
{
    if (e.Key == VirtualKey.Control) isCtrlKeyPressed = true;
    else if (isCtrlKeyPressed)
    {
        switch (e.Key)
        {
            case VirtualKey.P: DemoMovie.Play(); break;
            case VirtualKey.A: DemoMovie.Pause(); break;
            case VirtualKey.S: DemoMovie.Stop(); break;
        }
    }
}

private void MediaButton_Click(object sender, RoutedEventArgs e)
{
    switch ((sender as Button).Name)
    {
        case "PlayButton": DemoMovie.Play(); break;
        case "PauseButton": DemoMovie.Pause(); break;
        case "StopButton": DemoMovie.Stop(); break;
    }
}


Nota  Establecer AutomationProperties.AcceleratorKey o AutomationProperties.AccessKey en XAML proporciona información sobre la cadena, lo que documenta la tecla de método abreviado para invocar esa acción en particular. Los clientes de automatización de la interfaz de usuario de Microsoft (como, por ejemplo, Narrador) capturan esta información que, por lo general, se entrega directamente al usuario. Establecer AutomationProperties.AcceleratorKey o AutomationProperties.AccessKey no genera ninguna acción. Deberás adjuntar controladores para los eventos KeyDown o KeyUp para implementar el comportamiento de método abreviado de teclado en tu aplicación. Además, el detalle de texto subrayado en una tecla de acceso no se proporciona de manera automática. Si quieres mostrar texto subrayado en la interfaz de usuario, debes subrayar de forma explícita el texto de la tecla específica en tus apuntes como formato Underline en línea.

Eventos de teclado enrutados

Ciertos eventos son eventos enrutados, entre ellos KeyDown y KeyUp. Los eventos enrutados usan la estrategia de enrutamiento por propagación. La estrategia de enrutamiento por propagación significa que un evento se origina en un objeto secundario y después se enruta hacia los objetos primarios sucesivos del árbol de objetos. Esto da otra oportunidad para controlar el mismo evento e interactuar con los mismos datos de evento.

Observa el siguiente ejemplo de XAML, que controla eventos KeyUp para un Canvas y dos objetos Button. En este caso, si liberas una tecla mientras el foco está en cualquiera de los objetos Button, genera el evento KeyUp. A continuación, el evento se propaga al Canvas primario.


<StackPanel KeyUp="StackPanel_KeyUp">
  <Button Name="ButtonA" Content="Button A"/>
  <Button Name="ButtonB" Content="Button B"/>
  <TextBlock Name="statusTextBlock"/>
</StackPanel>


El siguiente ejemplo muestra cómo implementar el controlador de eventos KeyUp para el contenido XAML correspondiente del ejemplo anterior.


void StackPanel_KeyUp(object sender, KeyRoutedEventArgs e)
{
    statusTextBlock.Text = String.Format(
        "The key {0} was pressed while focus was on {1}",
        e.Key.ToString(), (e.OriginalSource as FrameworkElement).Name);
}


Observa el uso de la propiedad OriginalSource en el controlador precedente. Aquí, OriginalSource notifica el objeto que generó el evento. El objeto no pudo ser StackPanel porque StackPanel no es un control y no puede tener el foco. Solo uno de los dos botones dentro de StackPanel podría haber generado el evento, pero ¿cuál? Usa OriginalSource para distinguir el objeto origen real del evento, si estás controlando el evento en un objeto primario.

La propiedad Handled en los datos de evento

En función de la estrategia de control de eventos que implementes, puede ser que desees que solo un controlador de eventos reaccione ante un evento de propagación. Por ejemplo, si tienes un controlador KeyUp específico adjunto a uno de los controles Button, tendría la primera oportunidad de controlar dicho evento. En este caso, quizás no quieras que el panel primario controle también el evento. Para este escenario, puedes usar la propiedad Handled en los datos del evento.

El propósito de la propiedad Handled en una clase de datos de evento enrutado es notificar que otro controlador que registraste antes en la ruta del evento ya ha actuado. Esto influye en el comportamiento del sistema de eventos enrutados. Cuando estableces Handled en true en un controlador de eventos, ese evento deja de enrutarse y no se envía a los elementos primarios sucesivos.

AddHandler y eventos de teclado ya controlados

Puedes usar una técnica especial para adjuntar controladores que pueden actuar sobre eventos que ya están marcados como controlados. Esta técnica usa el método AddHandler para registrar un controlador en lugar de usar atributos XAML o una sintaxis específica de lenguaje para agregar controladores, como += en C#. Una limitación de esta técnica en general es que la API AddHandler toma un parámetro de tipo RoutedEvent que identifica el evento enrutado en cuestión. No todos los eventos enrutados proporcionan un identificador RoutedEvent. Esta consideración, por lo tanto, influye en qué eventos enrutados es posible controlar en el caso Handled. Los eventos KeyDown y KeyUp tienen identificadores de evento enrutado (KeyDownEvent y KeyUpEvent) en UIElement. Sin embargo, otros eventos como TextBox.TextChanged no tienen identificadores de evento enrutado y, por lo tanto, no pueden usarse con la técnica AddHandler.

Comandos

Algunos elementos de la interfaz de usuario admiten comandos. Los comandos usan eventos enrutados relacionados con la entrada en su implementación subyacente. Permiten procesar la entrada de la interfaz de usuario relacionada (como una acción de puntero determinada o una tecla aceleradora específica) mediante la invocación de un único controlador de comandos.

Si hay comandos disponibles para un elemento de la interfaz de usuario, considera la posibilidad de usar las API de comandos en lugar de eventos de entrada discretos. Para obtener más información, consulta ButtonBase.Command.

También puedes implementar ICommand para encapsular la funcionalidad de los comandos que invocas desde controladores de eventos comunes. Esto permite usar los comandos aunque no haya ninguna propiedad Command disponible.

Controles y entrada de texto

Ciertos controles reaccionan ante los eventos de teclado con su propio control. Por ejemplo, TextBox es un control diseñado para capturar y representar visualmente el texto que se especificó con el teclado. Usa KeyUp y KeyDown en su propia lógica para capturar las pulsaciones y después también genera su propio evento TextChanged si el texto ha cambiado.

Por lo general, puedes agregar controladores para KeyUp y KeyDown a un TextBox o cualquier control relacionado que tenga por finalidad procesar entrada de texto. Sin embargo, puede ocurrir que, como parte de su diseño intencional, un control no responda a todos los valores de teclas que se dirijan a él a través de eventos de tecla. El comportamiento es específico de cada control.

A modo de ejemplo, ButtonBase (la clase base para Button) procesa KeyUp para poder buscar la barra espaciadora o la tecla Entrar. ButtonBase considera que KeyUp equivale al botón primario del mouse presionado con el propósito de generar un evento Click. Este procesamiento del evento se logra cuando ButtonBase invalida el método virtual OnKeyUp. En su implementación, establece Handled como true. El resultado es que cualquier elemento primario de un botón que escucha un evento de tecla, en el caso de una barra espaciadora, no recibiría el evento ya controlado para sus propios controladores.

Otro ejemplo es TextBox. TextBox no considera texto algunas teclas, como las teclas de flecha; en cambio, las considera específicas del comportamiento de la interfaz de usuario de control. TextBox marca estos casos de eventos como controlados.

Los controles personalizados pueden implementar su propio comportamiento de invalidación similar para eventos de tecla invalidando OnKeyDown/OnKeyUp. Si tu control personalizado procesa teclas aceleradoras específicas o tiene un comportamiento de control o foco similar al escenario que describimos en el caso de TextBox, debes incluir esta lógica en tus propias invalidaciones de OnKeyDown/OnKeyUp.

El teclado táctil

Los controles de entrada de texto proporcionan compatibilidad automática para el teclado táctil. Cuando el usuario establece el enfoque de entrada en un control de texto mediante entrada táctil, el teclado táctil aparece automáticamente. Cuando el enfoque de entrada no está en un control de texto, el teclado táctil se oculta.

Cuando el teclado táctil aparece, recoloca automáticamente la interfaz de usuario para asegurar que el elemento con foco permanezca visible. Esto puede hacer que otras áreas importantes de la interfaz de usuario queden fuera de la pantalla. Sin embargo, puedes deshabilitar el comportamiento predeterminado y realizar tus propios ajustes en la interfaz de usuario cuando el teclado táctil aparezca. Si deseas obtener más información, consulta Muestra de respuesta a la apariencia del teclado en pantalla.

Si creas un control personalizado que requiere entrada de texto, pero no deriva de un control de entrada de texto estándar, puedes agregar compatibilidad con el teclado táctil si implementas los modelos de control de automatización de la interfaz de usuario adecuados. Si deseas obtener más información, consulta la muestra de teclado táctil.

Al presionar las teclas en el teclado táctil se generan los eventos KeyDown y KeyUp, igual que cuando se presiona un teclado de hardware. Sin embargo, el teclado táctil no genera eventos de entrada para Ctrl+A, Ctrl+Z, Ctrl+X, Ctrl+C y Ctrl+V, que están reservadas para la manipulación de texto en el control de entrada.

Instrucciones de experiencia de usuario para admitir interacciones de teclado

Estas son algunas instrucciones para admitir interacciones del teclado.

General

  • Nota  Windows:

    Los usuarios deben poder realizar todas las tareas admitidas por la aplicación usando solo el teclado de hardware o el teclado en pantalla.
    Nota  El teclado táctil se usa para la entrada de texto únicamente, no para comandos del sistema ni de la aplicación.
  • Cuando tu aplicación se inicie, establece el foco inicial del teclado en el elemento con el que los usuarios interactuarán primero intuitivamente (o es más probable que lo hagan). Por lo general, la ubicación más apropiada es la vista de contenido principal de la aplicación de modo que el usuario pueda desplazarse inmediatamente por el contenido con las teclas de flecha. Para obtener más información sobre cómo establecer el enfoque en controles específicos, consulta Focus.
  • Nota  Windows:

    Asegúrate de que las teclas TAB y de dirección se muevan por el contenido en un orden lógico.
  • Establece la propiedad TabIndex en un valor que sea igual o mayor que 0 para todos los elementos de interfaz de usuario interactivos que no se encuentren en el orden de tabulación de manera predeterminada. La configuración de la propiedad TabIndex es importante, porque los usuarios del lector de pantalla navegan entre los elementos de interfaz de usuario interactivos mediante el uso de la tecla Tab.
  • Nota  Windows:

    Usa las teclas de flecha como métodos abreviados de teclado para una navegación interna apropiada entre los elementos secundarios de los elementos compuestos. Si los nodos de la vista de árbol tienen elementos secundarios separados para administrar la activación de nodos y las acciones de expandir/contraer, usa las teclas de flecha izquierda y derecha para proporcionar la funcionalidad de expandir/contraer del teclado.
  • Asegúrate de que cada elemento de la interfaz de usuario en el que pueda hacerse clic también pueda invocarse con el teclado.
  • Nota  Windows:

    Implementa métodos abreviados de teclado para las funciones principales de la aplicación. (Un método abreviado es una combinación de teclas que mejora la productividad al proporcionar al usuario una forma eficaz de acceder a la funcionalidad de la aplicación).

    Una tecla de acceso es un método abreviado a un elemento de la interfaz de usuario de tu aplicación. Consta de la tecla Alt y una tecla de letra.

    Una tecla de aceleración es un método abreviado a un comando de la aplicación. Tu aplicación puede tener una interfaz de usuario que corresponda exactamente al comando. Las teclas de aceleración consisten en la tecla Ctrl y una tecla de letra.

    Debes proporcionar una forma sencilla para que los usuarios que usan lectores de pantalla y otra tecnología de asistencia puedan descubrir las teclas de método abreviado de tu aplicación. Debes declarar las teclas de método abreviado en el marcado HTML de tu aplicación usando la propiedad AccessKey y comunicar las teclas de métodos abreviados mediante información sobre herramientas, nombres accesibles, descripciones accesibles o alguna otra forma de comunicación en pantalla. Recuerda documentar correctamente las teclas de método abreviado en el contenido de Ayuda de tu aplicación.

    Para obtener más información sobre la implementación de las teclas de método abreviado, consulta Teclas de método abreviado en las instrucciones de experiencia del usuario de Windows.

    No redefinas los métodos abreviados de teclado que esperan los usuarios en todas las aplicaciones de la Tienda Windows. Consulta el tema sobre los métodos abreviados de teclado para obtener una lista completa.

Hardware

Consulta las funciones del dispositivo de teclado (KeyboardCapabilities) para determinar si hay algún teclado conectado y para identificar cuáles son los aspectos de la interfaz de usuario de tu aplicación a los que el hardware del teclado puede acceder directamente. Para más información sobre cómo consultar las funciones de dispositivos, consulta el tema de inicio rápido: identificación de dispositivos de puntero.

Asocia los botones del teclado con la interfaz de usuario correspondiente (botones Atrás y Adelante) en tu aplicación.

Información visual

  • Usa rectángulos de foco solamente con las interacciones del teclado. Si el usuario inicia una interacción táctil, haz que la interfaz de usuario del teclado vaya desapareciendo de forma gradual. Esto mantiene la interfaz de usuario ordenada y organizada.
  • No muestres información visual si un elemento no admite interacción (por ejemplo, texto estático).
  • Muestra información visual simultáneamente para todos los elementos que representan el mismo destino de entrada.
  • Proporciona botones en la pantalla (como + y -) como sugerencias para simular las manipulaciones táctiles, como realizar un movimiento panorámico, girar, hacer zoom, etc.

Para obtener instrucciones más generales sobre la información visual, consulta el tema sobre las directrices para información visual.

Temas relacionados

Conceptual
Responder a la interacción del usuario
Inicio rápido: agregar controladores de eventos y controles HTML
Implementación de accesibilidad de teclado
Accesibilidad en aplicaciones de la Tienda Windows con C++, C# o Visual Basic
Presentación y edición de texto
Administrador de hospedaje de entradas y teclado táctil

 

 

Mostrar:
© 2015 Microsoft