Linguaggio: HTML | XAML

Risposta alle interazioni tramite tastiera (XAML)

Applies to Windows and Windows Phone

Puoi rispondere alle pressioni dei tasti da una tastiera hardware o virtuale nelle app usando sia la tastiera che i gestori eventi delle classi.

Importante  

Alcuni controlli di Windows Runtime gestiscono internamente gli eventi di input. In questi casi, potrebbe sembrare che non si sia verificato alcun evento di input, perché il listener di eventi non richiama il gestore associato. In genere, questo sottoinsieme di chiavi viene elaborato dal gestore di classi, per offrire supporto incorporato dell'accessibilità standard da tastiera. Ad esempio, la classe Button ha precedenza rispetto agli eventi OnKeyDown sia per la BARRA SPAZIATRICE che per il tasto INVIO (oltre a OnPointerPressed) e li indirizza all'evento Click del controllo. Quando la pressione di un tasto è gestita dalla classe del controllo, gli eventi KeyDowne KeyUp non vengono generati.

Sarà quindi disponibile un equivalente incorporato da tastiera per richiamare il pulsante, in modo simile al tocco con un dito o alla selezione con il mouse. I tasti diversi da BARRA SPAZIATRICE o INVIO generano eventi KeyDown e KeyUp. Vedi Panoramica degli eventi e degli eventi indirizzati per altre informazioni sul funzionamento della gestione di eventi basata sulle classi, in particolare Gestori di eventi di input nei controlli.

Suggerimento  Le informazioni in questo argomento sono specifiche per lo sviluppo di app in C++, C# o Visual Basic.

Per informazioni sulle app che usano JavaScript, vedi Risposta alle interazioni con tastiera (HTML).

Prerequisiti:  Ti consigliamo di leggere gli argomenti seguenti per scoprire di più sulle tecnologie descritte in questa guida.

Creare la prima app di Windows Store in C# o Visual Basic

Creare la prima app di Windows Store in C++

Roadmap per app di Windows Store scritte in C# o Visual Basic

Roadmap per app di Windows Store in C++

Per informazioni aggiuntive sugli eventi, vedi Panoramica degli eventi e degli eventi indirizzati

Funzionalità delle app dall'inizio alla fine:  Per conoscere meglio questa funzionalità, vedi gli argomenti della serie Funzionalità dell'app dall'inizio alla fine

Interazioni con l'utente, dall'inizio alla fine (XAML)

Personalizzazione delle interazioni con l'utente, dall'inizio alla fine (XAML)

Linee guida per l'esperienza utente:  

Le raccolte di controlli della piattaforma (HTML e XAML) forniscono l'esperienza di interazione utente completa, oltre a interazioni standard, effetti fisici animati e feedback visivo. Se non hai l'esigenza di supportare interazioni personalizzate, usa questi controlli predefiniti.

Se i controlli della piattaforma non sono sufficienti, queste linee guida ti aiuteranno a offrire un'esperienza di interazione coinvolgente e Immersive coerente tra le diverse modalità di input. Queste linee guida sono incentrate principalmente sull'input tocco, ma sono rilevanti anche per input di tipo tocco, mouse, tastiera e stilo.

Esempi:  Per esaminare questa funzionalità in azione, vedi gli esempi di app.

Esempio di input

Input: Esempio delle funzionalità del dispositivo

Input: Esempio di tastiera virtuale

Esempio di risposta alla visualizzazione della tastiera su schermo

Panoramica

L'input da tastiera è una parte importante dell'esperienza di interazione utente complessiva per le app. La tastiera è indispensabile per le persone con determinate disabilità o per gli utenti che semplicemente la considerano un modo più efficiente di interagire con un'app. Ad esempio, gli utenti devono essere in grado di navigare nell'app tramite i tasti di direzione e Tab, attivare gli elementi dell'interfaccia utente tramite la barra spaziatrice e Invio e accedere ai comandi usando i tasti di scelta rapida.

Un'interfaccia utente di tastiera ben progettata è un aspetto importante dell'accessibilità del software. Consente agli utenti con problemi di vista o con determinate disabilità motorie di esplorare un'app e interagire con le sue funzionalità. Questi utenti potrebbero non essere in grado di manovrare un mouse e fare affidamento su diversi strumenti di Assistive Technology, ad esempio strumenti per il miglioramento della tastiera, tastiere su schermo, strumenti per l'ingrandimento o per la lettura dello schermo e per utilità per l'input vocale.

