Linee guida di progettazione per Cortana

Avviso

Questa funzionalità non è più supportata a partire dall'aggiornamento di Windows 10 di maggio 2020 (versione 2004, nome codice "20H1").

Per informazioni sul modo in cui Cortana trasforma le esperienze di produttività moderne, vedere Cortana in Microsoft 365.

Le raccomandazioni e le linee guida descrivono come l'app può usare al meglio Cortana per interagire con l'utente, aiutarlo a eseguire un'attività e comunicare chiaramente come si svolge il processo.

Cortana consente alle applicazioni in esecuzione in background per chiedere all'utente conferma o risoluzione delle ambiguità e fornire all'utente un feedback sullo stato del comando vocale. Il processo è semplice, rapido e non forza l'utente a lasciare l'esperienza Cortana o passare il contesto all'applicazione.

Anche se l'utente dovrebbe percepire che Cortana contribuisce a rendere il processo il più semplice possibile, probabilmente desidera che Cortana sia esplicito nello stabilire che è l'app a eseguire l'attività.

Si usa un'app per la pianificazione e la gestione dei viaggi di nome Adventure Works integrata nell'interfaccia utente di Cortana, mostrata qui, per illustrare molti dei concetti e delle funzionalità discussi. Per altre informazioni, vedere l'esempio di comando vocale di Cortana.

Screenshot of the Cortana canvas

Scrittura conversazionale

Le interazioni di Cortana efficaci richiedono all'utente di seguire alcuni principi fondamentali nel creare stringhe GUI e TTS (sintesi vocale).

Principio Esempio non corretto Esempio valido

Efficienza

Usare il minor numero possibile di parole e portare in primo piano le informazioni più importanti.

Certo, quale film vorresti cercare oggi? Abbiamo una grande raccolta.

Quale film stai cercando?

Relevant: rilevanti

Fornire informazioni pertinenti solo all'attività, al contenuto e al contesto.

L'ho aggiunto alla playlist. La batteria è quasi scarica.

L'ho aggiunto alla playlist.

Clear

Evitare ambiguità. Usare un linguaggio di ogni giorno anziché gergo tecnico.

Nessun risultato per la query "Viaggi a Las Vegas".

Non ho trovato viaggi a Las Vegas.

Attendibile

Essere i più accurati possibile. Essere trasparenti su ciò che sta succedendo in background: se un'attività non è ancora terminata, non dire che lo è. Rispettare la privacy: non leggere ad alta voce informazioni private.

Non ho trovato quel film, è possibile che non sia ancora uscito.

Non ho trovato quel film nel nostro catalogo.

Scrivere come parlano le persone. Non enfatizzare la precisione grammaticale rispetto al suono naturale. Ad esempio, le contrazioni verbali con buona assonanza sono adatti alla lettura TTS.

Utilizzare la prima persona ove possibile e naturale. Ad esempio, "Sto cercando il tuo prossimo viaggio AdventureWorks" implica che qualcuno sta eseguendo la ricerca, ma non usa la parola "Io" per specificare.

Usare alcune varianti per rendere l'app più naturale. Fornire versioni diverse delle stringhe TTS e GUI per dire in modo efficace la stessa cosa. Ad esempio, "Quale film vuoi vedere?" potrebbe avere alternative come "Quale film vorresti guardare?". Le persone non dicono la stessa cosa ogni volta nello stesso identico modo. Assicurarsi di mantenere sincronizzate le versioni TTS e GUI.

Usare correttamente frasi come "OK" e "Bene" nelle risposte. Anche se possono dare l'idea della conferma e un senso di avanzamento, possono anche diventare ripetitive se usate troppo spesso e senza variazioni.

Nota

Usare solo frasi di conferma in TTS. Dato lo spazio limitato nell'area di disegno di Cortana, non ripeterle nelle stringhe GUI corrispondenti.

Usare le contrazioni nelle risposte per interazioni più naturali e risparmiare ancora più spazio nell'area di disegno di Cortana . Ad esempio, "Non trovo quel film" invece di "Non sono stato in grado di trovare quel film". Scrivere per l'orecchio e non per l'occhio.

Usare la lingua che il sistema comprende. Gli utenti tendono a ripetere i termini che vengono loro presentati. Essere consapevoli di ciò che si visualizza.

