• Nenhum resultado encontrado

Capítulo 4 Implementação

4.2.4 Componentes auxiliares e estrutura de dados

MyNode

Esta estrutura de dados foi criada para representar um nó presente na interface, mas representa também o passo realizado. Esta estrutura contém informação que é logo acessível através da classe AccessibilityNodeInfo, tais como o nome e descrição do elemento, o packageName e o className e se guarda algum estado (por exemplo, o estado de uma checkbox). Os dados referentes ao tamanho do elemento e a sua posição está relacionada com a resolução do ecrã. De forma a que o tutorial não seja limitado a resolução do ecrã onde foi capturado, em vez de trabalhar logo com os valores fornecidos pela classe AccessibilityNodeInfo, calculamos rácios dos tamanhos dos elementos e da sua posição no ecrã. Como esta estrutura representa um passo realizado, adicionamos o link do áudio com a descrição que é fornecida pelo criador do tutorial referente ao passo

Ainda é fornecido um método de comparação, para que seja possível poder comparar os nós e saber se o nó clicado corresponde ao capturado no tutorial.

Tutorial

É nesta estrutura de dados onde temos a representação de um tutorial. É fornecido um nome e descrição do tutorial de forma a informar o utilizador de que se trata o tutorial e poder identificá-lo. Possui também uma lista de todos os passos efetuados neste tutorial. Esta lista é composta por MyNodes, a estrutura descrita na secção anterior. Por fim, dispõe de informação referente dos vários ecrãs onde é possível iniciar este tutorial.

28

DBHelper

Como anunciado anteriormente, a informação sobre os tutoriais é armazenada na Firebase. De forma a simplificar as operações com a base de dados criamos um modulo responsável por toda a comunicação com a base de dados, desde gravar o tutorial, carregar o tutorial e obter uma lista de tutoriais que passam num determinado ecrã.

Como o tutorial é gravado na Firebase em formato JSON, temos de ter uma componente que seja responsável de converter os dados recebidos para a estrutura pretendida, que neste caso é na estrutura descrita anteriormente, Tutorial.

29

Uma vez que já utilizamos a Firebase para hospedar informação sobre os tutoriais, utilizamos também a Firebase Storage para guardar os áudios fornecidos em cada tutorial. Cada passo do tutorial fica associado com um link para descarregar o áudio do mesmo.

Gravação do tutorial

Esta componente agrega de todo o processo de criação de um tutorial. De forma a tornar o código mais simples para possíveis alterações e reutilização do mesmo, separamos a parte que corresponde à captura do áudio e à gravação dos passos dos tutoriais. Quando o criador começa a gravar o tutorial, todos os eventos gerados pelo sistema, passam a ser analisados por esta componente a fim de determinar os passos dados pelo criador.

O utilizador começa primeiro por descrever primeiro a ação que irá realizar. Esta explicação do passo a realizar estará a ser gravada por esta componente e o áudio ficará associado ao passo atual. Uma limitação desta abordagem é como o áudio está a ser capturado pelo microfone, se for um utilizador cego a criar um tutorial, o feedback do leitor de ecrã também é capturado. De forma a ultrapassar esta limitação, o utilizador é aconselhado pelo sistema a usar uns auriculares.

Após o utilizador fornecer a descrição do passo a efetuar, este irá interagir com o smartphone para realizar a ação exposta anteriormente. Ao executar a ação, o sistema irá lançar uma variedade de eventos, entre eles, o evento de TYPE_VIEW_CLICKED ou o evento de TYPE_VIEW_LONG_CLICKED, que são os eventos que levaram o utilizador a avançar na tarefa que pretende realizar.

Ao detetar estes eventos, significa que o utilizador realizou um passo do tutorial, então verificamos se este ecrã é um possível startScreen. Um startScreen é um ecrã onde o tutorial passa e que é possível começar o tutorial nesse ecrã sem ter que realizar a tarefa desde o inicio. Adicionamos esta característica porque é comum um utilizador saber como se realiza parte de uma tarefa, mas não sabe conclui-la. Desta forma o utilizador não tem de realizar o tutorial da parte que sabe realizar e apenas realiza da parte onde surge a sua dúvida.

Esta interação pode ser com algum elemento que guarde algum tipo de estado, como é exemplo os widget das checkbox, os switches ou até mesmo checkedTextView. Nestes casos, é importante guardar o estado de forma a poder verificar se o passo quando estiver a ser executado já está realizado ou não.

Posteriormente, é necessário guardar o passo realizado pelo utilizador. Os eventos acima anunciados possuem o elemento com que o utilizador interagiu que resultou naquele evento. Convertemos esse elemento numa das estruturas de dados já descritas,

30

MyNode, e posteriormente guardamos numa lista que representará os vários passos do tutorial.

Após guardar o passo efetuado, começa a gravação do áudio do próximo passo. Este funcionamento é repetido ao longo dos vários passos até que o utilizador realize a tarefa pretendida para ser gravada no tutorial. Posteriormente, é pedido ao criador para dar um nome ao tutorial e uma breve descrição do mesmo para poder informar os futuros utilizadores de que se trata o tutorial. Na figura X será apresentada um pequeno tutorial gravado com a ferramenta para exemplificar a interação.