Il tipo di tastiera più diffuso è la tastiera hardware esterna collegata fisicamente a un dispositivo. Oltre a una tastiera hardware, Windows 8 offre due tastiere software:

    • Applies to Windows

    Windows:

    Tastiera su schermo è una tastiera software visiva usabile al posto di quella fisica per digitare e immettere dati usando il tocco, il mouse, la penna/stilo o un altro dispositivo di puntamento (non è necessario il touch screen). Tastiera su schermo è destinata ai sistemi privi di una tastiera fisica o agli utenti che a causa di problemi di mobilità non possono usare i tradizionali dispositivi di input fisici. Tastiera su schermo emula la maggior parte delle funzionalità, se non tutte, di una tastiera hardware.

    Tastiera su schermo

    • Applies to Windows

    Windows:

    La tastiera virtuale è una tastiera software visiva usata per immettere testo tramite l'input tocco. La tastiera virtuale non sostituisce Tastiera su schermo in quanto si usa solo per l'immissione di testo e non emula la tastiera hardware, inoltre viene visualizzata solo quando un campo di testo o un altro controllo di testo modificabile ha lo stato attivo.

    Nota  Tastiera su schermo ha priorità rispetto alla tastiera virtuale. Quest'ultima non viene infatti visualizzata se è presente la prima.

    Ecco alcuni esempi di tastiera virtuale. La prima immagine illustra il layout predefinito, la seconda il layout di scrittura con pollici, non necessariamente disponibile per tutte le lingue.

    Tastiera virtuale: layout predefinito

    Tastiera virtuale: layout di scrittura con pollici

Eventi della tastiera

Gli eventi della tastiera seguenti possono verificarsi per tastiere hardware e virtuali.

EventoDescrizione
KeyDown Si verifica quando viene premuto un tasto.
KeyUp Si verifica quando viene rilasciato un tasto.

 

Eventi della tastiera e stato attivo

I controlli dell'interfaccia utente generano eventi della tastiera solo quando hanno lo stato attivo per l'input. Un singolo controllo acquisisce lo stato attivo quando l'utente tocca o fa clic direttamente sul controllo nel layout oppure usa il tasto Tab per avviare una sequenza di tabulazione nell'area di contenuto.

Puoi anche chiamare il metodo Focus di un controllo per forzare lo stato attivo. Si tratta di un'azione necessaria quando implementi i tasti di scelta rapida, perché lo stato attivo della tastiera non è configurato per impostazione predefinita al caricamento dell'interfaccia utente. Per altre informazioni, vedi Esempi di tasti di scelta rapida più avanti in questo argomento.

Per acquisire lo stato attivo per l'input, un controllo deve essere abilitato, visibile e avere valori true per le proprietà IsTabStop e HitTestVisible. È lo stato predefinito per la maggior parte dei controlli. Quando un controllo ha lo stato attivo per l'input, può generare e rispondere a eventi di input della tastiera, come descritto più avanti in questo argomento. Puoi anche rispondere a un controllo che riceve o perde lo stato attivo gestendo gli eventi GotFocus e LostFocus.

Per impostazione predefinita, la sequenza di tabulazione dei controlli è l'ordine in cui appaiono in XAML. È tuttavia possibile modificare l'ordine usando la proprietà TabIndex. Per altre informazioni, vedi Implementazione dell'accessibilità tramite tastiera.

Gestori di eventi della tastiera

Un gestore di eventi di input implementa un delegato che consente di:

  • Il mittente del pacchetto. Il mittente indica l'oggetto in cui è associato il gestore di eventi.
  • Dati dell'evento. Per gli eventi della tastiera, questi dati sono rappresentati da un'istanza di KeyRoutedEventArgs. Il delegato dei gestori è KeyEventHandler. Per la maggior parte degli scenari con gestori, le proprietà più importanti di KeyRoutedEventArgs sono Key ed eventualmente KeyStatus.
  • OriginalSource. Determinare l'oggetto OriginalSource in base ai dati dell'evento, dal momento che gli eventi della tastiera sono di tipo indirizzato. Se consenti espressamente il bubbling degli eventi in un albero di oggetti, OriginalSource può essere un dato più rilevante del mittente, nonostante ciò dipenda dalla progettazione. Per altre informazioni su come usare l'oggetto OriginalSource anziché il mittente, vedi la sezione "Eventi indirizzati della tastiera" di questo argomento oppure l'argomento Panoramica degli eventi e degli eventi indirizzati.

