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").
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 è leggero, rapido e non forza l'utente a lasciare l'esperienza cortana o passare al contesto dell'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.
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 |
---|---|---|
|
Certo, quale film vorresti cercare oggi? Abbiamo una grande raccolta. |
Quale film stai cercando? |
|
L'ho aggiunto alla tua playlist. La batteria è quasi scarica. |
L'ho aggiunto alla tua playlist. |
|
Nessun risultato per la query "Viaggi a Las Vegas". |
Non ho trovato viaggi a Las Vegas. |
|
Non ho trovato quel film, non deve essere stato ancora rilasciato. |
Non riuscivo a trovare 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 esattamente come ogni volta. 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 riesco a trovare quel film" invece di "Non sono riuscito a 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 | |
Titolo con testo | |
Titolo con icona 68x68 | nessuna immagine |
Titolo con testo e icona 68x68 | |
Titolo con icona 68x92 | nessuna immagine |
Titolo con testo e icona 68x92 | |
Titolo con icona 280x140 | nessuna immagine |
Titolo con testo e icona 280x140 |
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".
Ecco i passaggi descritti in questa immagine:
- L'utente tocca il microfono per avviare Cortana.
- 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.
- 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.
- In questo caso, l'utente ha più corse che corrispondono alla query, quindi l'app fornisce una schermata di ambiguità che elenca tutti i risultati corrispondenti e chiede: "Quale vuoi annullare?"
- L'utente specifica l'elemento "Vegas Tech Conference".
- Poiché l'annullamento non può essere annullato, l'app fornisce una schermata di conferma che chiede all'utente di confermare la sua intenzione.
- L'utente dice "Sì".
- L'app fornisce quindi una schermata di completamento che mostra il risultato dell'operazione.
Questi passaggi vengono esaminati in modo più dettagliato qui.
Handoff
"Prossimo viaggio" di AdventureWorks senza schermata di 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 riuscivo a trovare un viaggio a Las Vegas".
Tenere presente che l'attività non è già stata eseguita se l'app deve comunque risolvere l'entità richiesta. Si noti, ad esempio, come si dice "Ricerca del tuo viaggio" anziché "Cancelling your trip" perché zero o più viaggi possono essere abbinati e non sappiamo ancora il risultato.
Le stringhe GUI e TTS possono essere uguali, ma non devono essere necessarie. 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
"Annullamento del viaggio" AdventureWorks in corso
Quando un'attività richiede un po' di tempo tra i passaggi, l'app deve eseguire un'istruzione e aggiornare l'utente in una schermata di stato. 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à
- Completamento
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
Conferma di "Annulla viaggio" di AdventureWorks
Alcune attività possono essere confermate in modo implicito dalla natura del comando dell'utente; altri 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à
Risoluzione 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? |
Completamento
Completamento 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 di Vegas Tech Conference. | "Vegas Tech Conference" annullato". |
Error
Errore 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.