Diretrizes de design da Cortana

Aviso

Esse recurso não tem mais suporte a partir da Atualização de maio de 2020 do Windows 10 (versão 2004, nome de código "20H1").

Confira Cortana no Microsoft 365 para saber como a Cortana está transformando experiências de produtividade modernas.

Essas diretrizes e recomendações descrevem como seu aplicativo pode usar melhor a Cortana para interagir com o usuário, ajudá-lo a realizar uma tarefa e comunicar claramente como tudo está acontecendo.

A Cortana permite que os aplicativos em execução em segundo plano solicitem ao usuário confirmação ou desambiguação e, em troca, forneçam comentários ao usuário sobre o status do comando de voz. O processo é leve, rápido e não força o usuário a sair da experiência da Cortana ou alternar o contexto para o aplicativo.

Embora o usuário deva sentir que a Cortana está ajudando a tornar o processo o mais leve e fácil possível, você provavelmente deseja que a Cortana também seja explícita de que seu aplicativo está realizando a tarefa.

Usamos um aplicativo de planejamento e gerenciamento de viagens chamado Adventure Works integrado à interface do usuário da Cortana , mostrado aqui, para demonstrar muitos dos conceitos e recursos que discutimos. Para obter mais informações, consulte o exemplo de comando de voz da Cortana.

Captura de tela da tela da Cortana

Escrita conversacional

Interações bem-sucedidas da Cortana exigem que você siga alguns princípios fundamentais ao criar cadeias de caracteres TTS (conversão de texto em fala) e GUI.

Princípio Exemplo inválido Exemplo bom

Eficiente

Use o menor número possível de palavras e coloque as informações mais importantes na frente.

Com certeza pode fazer, que filme você gostaria de procurar hoje? Temos uma grande coleção.

Claro, que filme você está procurando?

Relevantes

Forneça informações pertinentes somente à tarefa, conteúdo e contexto.

Eu aditei isso à sua playlist. Só para você saber, sua bateria está ficando baixa.

Eu aditei isso à sua playlist.

Limpar

Evite ambiguidade. Use a linguagem cotidiana em vez de jargão técnico.

Nenhum resultado para a consulta "Trips to Las Vegas".

Não encontrei nenhuma viagem a Las Vegas.

Confiável

Seja o mais preciso possível. Seja transparente sobre o que está acontecendo em segundo plano— se uma tarefa ainda não tiver sido concluída, não diga que ela foi concluída. Respeitar a privacidade — não leia informações privadas em voz alta.

Eu não consegui encontrar esse filme, ele não deve ter sido lançado ainda.

Não encontrei esse filme em nosso catálogo.

Escreva como as pessoas falam. Não enfatize a precisão gramatical ao soar natural. Por exemplo, atalhos verbais amigáveis ao ouvido, como "quer" ou "tem que" são bons para leitura do TTS.

Use o tempo implícito em primeira pessoa sempre que possível e natural. Por exemplo, "Procurando sua próxima viagem da Adventure Works" implica que alguém está fazendo a aparência, mas não usa a palavra "I" para especificar.

Use alguma variação para ajudar a tornar seu aplicativo mais natural. Forneça diferentes versões de suas cadeias de caracteres TTS e GUI para dizer efetivamente a mesma coisa. Por exemplo, "Que filme você quer ver?" pode ter alternativas como "Qual filme você gostaria de watch?". Pessoas não dizem a mesma coisa exatamente da mesma maneira todas as vezes. Apenas certifique-se de manter suas versões TTS e GUI em sincronia.

Use frases como "OK" e "Tudo bem" em suas respostas criteriosamente. Embora possam fornecer reconhecimento e uma sensação de progresso, eles também podem ficar repetitivos se usados com muita frequência e sem variação.

Observação

Use frases de confirmação somente no TTS. Devido ao espaço limitado na tela da Cortana , não os repita nas cadeias de caracteres de GUI correspondentes.

Use contrações em suas respostas para interações mais naturais e economia de espaço adicional na tela da Cortana . Por exemplo, não consigo encontrar esse filme" em vez de "Não consegui encontrar esse filme". Escreva para o ouvido, não para o olho.

Use a linguagem que o sistema entende. Os usuários tendem a repetir os termos com os quais são apresentados. Saiba o que você exibe.