Associazione di un gestore di eventi della tastiera

Puoi associare funzioni del gestore di eventi della tastiera per qualsiasi oggetto che includa l'evento come membro. È inclusa qualsiasi classe derivata da UIElement. L'esempio XAML seguente mostra come associare gestori per l'evento KeyUp a un oggetto Grid.



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


Il gestore eventi può essere inoltre associato nel codice. Per altre informazioni, vedi Panoramica degli eventi e degli eventi indirizzati.

Definizione di un gestore di eventi della tastiera

L'esempio seguente mostra la definizione incompleta del gestore dell'evento KeyUp associato nell'esempio precedente.



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


Uso di KeyRoutedEventArgs

Tutti gli eventi della tastiera usano KeyRoutedEventArgs per i dati dell'evento. KeyRoutedEventArgs contiene le proprietà seguenti:

Key

L'evento KeyDown viene generato se viene premuto un tasto. In modo analogo, l'evento KeyUp viene generato se viene rilasciato un tasto. In genere, si rimane in ascolto degli eventi per elaborare un valore di tasto specifico. Per determinare il tasto premuto o rilasciato, devi verificare il valore di Key nei dati dell'evento. Key restituisce un valore VirtualKey. L'enumerazione VirtualKey include tutti i tasti supportati.

Tasti di modifica

  • Applies to Windows

Windows:

I tasti di modifica, ad esempio CTRL o MAIUSC, vengono in genere premuti dagli utenti in combinazione con altri tasti. L'app può usare queste combinazioni come tasti di scelta rapida per richiamare comandi dell'app.

Puoi rilevare le combinazioni di tasti di scelta rapida usando il codice dei gestori eventi KeyDown e KeyUp. Puoi quindi tenere traccia dello stato premuto dei tasti di modifica a cui sei interessato. Quando si verifica un evento della tastiera per un tasto non di modifica, puoi controllare se, contemporaneamente, uno tasto di modifica si trova nello stato premuto.

Nota  Il tasto ALT è rappresentato dal valore VirtualKey.Menu.

Esempio di tasti di scelta rapida

  • Applies to Windows

Windows:

L'esempio seguente mostra come implementare i tasti di scelta rapida. In questo esempio, gli utenti possono controllare la riproduzione di elementi multimediali usando i pulsanti di riproduzione, pausa e arresto o i tasti di scelta rapida CTRL+P, CTRL+A e CTRL+S. Il codice XAML del pulsante mostra i tasti di scelta rapida tramite le descrizioni comando e le proprietà AutomationProperties nelle etichette dei pulsanti. Questa autodocumentazione è importante per migliorare l'usabilità e l'accessibilità dell'app. Per altre informazioni, vedi Implementare l'accessibilità da tastiera.

Nota inoltre che la pagina imposta su se stessa lo stato attivo per l'input quando viene caricata. Senza questo passaggio, nessun controllo ha lo stato attivo per l'input iniziale e l'app non genera eventi di input finché l'utente non imposta lo stato attivo per l'input manualmente (ad esempio spostandosi con il tasto TAB o facendo clic su un controllo).


<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  L'impostazione di AutomationProperties.AcceleratorKey o di AutomationProperties.AccessKey in XAML fornisce informazioni sulle stringhe per documentare il tasto di scelta rapida per richiamare l'azione specifica. Le informazioni vengono acquisite dai client di automazione dell'interfaccia utente Microsoft, ad esempio l'Assistente vocale, e vengono in genere fornite direttamente all'utente. All'impostazione di AutomationProperties.AcceleratorKey o AutomationProperties.AccessKey non è di per sé associata nessuna azione. Per poter effettivamente implementare il comportamento dei tasti di scelta rapida nell'app, dovrai comunque collegare i gestori per gli eventi KeyDown o KeyUp. Anche la sottolineatura dei tasti di accesso rapido non viene fornita automaticamente. Se vuoi visualizzare il testo sottolineato nell'interfaccia utente, devi sottolineare esplicitamente il testo corrispondente al tasto specifico nello mnemonico come formattazione Underline in linea.

Eventi indirizzati della tastiera