Usare alcune variazioni nelle risposte ruotando, o selezionando in modo casuale, da una raccolta di risposte alternative. Ad esempio, "Quale film vuoi vedere?" e "Quale film vorresti guardare?". In questo modo l'app suona più naturale e unica.

Localizzazione

Per avviare un'azione usando un comando vocale, l'app deve registrare i comandi vocali nella lingua selezionata dall'utente nel dispositivo (Impostazioni > Sistema > Voce > Lingua voce).

È consigliabile localizzare i comandi vocali a cui l'app risponde e tutte le stringhe TTS e GUI.

È consigliabile evitare stringhe GUI lunghe. L'area di disegno di Cortana fornisce tre righe per le risposte e troncherà le stringhe più lunghe.

Per altre informazioni, vedere la sezione Globalizzazione e localizzazione.

Ridimensionamento e risorse immagini

Le app UWP (Universal Windows Platform) possono selezionare automaticamente l'immagine del logo dell'app più appropriata in base a impostazioni specifiche e funzionalità del dispositivo (contrasto elevato, pixel efficaci, impostazioni locali e così via). È sufficiente fornire le immagini e assicurarsi di usare la convenzione di denominazione e l'organizzazione delle cartelle appropriate all'interno del progetto dell'app per le diverse versioni delle risorse. Se non si forniscono le versioni delle risorse consigliate, l'accessibilità, la localizzazione e la qualità dell'immagine possono risentirne a seconda delle preferenze, delle capacità, del tipo di dispositivo e della posizione dell'utente.

Per altri dettagli sulle risorse delle immagini per fattori quali contrasto elevato e scala, vedere Linee guida per le risorse riquadri e icone.

Assegnare un nome alle risorse usando qualificatori. I qualificatori di risorse sono tasti di modifica di cartelle e nomi file che identificano il contesto in cui deve essere usata una determinata versione di una risorsa.

La convenzione di denominazione standard è "foldername/qualifiername-value[_qualifiername-value]/filename.qualifiername-value[_qualifiername-value].ext". Ad esempio: a images/logo.scale-100_contrast-white.png si fa semplicemente riferimento nel codice usando la cartella radice e il nome file: images/logo.png. Vedere Gestire la lingua e l'area e Come assegnare nomi alle risorse usando i qualificatori.

È consigliabile contrassegnare la lingua predefinita nei file di risorse stringa (ad esempio "en-US\resources.resw") e il fattore di scala predefinito per le immagini (ad esempio "logo.scale-100.png"), anche se al momento non si prevede di fornire risorse localizzate o a risoluzione multipla. Tuttavia, come minimo, si consiglia di fornire risorse per 100, 200 e 400 fattori di scala.

Importante

L'icona dell'app usata nell'area del titolo dell'area di disegno di Cortana è l'icona Square44x44Logo specificata nel file "Package.appxmanifest".

È anche possibile specificare un'icona per ogni riquadro dei risultati per una query utente. Le dimensioni valide delle immagini per le icone dei risultati sono:

  • 68w x 68h
  • 68w x 92h
  • 280w x 140h

Modelli di riquadri dei risultati

Viene fornito un set di modelli per i riquadri dei risultati visualizzati nell'area di disegno di Cortana. Usare questi modelli per specificare il titolo del riquadro e se il riquadro include testo e un'immagine dell'icona del risultato. Ogni riquadro può includere fino a tre righe di testo e un'immagine, a seconda del modello specificato.

Ecco i modelli supportati (con esempi):

Nome Esempio
Solo titolo Screenshot of the Cortana canvas showing Title only
Titolo con testo Screenshot of the Cortana canvas showing Title with text
Titolo con icona 68x68 nessuna immagine
Titolo con testo e icona 68x68 Screenshot of the Cortana canvas showing Title with 68x68 icon and text
Titolo con icona 68x92 nessuna immagine
Titolo con testo e icona 68x92 Screenshot of the Cortana canvas showing Title with 68x92 icon and text
Titolo con icona 280x140 nessuna immagine
Titolo con testo e icona 280x140 Screenshot of the Cortana canvas showing Title with 280x140 icon and text

Per altre informazioni sui modelli Cortana, vedere VoiceCommandContentTileType.

Esempio

Questo esempio illustra un flusso di attività end-to-end per un'app in background in Cortana. Si sta usando l'app Adventure Works per annullare un viaggio a Las Vegas. Questo esempio usa il modello "Titolo con testo e icona 68x68".

Screenshot of the Cortana canvas for end to end Cortana background app flow