4.2.5 Reprodução do tutorial

De forma a complementar o sistema, implementámos esta componente que é responsável por toda a reprodução dos tutoriais gravados pela componente descrita na secção anterior. Esta componente está dividida em 3 partes, em que a primeira e a principal é responsável pela reprodução dos tutoriais, a segunda está encarregue da reprodução da descrição do passo a efetuar e por fim a componente que gere toda a sonificação, um tipo de ajuda implementado para auxiliar as pessoas com menos experiência na utilização do smartphone.

Na utilização dos leitores de ecrã, existem duas formas de navegação utilizada pelas pessoas cegas, explorar através do toque e a navegação linear. A exploração através do toque é realizada através de arrastar o dedo pelo ecrã. O leitor de ecrã irá anunciar os elementos que serão focados à medida que o dedo passa por estes. Quando o foco atinge o elemento pretendido, selecionamos com o duplo toque. Já a navegação linear é feita

31

através do deslize para a esquerda ou direita para mover o foco numa sequência. É necessário detetar o tipo de navegação feita pelo utilizador de forma a poder adaptar a sonificação. Na secção seguinte daremos um foco maior ao processo da sonificação.

Como já descrito na secção anterior, é possível começar o tutorial em qualquer ecrã que o tutorial passa e efetuar o resto do tutorial sem ter que realizar o tutorial completo. Para tal, é necessário detetar em qual dos passos do tutorial nos encontramos. Isto é realizado com o auxílio dos startScreen já descritos na secção anterior.

Depois de obter o passo a realizar, vamos buscar à Firebase Storage o áudio da descrição associada ao passo e então reproduzimo-la e, após a sua reprodução, fornecemos uma dica. Esta dica consiste no texto ou descrição do elemento clicado naquele passo pelo criador do tutorial e é fornecida após a reprodução da descrição fornecida. Como as pessoas normovisuais por vezes não têm acesso ao texto ou descrição do elemento, acabam por fornecer uma descrição que não é igual a fornecida pelo leitor de ecrã o que leva as pessoas cegas a ficarem confusas.

Na secção anterior, constatamos que algum dos elementos guardam um estado associado e este estado é guardado. Com isto é pretendido verificar se o passo a efetuar já está feito ou não, por exemplo, ligar o wi-fi o switch fica ativo e este estado é necessário guardar no caso de quando formos executar o tutorial não voltar a realizar esta ação que se fosse realizada desativaria o wi-fi sendo o contrário do pretendido no tutorial.

Quando o sistema lança um evento do tipo TYPE_VIEW_CLICKED ou TYPE_VIEW_LONG_CLICK é necessário obter o elemento que originou este evento e convertê-lo para a estrutura de dados MyNode para utilizar o método de comparação implementado nesta classe. Se o resultado desta comparação for positivo, significa que o utilizador avançou no tutorial e passamos então para o passo seguinte ou no caso de ser o último passo informamos ao utilizador que finalizou o tutorial com sucesso, caso contrário, informamos ao utilizador que está a afastar do tutorial e que tem que voltar a um passo do tutorial para poder finalizá-lo.

32

Na Figura 12 podemos observar a interação com o sistema.

Sonificação

A sonificação é uma componente que adicionamos ao sistema com o fim de poder ajudar as pessoas com menos experiência na utilização de smartphones ao fornecer um feedback auditivo que indica a distância ao objetivo. Em analogia aos sensores de estacionamento, em que fornece um feedback auditivo que quanto mais próximo de algum objeto, o som produzido por este torna-se mais acentuado.

Por este motivo é que na secção anterior era necessário detetar qual o método de navegação do utilizador para poder adaptar a sonificação ao método utilizado porque a distância ao objetivo quando utilizando os gestos direcionais é o número de swipes necessários realizar para chegar ao objetivo pretendido, enquanto que, quando explorando através do toque é a distância linear que o utilizador necessita percorrer para chegar ao elemento pretendido.

No caso de o utilizador estar a navegar através de gestos, é necessário detetar o sentido do gesto realizado porque o número de gestos direcionais pode diferir se o utilizador realizar o gesto da esquerda para a direita ou no sentido contrário. Utilizando a biblioteca, componente já descrita anteriormente, obtemos a lista de todos os elementos que se encontram no ecrã. Tendo esta lista e o elemento em que estamos, calculamos o número de gestos necessários realizar para chegar ao elemento pretendido tendo em conta o sentido que o utilizador está a realizar. No caso elemento objetivo não estar visível no ecrã, utilizamos um som para informar o utilizador que o elemento não se encontra no ecrã e que este tem de realizar um scroll.

33

Por outro lado, se o método manuseado pelo utilizador for a exploração através do toque é necessário calcular a distância linear entre o elemento em foco e o objetivo. A seguinte imagem ilustra como realizamos o cálculo desta distância.