Alcuni eventi, inclusi KeyDown e KeyUp, sono di tipo indirizzato. Gli eventi indirizzati usano la strategia di routing del bubbling. La strategia di routing del bubbling significa che un evento ha origine da un oggetto figlio e viene quindi indirizzato ai successivi oggetti padre nell'albero di oggetti. Ciò offre un'altra opportunità per gestire lo stesso evento e interagire con i dati dello stesso evento.

Osserva l'esempio XAML seguente, in cui vengono gestiti eventi KeyUp per un oggetto Canvas e due oggetti Button. In questo caso, se rilasci un tasto mentre lo stato attivo appartiene a uno degli oggetti Button, viene generato l'evento KeyUp. Viene quindi eseguito il bubbling dell'evento all'oggetto Canvas padre.


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


L'esempio seguente mostra come implementare il gestore dell'evento KeyUp per il contenuto XAML corrispondente nell'esempio precedente.


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);
}


Osserva l'uso della proprietà OriginalSource nel gestore precedente. Qui OriginalSource indica l'oggetto che ha generato l'evento. L'oggetto non può essere StackPanel perché StackPanel non è un controllo e non può avere lo stato attivo. Solo uno dei due pulsanti all'interno di StackPanel possono avere generato l'evento, ma occorre capire quale. Con OriginalSource puoi distinguere l'oggetto di origine effettivo quando gestisci l'evento su un oggetto padre.

Proprietà Handled nei dati dell'evento

In base alla strategia di gestione degli eventi che scegli, un evento di bubbling potrebbe dover essere gestito da un solo gestore di eventi. Ad esempio, se hai un gestore KeyUp specifico collegato a uno dei controlli Button, esso avrebbe la prima opportunità di gestire tale evento. In questo caso, potresti preferire che l'evento non venga anche gestito dal pannello padre. Per questo scenario, devi usare la proprietà Handled nei dati dell'evento.

Lo scopo della proprietà Handled in una classe di dati di eventi indirizzati è segnalare che un altro gestore registrato in precedenza sulla route dell'evento ha già agito. Ciò ha effetto sul comportamento del sistema di eventi indirizzati. Quando imposti la proprietà Handled su true in un gestore di evento, il routing dell'evento viene interrotto e l'evento non viene inviato agli elementi padre successivi.

Metodo AddHandler ed eventi della tastiera già gestiti

Puoi usare una tecnica speciale per associare gestori in grado di agire su eventi già contrassegnati come gestiti. Questa tecnica prevede di usare il metodo AddHandler per registrare un gestore, anziché usare attributi XAML o la sintassi specifica del linguaggio per l'aggiunta di gestori, ad esempio += in C#. Una limitazione generica di questa tecnica è che l'API AddHandler accetta un parametro di tipo RoutedEvent che identifica l'evento indirizzato in questione. Non tutti gli eventi indirizzati forniscono tuttavia un identificatore RoutedEvent. Questa considerazione influisce pertanto sugli eventi indirizzati che è ancora possibile gestire nel caso della proprietà Handled. Gli eventi KeyDown e KeyUp hanno identificatori di evento indirizzato (KeyDownEvent e KeyUpEvent) su UIElement. Altri eventi come TextBox.TextChanged non dispongono invece di identificatori di evento indirizzato e non possono pertanto essere usati per la tecnica basata sul metodo AddHandler.

Esecuzione di comandi

Un numero limitato di elementi dell'interfaccia utente offre il supporto incorporato per l'esecuzione di comandi. L'esecuzione di comandi usa eventi indirizzati correlati all'input nell'implementazione sottostante. Abilita l'elaborazione dell'input dell'interfaccia utente correlato, ad esempio una determinata azione del puntatore o un tasto di scelta rapida specifico, richiamando un solo gestore di comandi.

Se l'esecuzione di comandi è disponibile per un elemento dell'interfaccia utente, puoi valutare se usare le API corrispondenti anziché eventi di input discreti. Per altre informazioni, vedi ButtonBase.Command.

Puoi anche implementare ICommand per incapsulare la funzionalità del comando che richiami da gestori di eventi normali. Ciò ti consente di usare l'esecuzione di comandi anche se non è disponibile alcuna proprietà Command.

Input di testo e controlli

