Interface do usuário: Gerenciamento das janelas do Windows

Inicializamos a máquina, exibimos objetos na tela, iniciamos programas; o próximo passo é analisar um assunto bastante complexo que de certa forma chega ao papel central da interface gráfica do usuário – o gerenciamento de janelas.Dave Matthews é gerente de programas da equipe da central de experiência do usuário. Ele irá apresentar alguns dos dados e idéias que estão sendo utilizadas na engenharia do Windows 7. --Steven

O homônimo da linha de produtos Windows é simplesmente "janela” – o conceito de UI que mantém informações e controles relacionados na tela de forma organizada. Vamos usar este artigo para compartilhar um pouco de nossa experiência, pensamento e "filosofia de pm" por trás do planejamento e atualização desse recurso de UI bastante conhecido.

A idéia básica de utilizar janelas para organizar a UI não é nova – vem (pelo que sei) desde os primeiros experimentos com interfaces gráficas de usuário em Stanford há mais de 40 anos. Ainda é utilizada depois de todo esse tempo porque é uma maneira útil de apresentar conteúdo e as pessoas gostam de controlar como seu espaço na tela é utilizado. O recurso de “janelas móveis” não é absolutamente necessário para um sistema operacional – a maioria dos telefones celulares e dispositivos do tipo media center só mostram uma página de UI de cada vez – mas é conveniente quando se está fazendo várias coisas ao mesmo tempo ou trabalhando com mais de um aplicativo de uma só vez. O Windows 2.0 foi o primeiro lançamento Windows que permitiu o uso de janelas móveis sobrepostas (o Windows 1.0 só permitia que fossem colocadas lado a lado, mas não sobrepostas. O debate “lado a lado versus sobrepostas” tinha defensores famosos de cada lado – de um estava Bill Gates e no outro Charles Simonyi). Além disso, o Windows também possui o conceito único de “interface de documentos múltiplos” ou MDI, o que permite que um quadro de janela organize múltiplas janelas dentro dele. De certa forma isso é um precursor das interfaces por guias prevalentes nos navegadores.

Um comentário adicional: um dos primeiros debates que acompanharam as conversas "lado a lado versus sobrepostas" no início do projeto do Windows era sobre ter uma barra de menus no alto da tela ou uma cópia da barra de menus para cada janela (ou documento ou aplicativo). Esse era um debate importante no começo, já que a resolução da tela era tão limitada (VGA, 640x480) que a redundância da barra de menus causava um problema de espaço. Nos monitores de grande escala de hoje, essa redundância tornou-se um bem, já que chegar aos elementos de UI com um mouse ou somente identificar visualmente os elementos exige muito menos movimento. Vai entender!

Do Windows 2.0 para o Vista.

Uma área na qual venho me concentrando é a parte de “gerenciamento de janelas” do sistema – especificamente as características envolvidas em mover e organizar as janelas na tela (elas são diferentes dos controles para alternar entre janelas como a barra de tarefas e alt-tab, mas estão intimamente relacionados). Em geral, as pessoas esperam que seja possível mover, redimensionar, maximizar, minimizar e fechar as janelas e esperam que estas sejam organizadas de forma livre e sobrepostas, com a janela em uso disposta na frente. Essas transformações e as ferramentas de apoio (botões de legenda, barras de redimensionamento, etc.) fazem parte das capacidades básicas que permitem que as pessoas arrumem e organizem seu espaço de trabalho de acordo com sua preferência.

A fim de melhorar uma área de recursos como essa, nós analisamos o sistema atual minuciosamente – o que temos e o que funciona? Isto significa analisar a maneira pela qual está sendo utilizada no mercado por ISVs e a maneira pela qual é utilizada e entendida pelos clientes.

 

Botões de legenda oferecem uma maneira simples de minimizar, maximizar e fechar. Janelas redimensionáveis podem ser ajustadas a partir de qualquer uma de suas 4 margens.

Dados sobre Utilização no Mundo Real

Conforme levantado no artigo anterior sobre Barra de Tarefas, as pessoas mantêm em média de 6 a 9 janelas abertas durante uma sessão. Entretanto, ao observar os dados de clientes descobrimos que a maioria do tempo é gasta com somente uma ou duas janelas realmente visíveis na tela a qualquer tempo. É comum trocar de uma janela para outra dentre as várias abertas, mas geralmente poucas permanecem visíveis ao mesmo tempo.

 

Dados do Painel de Feedback do Windows

Como parte de nosso planejamento, observamos como as pessoas gastam seu tempo e energia ao mover e dimensionar suas janelas. Isso nos permite compreender o que está funcionando bem no sistema atual e o que poderia ser melhorado.