Use alguma variação em suas respostas girando ou selecionando aleatoriamente em uma coleção de respostas alternativas. Por exemplo, "Que filme você quer ver?" e "Qual filme você gostaria de watch?". Isso torna seu aplicativo mais natural e exclusivo.

Localização

Para iniciar uma ação usando um comando de voz, seu aplicativo deve registrar comandos de voz no idioma que o usuário selecionou em seu dispositivo (Configurações > Linguagem de Fala de Fala > do Sistema>).

Você deve localizar os comandos de voz aos quais seu aplicativo responde e todas as cadeias de caracteres TTS e GUI.

Você deve evitar cadeias de caracteres de GUI longas. A tela da Cortana fornece três linhas para respostas e truncará cadeias de caracteres por mais tempo do que isso.

Para obter mais informações, consulte a seção Globalização e localização.

Recursos de imagem e dimensionamento

os aplicativos Plataforma Universal do Windows (UWP) podem selecionar automaticamente a imagem de logotipo do aplicativo mais apropriada com base em configurações específicas e recursos do dispositivo (alto contraste, pixels eficazes, localidade e assim por diante). Tudo o que você precisa fazer é fornecer as imagens e garantir que você use a convenção de nomenclatura apropriada e a organização de pastas dentro do projeto de aplicativo para as diferentes versões de recursos. Se você não fornecer as versões de recursos recomendadas, a acessibilidade, a localização e a qualidade da imagem poderão sofrer, dependendo das preferências, das habilidades, do tipo de dispositivo e da localização do usuário.

Para obter mais detalhes sobre recursos de imagem para fatores de alto contraste e escala, consulte Diretrizes para ativos de bloco e ícone.

Você nomeia recursos usando qualificadores. Os qualificadores de recursos são modificadores de nome de arquivo e pasta que identificam o contexto no qual uma versão específica de um recurso deve ser usada.

A convenção de nomenclatura padrão é "foldername/qualifiername-value[_qualifiername-value]/filename.qualifiername-value[_qualifiername-value].ext". Por exemplo: images/logo.scale-100_contrast-white.png é simplesmente referenciado no código usando a pasta raiz e o nome do arquivo: images/logo.png. Consulte Gerenciar idioma e região e Como nomear recursos usando qualificadores.

Recomendamos que você marque o idioma padrão em arquivos de recursos de cadeia de caracteres (como "en-US\resources.resw") e o fator de escala padrão em imagens (como "logo.scale-100.png"), mesmo que você não planeje fornecer recursos localizados ou de várias resoluções no momento. No entanto, no mínimo, recomendamos que você forneça ativos para 100, 200 e 400 fatores de escala.

Importante

O ícone do aplicativo usado na área de título da tela da Cortana é o ícone Square44x44Logo especificado no arquivo "Package.appxmanifest".

Você também pode especificar um ícone para cada bloco de resultado para uma consulta de usuário. Os tamanhos de imagem válidos para ícones de resultados são:

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

Modelos de bloco de resultado

Um conjunto de modelos é fornecido para os blocos de resultados exibidos na tela da Cortana. Use esses modelos para especificar o título do bloco e se o bloco inclui texto e uma imagem de ícone de resultado. Cada bloco pode incluir até três linhas de texto e uma imagem, dependendo do modelo especificado.

Aqui estão os modelos com suporte (com exemplos):

Nome Exemplo
Somente título Captura de tela da tela da Cortana mostrando somente Título
Título com texto Captura de tela da tela da Cortana mostrando Título com texto
Título com ícone 68x68 nenhuma imagem
Título com o ícone e o texto 68x68 Captura de tela da tela da Cortana mostrando Título com o ícone e o texto 68x68
Título com ícone 68x92 nenhuma imagem
Título com o ícone e o texto 68x92 Captura de tela da tela da Cortana mostrando Título com o ícone e o texto 68x92
Título com ícone 280x140 nenhuma imagem
Título com o ícone e o texto 280x140 Captura de tela da tela da Cortana mostrando Título com o ícone e o texto 280x140

Consulte VoiceCommandContentTileType para obter mais informações sobre modelos da Cortana.

Exemplo

Este exemplo demonstra um fluxo de tarefas de ponta a ponta para um aplicativo em segundo plano na Cortana. Estamos usando o aplicativo Adventure Works para cancelar uma viagem a Las Vegas. Este exemplo usa o modelo "Título com ícone e texto 68x68".