Ecco i passaggi descritti in questa immagine:

  1. L'utente tocca il microfono per avviare Cortana.
  2. L'utente dice "Annulla il mio viaggio Adventure Works a Vegas" per avviare l'app Adventure Works in background. L'app usa l'area di disegno e la voce di Cortana per interagire con l'utente.
  3. Cortana passa a una schermata di handoff che dà all'utente feedback di acknowledgment ("Mi rivolgerò ad Adventure Works".), una barra di stato e un pulsante annulla.
  4. In questo caso, l'utente ha più viaggi corrispondenti alla query, quindi l'app fornisce una schermata di risoluzione disambiguità che elenca tutti i risultati corrispondenti e chiede: "Quale vuoi annullare?"
  5. L'utente specifica l'elemento "Vegas Tech Conference".
  6. Poiché l'annullamento non può essere annullato, l'app fornisce una schermata di conferma che chiede all'utente di confermare la sua intenzione.
  7. L'utente dice "Sì".
  8. L'app fornisce quindi una schermata di completamento che mostra il risultato dell'operazione.

Questi passaggi vengono esaminati in modo più dettagliato qui.

Handoff

Screenshot of the Cortana canvas for end to end Cortana background app flow using AdventureWorks upcoming trip with no handoff"Prossimo viaggio" di AdventureWorks senza schermata di handoff

Screenshot of the Cortana canvas for end to end Cortana background app flow using AdventureWorks upcoming trip with handoff"Prossimo viaggio" di AdventureWorks con schermata di handoff

Le attività che richiedono all'app meno di 500 ms per rispondere e non richiedono informazioni aggiuntive dall'utente possono essere completate senza altri interventi di Cortana, se non la schermata di completamento.

Se l'applicazione richiede più di 500 ms per rispondere, Cortana fornisce una schermata di handoff. Vengono visualizzati il nome e l'icona dell'app ed è necessario fornire stringhe di handoff GUI e TTS per indicare che il comando vocale è stato compreso correttamente. La schermata di handoff verrà visualizzata per un massimo di 5 secondi. Se l'app non risponde entro questo periodo di tempo, Cortana visualizza una schermata di errore generico.

Linee guida GUI e TTS per le schermate di handoff

Indicare chiaramente che l'attività è in corso.

Usare il tempo presente.

Usare un verbo di azione che confermi l'avvio dell'attività e faccia riferimento all'entità specifica.

Usare un verbo generico che non esegua il commit nell'azione richiesta e incompleta. Ad esempio, "Sto cercando il tuo viaggio" invece di "Sto annullando il tuo viaggio". In questo caso, se non vengono restituiti risultati, l'utente non sente qualcosa come "Sto annullando il tuo viaggio a Las Vegas... Non ho trovato un viaggio a Las Vegas".

Tenere presente che l'attività non è ancora stata eseguita se l'app deve comunque risolvere l'entità richiesta. Si noti, ad esempio, come si dice "Sto cercando il tuo viaggio" anziché "Sto annullando il tuo viaggio" perché è possibile trovare zero o più viaggi e non sappiamo ancora il risultato.

Le stringhe GUI e TTS possono essere uguali, ma non è necessario che lo siano. Provare a mantenere breve la stringa GUI per evitare il troncamento e la duplicazione di altri asset visivi.

Sintesi vocale GUI
Sto cercando il tuo prossimo viaggio Adventure Works. Sto cercando il tuo prossimo viaggio...
Sto cercando il tuo viaggio Adventure Works a Falls City. Sto cercando un viaggio a Falls City...

Avanzamento

Screenshot of the Cortana canvas for end to end Cortana background app flow using AdventureWorks cancel trip progress"Annullamento del viaggio" AdventureWorks in corso

Quando un'attività richiede un po' di tempo tra i passaggi, l'app deve intervenire e aggiornare l'utente su ciò che sta accadendo in una schermata di avanzamento. Viene visualizzata l'icona dell'app ed è necessario specificare stringhe di avanzamento GUI e TTS per indicare che l'attività è in corso.

Dovrebbe essere necessario fornire un collegamento all'app con parametri di avvio per avviare l'app nello stato appropriato. In questo modo, l'utente visualizza o completa l'attività. Cortana fornisce il testo del collegamento, ad esempio "Vai ad Adventure Works".