O ponto F é o centro do elemento em foco e o ponto O é o centro do elemento objetivo. Através destes pontos e do teorema de Pitágoras, obtemos a distância linear d entre os pontos 𝐹𝑂̅̅̅̅ da seguinte forma:

𝑑 = √(𝑥𝑂− 𝑥𝐹)2+ (𝑦

𝑂− 𝑦𝐹)2

Tanto o cálculo do número de swipes como da distância linear é necessária para poder realizar a sonificação. A sonificação é realizada através de dois sons e a distância entre estes dois sons é que ditará o quão próximo ao objetivo o utilizador se encontra. Quanto menor for o número de elementos ou a distância linear ao objetivo mais próximo os toques ficam. Quando o utilizador chega ao objetivo, como o número de swipes e a distância linear será zero, a sonificação apenas reproduzirá um toque.

Como anunciado anteriormente, é possível existir mais do que um objetivo no ecrã, por isso é necessário informar o utilizador que estes existem através de um outro toque distinto de forma a alertar ao utilizador das diferentes opções.

34

Capítulo 5

Avaliação

Após a implementação da ferramenta descrita nas secções anteriores, fomos avaliar a abordagem criada. O sistema implementado é composto por duas grandes funcionalidades, a criação dos tutoriais em contexto interativos e a reprodução dos mesmos. Era oportuno realizar um estudo para cada uma das funcionalidades de forma a compreender os benefícios da abordagem. Num primeiro estudo, iremos avaliar a criação dos tutoriais e analisar as diferenças dos tutoriais criados pelas diferentes populações (cegos e normovisuais).

Após a conclusão do primeiro estudo, realizámos um segundo estudo que consiste na reprodução dos tutoriais criados no estudo anterior e observar se os participantes conseguiam executar a tarefa com sucesso.

Durante esta fase de avaliação não foi utilizado a funcionalidade da sonificação por ainda não estar totalmente funcional na altura da realização da avaliação o que podia prejudicar o bom funcionamento do tutorial.

5.1 Perguntas de investigação

Com este estudo procuramos avaliar os seguintes tópicos:

• Analisar as instruções criadas em contexto por pessoas experientes

• Perceber qual a eficácia dos tutoriais quando utilizado por pessoas menos experientes

• Perceber as limitações das instruções recebidas em contexto

5.2 Criação de tutoriais

5.2.1 Participantes

Recrutámos 5 participantes normovisuais (3 do sexo feminino e 2 do sexo masculino) sem conhecimento de leitores de ecrã e com idades compreendidas entre os 19 e os 23 anos (M = 20.8, DP = 1.64). Os participantes têm 3 a 4 anos de prática na utilização de smartphones. Três destes participantes são utilizadores Android sendo que os restantes são utilizadores iOS.

35

Recrutamos ainda 5 participantes cegos (todos eles do sexo masculino) experientes na utilização de smartphones, com idades compreendidas entre os 25 e os 51 anos (M = 38.8, DP = 9.49). Os participantes utilizam smartphones por volta de 5 a 11 anos e dois dos participantes são formadores de informática. Três dos participantes são utilizadores de equipamentos com iOS enquanto que os restantes são utilizadores Android. Estes utilizadores experientes foram escolhidos não só por causa do seu conhecimento mas também porque as pessoas confiam neles para superar os desafios [18]. Consideramos especialistas, os utilizadores capazes de realizar a seguinte lista de tarefas: fazer/receber chamadas /emails / mensagens, instalar novas aplicações, configurar definições de acessibilidade, navegar na internet, usar aplicações de comunicação (por exemplo, Messenger, WhatsApp, Skype) e utilizarem aplicações de assistência (por exemplo, BeMyEyes).

5.2.2 Dispositivos

Na fase de avaliação utilizamos um Xiaomi Redmi 3 com o Android 7.1.2 e o sistema implementado já instalado. Era necessário que os participantes utilizarem headphones de forma a prevenir que a gravação do feedback do leitor de ecrã nos tutoriais. Todas as aplicações utilizadas nos tutoriais estão disponíveis no ecrã inicial do equipamento.

Tarefa Aplicação Tutorial

TT1 SimpleNote Apagar uma nota já existente

TT2 SimpleNote Partilhar uma nota já existente no WhatsApp T1 Definições Apagar os dados de uma aplicação

T2 Mensagens Reencaminhar uma SMS T3 WhatsApp Criar um grupo

T4 RadioNet Adicionar uma estação aos favoritos

Tabela 2:Descrição das tabelas ( TT significa Tutorial de Treino)

5.2.3 Desenho da tarefa

Os participantes criaram tutoriais para as 6 tarefas (Tabela 2). Foram desenhados dois tutoriais para os participantes poderem treinar e interagirem com o sistema desenvolvido. Num esforço de minimizar as diferenças de dificuldades entre os tutoriais, todas as tarefas podem ser completadas com 6 seleções. Três das tarefas utilizadas foram dúvidas previamente feitas a membros da equipa de investigação por parte de pessoas

36

cegas. T1 foi adicionado pela equipa de investigação, como tarefa do sistema operativo, que pode ser completada também com 6 seleções.

Documentos relacionados