Por exemplo, sabemos que maximizar é um recurso amplamente utilizado porque ele otimiza o espaço de trabalho para uma janela enquanto continua sendo fácil alternar para outras. Os usuários reagem a esse conceito e o compreendem. Já que na maior parte do tempo os usuários concentram-se somente nas janelas, isso acaba sendo utilizado freqüentemente. Sabemos que para muitos aplicativos as pessoas exigem cada um dos pixels (por exemplo, em planilhas nas quais alguns poucos pixels ganham toda uma linha extra de coluna) e portanto os recursos acima de maximizar para "tela cheia" se tornam comuns, mesmo para a produtividade do dia-a-dia.

Um problema sobre o qual ouvimos (tão recente quanto os comentários no artigo sobre barra de tarefas!) relativo ao maximizar no Vista é que a cor de transparência personalizada não é muito visível, pois as janelas e a barra de tarefas ficam escuras quando uma janela é maximizada. (No Vista você pode customizar a cor de transparência da janela - e em 29% das sessões uma cor personalizada foi escolhida). O visual mais escuro foi utilizado para ajudar a tornar evidente que a janela está em seu estado especial maximizado. Isso é importante porque se você não notar que uma janela está maximizada e então tentar movê-la, nada vai acontecer – e isso pode ser frustrante ou confuso. Para o Windows 7 estamos buscando uma abordagem diferente a fim de que a cor customizada possa ser mostrada mesmo quando uma janela está maximizada.

 

É interessante notar que as pessoas nem sempre maximizam suas janelas mesmo quando só estão usando uma janela de cada vez. Acreditamos que um motivo importante é que muitas vezes é mais cômodo ler um documento de texto quando a janela não é larga demais. A idéia de maximizar é menos útil num monitor largo quando este faz com que as frases num email se estendam por 50cm ao longo da tela; 10 ou 12 centímetros parece ser uma forma mais prazerosa de ler um texto. Isso é importante porque monitores largos de desktops estão se tornando mais comuns e monitores de aspecto mais largo estão ganhando terreno até mesmo em laptops. Já que o Windows não possui um modo maximizar feito para se ler dessa forma, as pessoas acabam por redimensionar manualmente suas janelas para torná-las tão altas quanto possível, mas de largura limitada. Essa é uma das áreas nas quais uma tarefa comum, como ler um documento, envolve ajustes excessivos nos tamanhos das janelas, pois o sistema não foi otimizado para aquele cenário no hardware atual.

Dados sobre resolução sugerem que monitores de proporção mais larga se tornarão a regra.

 

Poder ver duas janelas lado a lado também é uma necessidade razoavelmente comum. Existe uma variedade de motivos pelos quais alguém pode precisar fazer isso: comparar documentos, fazer referências a um documento em outro, copiar de um documento ou pasta para outro, etc. É preciso um certo número de movimentos com o mouse para colocar duas janelas lado a lado – posicionar e ajustar as duas janelas até que elas tenham o tamanho aproximado de aproximadamente metade da tela. Vemos isso com freqüência com dois aplicativos, tais como comparar um documento num editor de textos com o mesmo documento em formato portable reader.

Usuários com vários monitores conseguem um aumento geral na eficiência das tarefas devido ao fato de que a configuração é otimizada para o caso de se utilizar mais de uma janela ao mesmo tempo. Por exemplo, é muito fácil maximizar uma janela em cada um dos monitores para utilizar o espaço das telas de forma eficiente. Num estudo da Microsoft Research sobre multitarefas, descobriu-se que os participantes que tinham vários monitores podiam alternar entre janelas mais vezes ao clicar diretamente numa janela ao invés de usar a barra de tarefas, sugerindo que a janela para a qual desejam mudar já estava visível. É interessante notar que o número total de trocas entre as janelas foi menor. Em termos de eficiência das tarefas, o melhor clique é aquele que evitamos.

Relatório da pesquisa MSR.

Máquinas com um monitor são mais comuns do que aquelas com vários deles, mas os recursos de gerenciamento de janelas não são otimizados para ver múltiplas janelas ao mesmo tempo em um monitor. A barra de tarefas possui opções de menu de contexto para cascata, empilhar ou lado a lado, mas não achamos que são bem compreendidas ou amplamente utilizadas, então a maioria das pessoas acaba redimensionando e movendo manualmente suas janelas sempre que querem ver duas janelas lado a lado.