Alcuni controlli usano una gestione personalizzata per rispondere agli eventi della tastiera. Ad esempio, TextBox è un controllo progettato per acquisire e quindi rappresentare visivamente il testo immesso tramite tastiera. Usa KeyUp e KeyDown nella propria logica per acquisire le pressioni di tasti e quindi genera un evento TextChanged personalizzato in caso di modifica del testo.

In generale, puoi comunque aggiungere gestori per gli eventi KeyUp e KeyDown a un oggetto TextBox o a qualsiasi controllo correlato destinato all'elaborazione di input di testo. Nella progettazione prevista, tuttavia, un controllo potrebbe non rispondere a tutti i valori di tasto inviati ad esso mediante appositi eventi. Il comportamento è specifico di ogni controllo.

Ad esempio, ButtonBase (la classe base per Button) elabora KeyUp in modo che possa controllare la BARRA SPAZIATRICE e il tasto INVIO. ButtonBase considera KeyUp equivalente alla pressione del pulsante sinistro del mouse per generare un evento Click. Questa elaborazione dell'evento viene adottata quando ButtonBase esegue l'override del metodo virtuale OnKeyUp. Nella sua implementazione imposta Handled su true. Di conseguenza, qualsiasi padre di un pulsante in ascolto di un evento dei tasti nel caso della BARRA SPAZIATRICE non riceve l'evento già gestito per i propri gestori.

Un altro esempio è TextBox. Alcuni tasti, come quelli di direzione, non sono considerati testo da TextBox, ma specifici del comportamento dell'interfaccia utente del controllo. TextBox contrassegna pertanto questi eventi come gestiti.

I controlli personalizzati possono implementare un comportamento simile per eventi dei tasti eseguendo un override di OnKeyDown / OnKeyUp. Se un controllo personalizzato elabora tasti di scelta rapida specifici oppure prevede un comportamento di controllo o stato attivo simile allo scenario descritto per TextBox, devi inserire questa logica negli override di OnKeyDown / OnKeyUp.

Tastiera virtuale

I controlli di input di testo offrono il supporto automatico per la tastiera virtuale. Quando l'utente imposta lo stato attivo per l'input su un controllo di testo usando l'input tocco, la tastiera virtuale viene automaticamente visualizzata. Quando lo stato attivo per l'input non si trova in un controllo di testo, la tastiera virtuale viene nascosta.

Quando viene visualizzata la tastiera virtuale, l'interfaccia utente viene automaticamente riposizionata per garantire che l'elemento con lo stato attivo rimanga visibile. Ciò può causare la rimozione dalla schermo di altre aree importanti dell'interfaccia utente. Puoi tuttavia disabilitare il comportamento predefinito e apportare modifiche personalizzate all'interfaccia utente quando viene visualizzata la tastiera virtuale. Per altre informazioni, vedi Esempio di risposta alla visualizzazione della tastiera su schermo.

Se crei un controllo personalizzato che richiede l'input di testo, ma non deriva da un controllo di input di testo standard, puoi aggiungere il supporto della tastiera virtuale implementando i pattern corretti di controllo di automazione dell'interfaccia utente. Per altre informazioni, vedi l'esempio di tastiera virtuale.

Le pressioni dei tasti sulla tastiera virtuale generano eventi KeyDown e KeyUp come avviene quando si premono i tasti delle tastiere hardware. La tastiera virtuale, tuttavia, non genera eventi per CTRL+A, CTRL+Z, CTRL+X, CTRL+C e CTRL+V, che sono riservati alla modifica del testo nel controllo di input.

Linee guida per supportare le interazioni con tastiera nell'interfaccia utente

Ecco alcune linee guida per il supporto delle interazioni tramite tastiera.