Le schermate di avanzamento verranno mostrate per 5 secondi ciascuna, dopodiché saranno seguite da un'altra schermata oppure si verificherà il timeout dell'attività.

Queste schermate possono seguire una schermata di avanzamento:

  • Avanzamento
  • Conferma (esplicita, descritta più avanti)
  • Risoluzione dell'ambiguità
  • Completion

Linee guida GUI e TTS per le schermate di avanzamento

Usare il tempo presente.

Usare un verbo di azione che confermi che l'attività è in corso.

GUI: se viene mostrata l'entità, usare un riferimento a essa ("Annullamento di questo viaggio in corso…"); se non viene mostrata alcuna entità, chiamare in modo esplicito l'entità ("Annullamento di 'Vegas Tech Conference'").

TTS: è opportuno includere solo una stringa TTS nella prima schermata di avanzamento. Se sono necessarie altre schermate di avanzamento, inviare una stringa vuota, {}, come stringa TTS, e specificare solo una stringa GUI.

Condizioni Sintesi vocale GUI
LETTURA ENTITÀ AL TURNO PRECEDENTE/ENTITÀ MOSTRATA SUL DISPLAY Annullamento di questo viaggio in corso... Annullamento di questo viaggio in corso...
ENTITÀ NON LETTA AL TURNO PRECEDENTE/ENTITÀ MOSTRATA SUL DISPLAY Annullamento del tuo viaggio a Las Vegas in corso... Annullamento di questo viaggio in corso...
ENTITÀ NON LETTA AL TURNO PRECEDENTE/ENTITÀ NON VISUALIZZATA Annullamento del tuo viaggio a Las Vegas in corso... Annullamento del tuo viaggio a Las Vegas in corso...

Conferma

Screenshot of the Cortana canvas for end to end Cortana background app flow using AdventureWorks cancel trip confirmationConferma di "Annulla viaggio" di AdventureWorks

Alcune attività possono essere confermate in modo implicito dalla natura del comando dell'utente; altre sono potenzialmente più sensibili e richiedono una conferma esplicita. Ecco alcune linee guida da seguire per decidere se usare la conferma esplicita o implicita.

Le stringhe GUI e TTS nella schermata di conferma vengono entrambe specificate dall'app e l'icona dell'app, se fornita, viene visualizzata al posto dell'avatar di Cortana.

Dopo che il cliente risponde alla conferma, l'applicazione deve fornire la schermata successiva entro 500 ms per evitare di passare a una schermata di avanzamento.

Usare la conferma esplicita quando...

  • Il contenuto sta lasciando l'utente (ad esempio un messaggio di testo, un'e-mail o un post sui social)
  • Non è possibile annullare un'azione (ad esempio, effettuare un acquisto o eliminare un elemento)
  • Il risultato potrebbe essere imbarazzante (ad esempio, chiamare la persona sbagliata)
  • È necessario un riconoscimento più complesso (ad esempio, una trascrizione aperta)

Usare la risposta implicita quando...

  • Il contenuto viene salvato solo per l'utente (ad esempio, una nota all'utente)
  • C'è un modo semplice per tornare indietro (ad esempio, attivare o disattivare un allarme)
  • L'attività deve essere veloce (ad esempio, acquisire rapidamente un'idea prima di dimenticarla)
  • L'accuratezza è elevata (ad esempio, un menu semplice)

Linee guida GUI e TTS per le schermate di conferma

Usare il tempo presente.

Porre all'utente una domanda non ambigua a cui è possibile rispondere con "Sì" o "No". La domanda deve confermare in modo esplicito ciò che l'utente sta tentando di fare e non dovrebbero esserci altre opzioni ovvie.

Specificare una variante della domanda per un nuovo prompt, nel caso in cui il comando vocale non venga compreso la prima volta.

GUI: se viene mostrata l'entità, usare un riferimento a essa. Se non viene mostrata alcuna entità, chiamare in modo esplicito l'entità.

TTS: per maggiore chiarezza, fare sempre riferimento all'elemento o all'entità specifica, a meno che non sia stata letta dal sistema nel turno precedente.