Captura de tela da tela da Cortana para o fluxo de aplicativo em segundo plano da Cortana de ponta a ponta

Estas são as etapas descritas nesta imagem:

  1. O usuário toca no microfone para iniciar a Cortana.
  2. O usuário diz "Cancelar minha viagem à Adventure Works para Vegas" para iniciar o aplicativo Adventure Works em segundo plano. O aplicativo usa a fala e a tela da Cortana para interagir com o usuário.
  3. A Cortana faz a transição para uma tela de entrega que fornece aos usuários comentários de confirmação ("Eu obterei o Adventure Works sobre isso."), uma barra de status e um botão cancelar.
  4. Nesse caso, o usuário tem várias viagens que correspondem à consulta, portanto, o aplicativo fornece uma tela de desambiguação que lista todos os resultados correspondentes e pergunta: "Qual você deseja cancelar?"
  5. O usuário especifica o item "Vegas Tech Conference".
  6. Como o cancelamento não pode ser desfeito, o aplicativo fornece uma tela de confirmação que solicita que o usuário confirme sua intenção.
  7. O usuário diz "Sim".
  8. Em seguida, o aplicativo fornece uma tela de conclusão que mostra o resultado da operação.

Exploramos essas etapas com mais detalhes aqui.

Entrega

Captura de tela da tela da Cortana para o fluxo de aplicativo em segundo plano da Cortana de ponta a ponta usando a próxima viagem do AdventureWorks sem uma "próxima viagem" da AdventureWorks sem tela de entrega

Captura de tela da tela da Cortana para o fluxo de aplicativo em segundo plano da Cortana de ponta a ponta usando a próxima viagem do AdventureWorks com a mão AdventureWorks "Próxima viagem" com tela de entrega

Tarefas que levam menos de 500ms para seu aplicativo responder e não exigem informações adicionais do usuário podem ser concluídas sem mais participação da Cortana, além de exibir a tela de conclusão.

Se o aplicativo exigir mais de 500 ms para responder, a Cortana fornecerá uma tela de entrega. O ícone e o nome do aplicativo são exibidos e você deve fornecer cadeias de caracteres de entrega gui e TTS para indicar que o comando de voz foi compreendido corretamente. A tela de entrega será exibida por até 5 segundos; se o aplicativo não responder nesse momento, a Cortana apresentará uma tela de erro genérica.

Diretrizes de GUI e TTS para telas de entrega

Indica claramente que a tarefa está em andamento.

Use o tempo presente.

Use um verbo de ação que confirme qual tarefa está iniciando e referencie a entidade específica.

Use um verbo genérico que não se confirme com a ação solicitada e incompleta. Por exemplo, "Procurando sua viagem" em vez de "Cancelando sua viagem". Nesse caso, se nenhum resultado for retornado, o usuário não ouvirá algo como "Cancelando sua viagem a Las Vegas... Não consegui encontrar uma viagem para Las Vegas".

Fique claro que a tarefa ainda não ocorreu se o aplicativo ainda precisar resolve a entidade solicitada. Por exemplo, observe como dizemos "Procurando sua viagem" em vez de "Cancelar sua viagem" porque zero ou mais viagens podem ser correspondidas e ainda não sabemos o resultado.

As cadeias de caracteres GUI e TTS podem ser as mesmas, mas não precisam ser. Tente manter a cadeia de caracteres gui curta para evitar truncamento e duplicação de outros ativos visuais.

TTS GUI
Procurando sua próxima viagem da Adventure Works. Procurando sua próxima viagem...
Procurando sua viagem da Adventure Works para Falls City. Procurando uma viagem para Falls City...

Progresso

Captura de tela da tela da Cortana para o fluxo de aplicativo em segundo plano da Cortana de ponta a ponta usando AdventureWorks cancelar progresso da viagemAdventureWorks progresso "Cancelar viagem"

Quando uma tarefa demora um pouco entre as etapas, seu aplicativo precisa intervir e atualizar o usuário sobre o que está acontecendo em uma tela de progresso. O ícone do aplicativo é exibido e você deve fornecer cadeias de caracteres de progresso gui e TTS para indicar que a tarefa está em andamento.

Você deve fornecer um link para seu aplicativo com parâmetros de inicialização para iniciar o aplicativo no estado apropriado. Isso permite que o usuário exiba ou conclua a tarefa por conta própria. A Cortana fornece o texto do link (por exemplo, "Ir para o Adventure Works").