Informazioni generali

    • Applies to Windows

    Windows:

    Gli utenti devono poter eseguire tutte le attività supportate dall'app usando esclusivamente la tastiera hardware o la tastiera su schermo.

    Nota  La tastiera virtuale viene usata solo per l'input di testo, non per comandi di sistema o dell'app.

  • All'avvio dell'app imposta lo stato attivo iniziale della tastiera sull'elemento con cui gli utenti interagiranno per primo, intuitivamente o con maggiore probabilità. La posizione più adatta è in genere la visualizzazione principale del contenuto dell'app in modo che l'utente possa scorrere subito il contenuto con i tasti freccia. Per altre informazioni sull'impostazione dello stato attivo su controlli specifici, vedi Focus.
    • Applies to Windows

    Windows:

    Assicurati che lo spostamento tra i contenuti mediante i tasti TAB e di direzione segua un ordine logico.
  • Imposta la proprietà TabIndex su un valore maggiore o uguale a 0 per tutti gli elementi di interfaccia utente interattivi che non sono inclusi nell'ordine di tabulazione per impostazione predefinita. L'impostazione della proprietà TabIndex è importante perché gli utenti di utilità per la lettura dello schermo si spostano tra gli elementi interattivi dell'interfaccia utente mediante il tasto TAB.
    • Applies to Windows

    Windows:

    Usa i tasti freccia come tasti di scelta rapida per il corretto spostamento interno tra gli elementi figlio di elementi compositi. Se i nodi della visualizzazione ad albero presentano elementi figlio distinti per la gestione di eventi di espansione-compressione e di attivazione del nodo, usa i tasti di direzione sinistro e destro per offrire funzionalità di espansione-compressione da tastiera.
  • Accertati che ogni elemento dell'interfaccia utente su cui si può fare clic possa anche essere richiamato con la tastiera.
    • Applies to Windows

    Windows:

    Implementa tasti di scelta rapida per le principali funzionalità dell'app. I tasti di scelta rapida sono combinazioni di tasti che consentono di migliorare la produttività offrendo agli utenti un modo efficiente per accedere alle funzionalità dell'app.

    I tasti di accesso sono tasti di scelta rapida per accedere a elementi dell'interfaccia utente dell'app. I tasti di scelta costituiti dal tasto ALT più il tasto di una lettera.

    Esistono anche tasti di scelta rapida per i comandi dell'app. La tua app può includere interfaccia utente corrispondente esattamente al comando. Questo tipo di tasti di scelta rapida è costituito dal tasto CTRL e dal tasto di una lettera.

    Devi offrire agli utenti che si avvalgono di utilità per la lettura dello schermo e di altri tipi di Assistive Technology, un modo semplice per trovare i tasti di scelta rapida dell'app. Dichiara i tasti di scelta rapida nel markup HTML dell'app mediante la proprietà AccessKey. Comunica quindi questi tasti con descrizioni comandi, nomi e descrizioni accessibili o altre forme di comunicazione su schermo. Ricorda di documentare esaurientemente i tasti di scelta rapida nei contenuti della Guida dell'app.

    Per altre indicazioni sull'implementazione dei tasti di scelta rapida, vedi la sezione relativa ai tasti di scelta rapida nelle Linee guida per l'interazione con l'esperienza utente di Windows.

    Non ridefinire in tutte le app di Windows Store i tasti di scelta rapida che gli utenti si aspettano. Per un elenco completo, vediTasti di scelta rapida.

Hardware

Esegui una query sulle funzionalità della tastiera (KeyboardCapabilities) per stabilire se è collegata e individuare a quali aspetti dell'interfaccia utente della tua app la tastiera hardware ha accesso diretto. Per altre informazioni sull'esecuzione di query relative alle funzionalità dei dispositivi, vedi Guida introduttiva: Identificazione dei dispositivi di puntamento.

Associa correttamente i pulsanti della tastiera all'interfaccia utente della tua app (pulsanti Indietro e Avanti).

Feedback visivo

  • Usa i rettangoli di selezione solo con le interazioni tramite tastiera. Se l'utente avvia un'interazione tramite tocco, imposta la dissolvenza graduale degli elementi di interfaccia utente della tastiera. In questo modo manterrai pulita e sgombra l'interfaccia utente.
  • Se un elemento non supporta l'interazione, come nel caso del testo statico, non fornire feedback visivo.
  • Implementa feedback visivo simultaneo per tutti gli elementi che rappresentano la stessa destinazione dell'input.
  • Implementa pulsanti su schermo (ad esempio + e -) come suggerimenti per emulare le manipolazioni basate sul tocco, come panoramica, rotazione, zoom e così via.

Per altre informazioni generali sul feedback visivo, vedi Linee guida per il feedback visivo.

Argomenti correlati

Informazioni concettuali
Risposta alle interazioni degli utenti
Guida introduttiva: Aggiunta di controlli HTML e gestione di eventi
Implementare l'accessibilità da tastiera
Accessibilità nelle app di Windows Store scritte in C++, C# o Visual Basic
Visualizzazione e modifica di testo
Input Hosting Manager e tastiera virtuale

 

 

Mostra:
© 2014 Microsoft