Diretrizes de design da Cortana
Aviso
Não há mais suporte para este recurso a partir da atualização de maio de 2020 do Windows 10 (versão 2004, codinome "20H1").
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 executados em segundo plano solicitem ao usuário confirmação ou desambiguação e, em troca, forneçam ao usuário comentários 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 que está realizando a tarefa.
Usamos um aplicativo de planejamento e gerenciamento de viagens chamado Adventure Works integrado à interface do usuário da Cortana , mostrada aqui, para demonstrar muitos dos conceitos e recursos que discutimos. Para obter mais informações, consulte o exemplo de comando de voz da Cortana.
Escrita conversacional
As interações bem-sucedidas da Cortana exigem que você siga alguns princípios fundamentais ao criar TTS (conversão de texto em fala) e cadeias de caracteres de GUI.
Princípio | Mau exemplo | Exemplo bom |
---|---|---|
|
Claro que pode fazer, que filme você gostaria de procurar hoje? Temos uma grande coleção. |
Claro, qual filme você está procurando? |
|
Eu adicionei isso à sua lista de reprodução. Só para você saber, sua bateria está ficando fraca. |
Eu adicionei isso à sua lista de reprodução. |
|
Nenhum resultado para a consulta "Viagens para Las Vegas". |
Não consegui encontrar nenhuma viagem para Las Vegas. |
|
Não consegui encontrar esse filme, ele não deve ter sido lançado ainda. |
Não consegui encontrar esse filme em nosso catálogo. |
Escreva como as pessoas falam. Não enfatize a precisão gramatical em vez de soar natural. Por exemplo, atalhos verbais amigáveis aos ouvidos, como "quero" ou "tenho", são bons para leitura TTS.
Use o tempo implícito na primeira pessoa sempre que possível e natural. Por exemplo, "Procurando sua próxima viagem da Adventure Works" implica que alguém está procurando, mas não usa a palavra "eu" para especificar.
Use alguma variação para ajudar a tornar seu aplicativo mais natural. Forneça versões diferentes de suas strings TTS e GUI para dizer efetivamente a mesma coisa. Por exemplo, "Que filme você quer ver?" pode ter alternativas como "Que filme você gostaria de assistir?". As 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 sincronizadas.
Use frases como "OK" e "Tudo bem" em suas respostas criteriosamente. Embora possam fornecer reconhecimento e uma sensação de progresso, também podem se tornar 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 uma linguagem que o sistema entenda. Os usuários tendem a repetir os termos que lhes são apresentados. Saiba o que você exibe.
Use alguma variação em suas respostas girando ou selecionando aleatoriamente a partir de uma coleção de respostas alternativas. Por exemplo, "Que filme você quer ver?" e "Que filme você gostaria de assistir?". Isso faz com que seu aplicativo pareça 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 > Sistema > de Fala > Fala Idioma).
Você deve localizar os comandos de voz aos quais seu aplicativo responde e todas as cadeias de caracteres TTS e GUI.
Você deve evitar strings de GUI longas. A tela da Cortana fornece três linhas para respostas e truncará cadeias de caracteres mais longas do que isso.
Para obter mais informações, consulte a seção Globalização e localização.
Recursos de imagem e dimensionamento
Os aplicativos da 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 efetivos, localidade e assim por diante). Tudo o que você precisa fazer é fornecer as imagens e garantir que você use a convenção de nomenclatura e a organização de pastas apropriadas no projeto do 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 ser prejudicadas, dependendo das preferências, habilidades, tipo de dispositivo e 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 pasta e nome de arquivo 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 referido 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 recurso 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 de resolução localizados ou múltiplos. No entanto, no mínimo, recomendamos que você forneça ativos para fatores de escala de 100, 200 e 400.
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 de uma consulta de usuário. Os tamanhos de imagem válidos para os ícones de resultados são:
- 68w x 68h
- 68w x 92h
- 280w x 140h
Modelos de bloco de resultados
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 suportados (com exemplos):
Nome | Exemplo |
---|---|
Apenas título | |
Título com texto | |
Título com ícone 68x68 | Nenhuma imagem |
Título com ícone e texto 68x68 | |
Título com ícone 68x92 | Nenhuma imagem |
Título com ícone e texto 68x92 | |
Título com ícone 280x140 | Nenhuma imagem |
Título com ícone e texto de 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".
Aqui estão as etapas descritas nesta imagem:
- O usuário toca no microfone para iniciar a Cortana.
- O usuário diz "Cancelar minha viagem da Adventure Works para Las 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.
- A Cortana faz a transição para uma tela de entrega que fornece ao usuário comentários de confirmação ("Vou pegar o Adventure Works nisso."), uma barra de status e um botão cancelar.
- 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?"
- O usuário especifica o item "Vegas Tech Conference".
- 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.
- O usuário diz "Sim".
- O aplicativo fornece uma tela de conclusão que mostra o resultado da operação.
Exploramos essas etapas com mais detalhes aqui.
Entrega
AdventureWorks "Próxima viagem" sem tela de entrega
"Próxima viagem" da AdventureWorks com tela de transferência
As tarefas que levam menos de 500 ms para o aplicativo responder e não exigem informações adicionais do usuário podem ser concluídas sem a participação adicional 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 as cadeias de caracteres de entrega GUI e TTS para indicar que o comando de voz foi entendido corretamente. A tela de entrega será exibida por até 5 segundos; se o aplicativo não responder dentro desse tempo, a Cortana apresentará uma tela de erro genérica.
Diretrizes de GUI e TTS para telas de entrega
Indique claramente que a tarefa está em andamento.
Use o tempo presente.
Use um verbo de ação que confirme qual tarefa está iniciando e faça referência à entidade específica.
Use um verbo genérico que não se confirme com a ação incompleta solicitada. 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 para Las Vegas... Não consegui encontrar uma viagem para Las Vegas".
Deixe claro que a tarefa ainda não ocorreu se o aplicativo ainda precisar resolver a entidade solicitada. Por exemplo, observe como dizemos "Procurando sua viagem" em vez de "Cancelando sua viagem" porque zero ou mais viagens podem ser correspondidas e ainda não sabemos o resultado.
As strings GUI e TTS podem ser as mesmas, mas não precisam ser. Tente manter a string da GUI curta para evitar truncamento e duplicação de outros recursos visuais.
TTS | GUI |
---|---|
Procurando sua próxima viagem à Adventure Works. | Procurando sua próxima viagem... |
Procurando sua viagem da Adventure Works para Falls City. | Em busca de viagem para Falls City... |
Progresso
Progresso de "Cancelar viagem" da AdventureWorks
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 as cadeias de caracteres de progresso da GUI e do 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 visualize ou conclua a tarefa por conta própria. A Cortana fornece o texto do link (como "Ir para 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 expirará.
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 que 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ê só deve incluir uma string TTS na primeira tela de progresso. Se forem necessárias mais telas de progresso, envie uma string vazia, {}, como sua string TTS, e forneça apenas uma string GUI.
Condições | TTS | GUI |
---|---|---|
ENTIDADE LIDA NO TURNO ANTERIOR / ENTIDADE MOSTRADA NO DISPLAY | Cancelando esta viagem... | Cancelando esta viagem... |
ENTIDADE NÃO LIDA NO TURNO ANTERIOR / ENTIDADE MOSTRADA NO VISOR | Cancelando sua viagem para Las Vegas... | Cancelando esta viagem... |
ENTIDADE NÃO LIDA NO TURNO ANTERIOR / ENTIDADE NÃO MOSTRADA | Cancelando sua viagem para Las Vegas... | Cancelando sua viagem para Las Vegas... |
Confirmação
Confirmação de "Cancelar viagem" da AdventureWorks
Algumas tarefas podem ser confirmadas implicitamente pela natureza do comando do usuário; outros são potencialmente mais sensíveis e requerem 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á saindo do usuário (como uma mensagem de texto, e-mail ou postagem social)
- Uma ação não pode ser desfeita (como fazer uma compra ou excluir algo)
- O resultado pode ser embaraçoso (como ligar para a pessoa errada)
- É necessário um reconhecimento mais complexo (como transcrição aberta)
Use implícito quando...
- O conteúdo é salvo apenas para o usuário (por exemplo, uma nota para si mesmo)
- Há uma maneira fácil de voltar atrás (como ligar ou desligar um alarme)
- A tarefa precisa ser rápida (como capturar rapidamente uma ideia antes de esquecer)
- A precisão é alta (como um menu simples)
Diretrizes de GUI e TTS para telas de confirmação
Use o tempo presente.
Faça ao usuário uma pergunta inequívoca 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 novo prompt, 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ífica, a menos que tenha sido lido pelo sistema no turno anterior.
Condições | TTS | GUI |
---|---|---|
ENTIDADE NÃO LIDA NO TURNO ANTERIOR / ENTIDADE MOSTRADA NO VISOR | Deseja cancelar a Vegas Tech Conference? | Cancelar esta viagem? |
ENTIDADE NÃO LIDA NO TURNO ANTERIOR / ENTIDADE NÃO MOSTRADA | Deseja cancelar a Vegas Tech Conference? | Cancelar a Vegas Tech Conference? |
ENTIDADE LIDA NO TURNO ANTERIOR / ENTIDADE NÃO MOSTRADA | Quer cancelar esta viagem? | Cancelar esta viagem? |
REPEDIR COM A ENTIDADE MOSTRADA | Queria cancelar esta viagem? | Queria cancelar esta viagem? |
REPEDIR COM ENTIDADE NÃO MOSTRADA | Queria cancelar esta viagem? | Queria cancelar a Vegas Tech Conference? |
Desambiguidade
Desambiguação de "Cancelar viagem" da AdventureWorks
Algumas tarefas podem exigir que o usuário selecione em 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 inequívoca 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 novo prompt, 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ífica, 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 a Las Vegas você deseja cancelar? Conferência de tecnologia de Las Vegas ou festa em Las Vegas? | Qual você deseja cancelar? |
PROMPT - MAIS DE 3 ITENS | Qual viagem a Las Vegas você deseja cancelar? | Qual você deseja cancelar? |
RESOLICITAR | Qual viagem a Las Vegas você queria cancelar? | Qual você deseja cancelar? |
Completion
Conclusão "Cancelar viagem" do AdventureWorks
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 visualize ou conclua a tarefa por conta própria. A Cortana fornece o texto do link (como "Ir para Adventure Works").
Diretrizes de GUI e TTS para telas de conclusão
Use o pretérito.
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, apenas faça referência a ela.
Condições | TTS | GUI |
---|---|---|
ENTIDADE MOSTRADA / ENTIDADE LIDA NO TURNO ANTERIOR | Eu cancelei esta viagem. | Cancelei esta viagem. |
ENTIDADE NÃO MOSTRADA / ENTIDADE NÃO LIDA NO TURNO ANTERIOR | Cancelei sua viagem à Vegas Tech Conference. | Cancelou a "Vegas Tech Conference". |
Erro
Erro "Cancelar viagem" do AdventureWorks
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.
Artigos relacionados
Windows developer