As telas de progresso serão exibidas por 5 segundos cada, após os quais devem ser seguidas por outra tela ou a tarefa atingirá o tempo limite.

Essas telas podem seguir uma tela de progresso:

  • Progresso
  • Confirmação (explícita, descrita posteriormente)
  • Desambiguidade
  • Completion

Diretrizes de GUI e TTS para telas de progresso

Use o tempo presente.

Use um verbo de ação que confirme se a tarefa está em andamento.

GUI: se a entidade for mostrada, use uma referência a ela ("Cancelando esta viagem..."); se nenhuma entidade for mostrada, chame explicitamente a entidade ("Cancelando 'Vegas Tech Conference'").

TTS: você deve incluir apenas uma cadeia de caracteres TTS na primeira tela de progresso. Se forem necessárias telas de progresso adicionais, envie uma cadeia de caracteres vazia, {}, como sua cadeia de caracteres TTS e forneça apenas uma cadeia de caracteres gui.

Condições TTS GUI
ENTITY READ ON PRIOR TURN / ENTITY SHOWN ON DISPLAY Cancelando esta viagem... Cancelando esta viagem...
ENTIDADE NÃO LIDA NA ATIVAÇÃO ANTERIOR/ENTIDADE MOSTRADA EM EXIBIÇÃO Cancelando sua viagem a Vegas... Cancelando esta viagem...
ENTIDADE NÃO LIDA NO TURNO ANTERIOR/ENTIDADE NÃO MOSTRADA Cancelando sua viagem a Vegas... Cancelando sua viagem a Vegas...

Confirmação

Captura de tela da tela da Cortana para o fluxo de aplicativo em segundo plano da Cortana de ponta a ponta usando a confirmação de viagem de cancelamento adventureworksAdventureWorks confirmação de "Cancelar viagem"

Algumas tarefas podem ser confirmadas implicitamente pela natureza do comando do usuário; outros são potencialmente mais sensíveis e exigem confirmação explícita. Aqui estão algumas diretrizes para quando usar a confirmação explícita versus implícita.

As cadeias de caracteres GUI e TTS na tela de confirmação são especificadas pelo aplicativo e o ícone do aplicativo, se fornecido, é mostrado em vez do avatar da Cortana .

Depois que o cliente responder à confirmação, seu aplicativo deverá fornecer a próxima tela dentro de 500 ms para evitar ir para uma tela de progresso.

Use explícito quando...

  • O conteúdo está deixando o usuário (por exemplo, uma mensagem de texto, email ou postagem social)
  • Uma ação não pode ser desfeita (como fazer uma compra ou excluir algo)
  • O resultado pode ser embaraçoso (por exemplo, chamar a pessoa errada)
  • O reconhecimento mais complexo é necessário (como transcrição aberta)

Use implícito quando...

  • O conteúdo é salvo somente para o usuário (por exemplo, uma anotação para si mesmo)
  • Há uma maneira fácil de recuar (por exemplo, ativar ou desativar um alarme)
  • A tarefa precisa ser rápida (como capturar rapidamente uma ideia antes de esquecer)
  • A precisão é alta (por exemplo, um menu simples)

Diretrizes de GUI e TTS para telas de confirmação

Use o tempo presente.

Faça uma pergunta inequívoca ao usuário que possa ser respondida com "Sim" ou "Não". A pergunta deve confirmar explicitamente o que o usuário está tentando fazer e não deve haver outras opções óbvias.

Forneça uma variação da pergunta para um prompt novamente, caso o comando de voz não seja compreendido na primeira vez.

GUI: se a entidade for mostrada, use uma referência a ela. Se nenhuma entidade for mostrada, chame explicitamente a entidade.

TTS: para maior clareza, sempre faça referência ao item ou entidade específico, a menos que tenha sido lido pelo sistema na curva anterior.