Um cenário interessante com múltiplas janelas ocorre quando uma delas é na verdade a área de trabalho. A área de trabalho ainda é comumente utilizada como uma pasta de armazenamento para arquivos importantes ou recentes e acreditamos que as pessoas precisam arrastar e soltar com relativa freqüência entre a área de trabalho e uma janela do explorer, email ou documento. O recurso “Mostrar Área de Trabalho” oferece acesso rápido à área de trabalho, mas também esconde a janela que você está tentando utilizar. Isto significa que você terá ou que encontrar e retornar à janela original ou evitar o recurso Mostrar Área de Trabalho e minimizar tudo manualmente. É muito interessante observar cenários como esse nos quais as pessoas acabam por gastar muito tempo ou esforço gerenciando janelas a fim de completar uma tarefa simples. Este tipo de experiência aparece em nossa telemetria quando vemos seqüências complexas repetidas. É preciso ainda mais trabalho para ver se são erros comuns ou se as pessoas estão tentando realizar uma tarefa de múltiplos passos.

Evolução do design

A fim de encontrar designs bem sucedidos para o sistema de gerenciamento de janelas exploramos várias direções para ver qual mais ajudará as pessoas a serem produtivas. Dos extremos de multitarefas até o foco num único item, buscamos soluções que sejam adequadas e ainda assim otimizadas para a utilização mais comum. Analisamos as abordagens existentes, tais como áreas de trabalho virtuais, que podem ajudar quando da utilização de um grande número de janelas diferentes (especialmente quando estão agrupadas em grupos relacionados), ou docking palettes que ajudem a organizar o espaço de forma eficiente (conforme se vê em aplicativos avançados tais como o Visual Studio). Também analisamos soluções novas adaptadas aos cenários que estamos tentando viabilizar.

Também temos que pensar sobre a variedade de aplicativos que o sistema precisa suportar. Aplicativos SDI (interface de documento único) apóiam-se fortemente no sistema operacional para que este forneça recursos de gerenciamento de janelas, enquanto aplicativos MDI (interface de documentos múltiplos) fornecem alguns dos controles de gerenciamento de janelas por si sós (UI com guias é uma abordagem que está se tornando cada vez mais popular para aplicativos MDI). Alguns aplicativos fornecem seus próprios controles de dimensionamento e de legenda a fim de obter uma aparência ou comportamento únicos. Cada uma dessas abordagens é válida e os diferentes estilos dos aplicativos precisam ser considerados ao se fazer quaisquer alterações no sistema.

Para o Windows 7 nosso objetivo é reduzir o número de cliques e movimentos precisos necessários para realizar atividades comuns. Com base nos dados e comentários que obtivemos de nossos clientes, vários cenários foram sugeridos como considerações importantes para o design. Assim como com todos os designs que estamos discutindo, é importante apresentar os cenários de utilização comuns, tomar decisões claras quanto aos padrões de utilização mais amplamente empregados, abordar necessidades novas e “não enunciadas” e também certificar-se de que manteremos nossa filosofia de “controle”. Alguns dos cenários em ascensão incluem:

  • Poder ver de forma eficiente duas janelas ao mesmo tempo, com uma quantidade mínima de ajuste.
  • Simplicidade ao ver um documento em sua altura total e numa largura de leitura confortável.
  • Ver uma janela fácil e rapidamente na área de trabalho.
  • As ações mais comuns deveriam exigir o mínimo de esforço – maximizar ou restaurar janelas mais rapidamente exigindo precisão mínima do mouse.
  • Atalhos no teclado para substituir movimentos do mouse sempre que possível para usuários avançados.
  • “Opções de janela úteis, previsíveis e eficientes para uma variedade de exibições: de laptops pequenos até telas de 30” ou mais largas; com monitor único ou múltiplos.
  • Dispositivos de entrada diferentes e fáceis de usar: mouse, teclado, trackpad, caneta ou telas sensíveis ao toque.
  • Cor de transparência customizada das janelas visível mesmo quando maximizadas.
  • Geral – clientes se sentem no comando e o sistema torna mais rápido e fácil o processo de realizar tarefas.

Este último ponto é importante, pois a sensação de reação e controle é um teste importante para determinar se o design corresponde à forma na qual as pessoas trabalham. Colocamos designs e modelos no laboratório de utilização para observar como as pessoas reagem e assim que as vemos sorrindo e realizando suas tarefas facilmente sabemos que estamos no caminho certo. O sucesso máximo num design como esse é quando parece tão natural que se torna automático. Isso acontece quando as pessoas sentem que dominaram uma ferramenta conhecida e que o computador está se comportando com deveria.

Isso é um pouco de nossa experiência sobre como refletimos sobre o gerenciamento de janelas e sobre design evolutivo numa parte bem básica da UI. Mal podemos esperar pelos comentários e reações, especialmente assim que as pessoas começarem a ter acesso às compilações do Windows 7.

- Dave