Condizioni Sintesi vocale GUI
ENTITÀ NON LETTA AL TURNO PRECEDENTE/ENTITÀ MOSTRATA SUL DISPLAY Vuoi annullare il Vegas Tech Conference? Annullare questo viaggio?
ENTITÀ NON LETTA AL TURNO PRECEDENTE/ENTITÀ NON VISUALIZZATA Vuoi annullare il Vegas Tech Conference? Annullare il Vegas Tech Conference?
ENTITÀ LETTA AL PRIMO TURNO/ENTITÀ NON MOSTRATA Annullare questo viaggio? Annullare questo viaggio?
NUOVO PROMPT CON ENTITÀ MOSTRATA Hai voluto annullare questo viaggio? Hai voluto annullare questo viaggio?
NUOVO PROMPT CON ENTITÀ NON MOSTRATA Hai voluto annullare questo viaggio? Hai voluto annullare il Vegas Tech Conference?

Risoluzione dell'ambiguità

Screenshot of the Cortana canvas for end to end Cortana background app flow using AdventureWorks cancel trip disambiguationRisoluzione disambiguità "Annulla viaggio" di AdventureWorks

Alcune attività potrebbero richiedere all'utente di selezionare in un elenco di entità per completare l'attività.

Le stringhe GUI e TTS nella schermata di risoluzione disambiguità vengono entrambe specificate dall'app e l'icona dell'app, se fornita, viene visualizzata al posto dell'avatar di Cortana.

Dopo che il cliente risponde alla domanda di risoluzione disambiguità, l'applicazione deve fornire la schermata successiva entro 500 ms per evitare di passare a una schermata di avanzamento.

Linee guida GUI e TTS per le schermate di risoluzione disambiguità

Usare il tempo presente.

Porre all'utente una domanda non ambigua a cui sia possibile rispondere con il titolo o la riga di testo di qualsiasi entità visualizzata.

È possibile visualizzare fino a 10 entità.

Ogni entità deve avere un titolo univoco.

Specificare una variante della domanda per un nuovo prompt, nel caso in cui il comando vocale non venga compreso la prima volta.

TTS: per maggiore chiarezza, fare sempre riferimento all'elemento o all'entità specifica, a meno che non sia stata pronunciata al turno precedente.

TTS: non leggere l'elenco di entità, a meno che non ce ne siano più di tre e siano brevi.

Condizioni Sintesi vocale GUI
PROMPT - NON PIÙ DI TRE ELEMENTI Quale viaggio a Vegas vuoi annullare? Vegas Tech Conference o Party a Vegas? Quale vuoi annullare?
PROMPT : PIÙ DI 3 ELEMENTI Quale viaggio a Vegas vuoi annullare? Quale vuoi annullare?
NUOVO PROMPT Quale viaggio a Vegas volevi annullare? Quale vuoi annullare?

Completion

Screenshot of the Cortana canvas for end to end Cortana background app flow using AdventureWorks cancel trip completionCompletamento di "Annulla viaggio" di AdventureWorks

Al completamento dell'attività, l'app dovrebbe informare l'utente che l'attività richiesta è stata completata correttamente.

Le stringhe GUI e TTS nella schermata di completamento vengono entrambe specificate dall'app e l'icona dell'app, se fornita, viene visualizzata al posto dell'avatar di Cortana.

Dovrebbe essere necessario fornire un collegamento all'app con parametri di avvio per avviare l'app nello stato appropriato. In questo modo, l'utente visualizza o completa l'attività. Cortana fornisce il testo del collegamento, ad esempio "Vai ad Adventure Works".

Linee guida GUI e TTS per le schermate di completamento

Usare il tempo passato.

Usare un verbo di azione per indicare in modo esplicito che l'attività è stata completata.

Se viene mostrata l'entità o si è fatto riferimento a essa al turno precedente, fare riferimento solo a essa.

Condizioni Sintesi vocale GUI
ENTITÀ MOSTRATA/LETTURA ENTITÀ AL TURNO PRECEDENTE Ho annullato questo viaggio. Ha annullato questo viaggio.
ENTITÀ NON MOSTRATA/ENTITÀ NON LETTA AL TURNO PRECEDENTE Ho annullato il tuo viaggio al Vegas Tech Conference. "Vegas Tech Conference" annullato".

Error

Screenshot of the Cortana canvas for end to end Cortana background app flow using AdventureWorks cancel trip errorErrore di "Annulla viaggio" di AdventureWorks

Quando si verifica uno degli errori seguenti, Cortana visualizza lo stesso messaggio di errore generico.

  • Il servizio app termina in modo imprevisto.
  • Cortana non comunica con il servizio app.
  • L'app non fornisce una schermata dopo che Cortana mostra una schermata di handoff o di avanzamento per 5 secondi.