Condições TTS GUI
ENTIDADE NÃO LIDA NA ATIVAÇÃO ANTERIOR/ENTIDADE MOSTRADA NA EXIBIÇÃO Deseja cancelar a Vegas Tech Conference? Cancelar esta viagem?
ENTIDADE NÃO LIDA NA ATIVAÇÃO ANTERIOR/ENTIDADE NÃO MOSTRADA Deseja cancelar a Vegas Tech Conference? Cancelar a Conferência Técnica de Vegas?
ENTITY READ ON PRIOR TURN/ENTITY NOT SHOWN Deseja cancelar esta viagem? Cancelar esta viagem?
REPROMPT COM ENTIDADE MOSTRADA Você queria cancelar esta viagem? Você queria cancelar esta viagem?
REPROMPT COM ENTIDADE NÃO MOSTRADA Você queria cancelar esta viagem? Você queria cancelar a Vegas Tech Conference?

Desambiguidade

Captura de tela da tela da Cortana para o fluxo de aplicativo em segundo plano da Cortana de ponta a ponta usando a desambiguação de cancelamento de viagem adventureWorks "Cancelar viagem"

Algumas tarefas podem exigir que o usuário selecione uma lista de entidades para concluir a tarefa.

As cadeias de caracteres GUI e TTS na tela de desambiguação são especificadas pelo aplicativo e o ícone do aplicativo, se fornecido, é mostrado em vez do avatar da Cortana .

Depois que o cliente responder à pergunta de desambiguação, seu aplicativo deverá fornecer a próxima tela dentro de 500 ms para evitar ir para uma tela de progresso.

Diretrizes de GUI e TTS para telas de desambiguação

Use o tempo presente.

Faça ao usuário uma pergunta não ambígua que possa ser respondida com o título ou a linha de texto de qualquer entidade exibida.

Até 10 entidades podem ser exibidas.

Cada entidade deve ter um título exclusivo.

Forneça uma variação da pergunta para um prompt novamente, caso o comando de voz não seja compreendido na primeira vez.

TTS: para maior clareza, sempre faça referência ao item ou entidade específico, a menos que tenha sido falado no turno anterior.

TTS: não leia a lista de entidades, a menos que haja três ou menos e elas sejam curtas.

Condições TTS GUI
PROMPT - 3 OU MENOS ITENS Qual viagem de Vegas você quer cancelar? Vegas Tech Conference or Party em Vegas? Qual delas você deseja cancelar?
PROMPT – MAIS DE 3 ITENS Qual viagem de Vegas você quer cancelar? Qual delas você deseja cancelar?
REPROMPT Qual viagem de Vegas você queria cancelar? Qual delas você deseja cancelar?

Completion

Captura de tela da tela da Cortana para o fluxo de aplicativo em segundo plano da Cortana de ponta a ponta usando AdventureWorks cancelar conclusão da viagemAdventureWorks Conclusão de "Cancelar viagem"

Após a conclusão bem-sucedida da tarefa, seu aplicativo deve informar ao usuário que a tarefa solicitada foi concluída com êxito.

As cadeias de caracteres GUI e TTS na tela de conclusão são especificadas pelo aplicativo e o ícone do aplicativo, se fornecido, é mostrado em vez do avatar da Cortana .

Você deve fornecer um link para seu aplicativo com parâmetros de inicialização para iniciar o aplicativo no estado apropriado. Isso permite que o usuário exiba ou conclua a tarefa por conta própria. A Cortana fornece o texto do link (por exemplo, "Ir para a Adventure Works").

Diretrizes de GUI e TTS para telas de conclusão

Use o tempo passado.

Use um verbo de ação para declarar explicitamente que a tarefa foi concluída.

Se a entidade for mostrada ou tiver sido referenciada no turno anterior, faça referência apenas a ela.

Condições TTS GUI
ENTIDADE MOSTRADA/ENTITY READ ON PRIOR TURN Cancelei esta viagem. Cancelou esta viagem.
ENTIDADE NÃO MOSTRADA/ENTIDADE NÃO LIDA NO TURNO ANTERIOR Cancelei sua viagem à Conferência Técnica de Vegas. Cancelou a "Vegas Tech Conference".

Erro

Captura de tela da tela da Cortana para o fluxo de aplicativo em segundo plano da Cortana de ponta a ponta usando o erro de cancelar viagem do AdventureWorksAdventureWorks erro "Cancelar viagem"

Quando ocorre um dos erros a seguir, a Cortana exibe a mesma mensagem de erro genérica.

  • O serviço de aplicativo é encerrado inesperadamente.
  • A Cortana não consegue se comunicar com o serviço de aplicativo.
  • O aplicativo não fornece uma tela depois que a Cortana mostra uma tela de entrega ou uma tela de progresso por 5 segundos.