• Nenhum resultado encontrado

5 UM MODELO DE AUDIOGAME MÓVEL ACESSÍVEL E CUSTOMI-

5.4 Elementos reutilizáveis

5.4.5 Menus acessíveis

5.4.5.1 Implementação do componente de Menu

O Android oferece um formato para a adição de menus padrão em suas aplicações. Existem três tipos de menus programáveis para as aplicações: menus de opção1, menus de contexto2, submenu3.

Para a criação de um recurso do tipo menu, a documentação do Android sugere que os mesmos não sejam definidos no código da aplicação. Deve ser definido o menu e todos os

1 Coleção primária de itens de menu para uma atividade, que aparecem quando o usuário toca o botão MENU.

Quando a aplicação está rodando em Android 3.0 ou superior, é possível prover um rápido acesso aos itens de menu inserindo-os diretamente em uma barra de ação superior na aplicação, como action items.

2 Uma lista de itens flutuantes que aparecem quando o usuário toca ou segura uma view que está registrada para

mostrar menus de contexto da tela.

seus itens de configuração em um arquivo com a extensão eXtensible Markup Language (XML), onde o menu é instanciado ou “inflado” como um objeto programável no código da aplicação.

O recurso de menu em XML é uma boa prática pelos seguintes motivos:

• É mais fácil de visualizar a estrutura do menu em um arquivo XML;

• Separa o conteúdo de configuração do menu do resto do código da aplicação; e

• Permite que que sejam criadas configurações do menu alternativas para diferentes versões

da plataforma, tamanhos de tela e outras personalizações, aproveitando os recursos da aplicação.

Para criar um recurso de menu, é preciso inicialmente gerar o arquivo XML dentro da pasta “criarmenu/res/menu/” do pacote disponibilizado no modelo. Como apresentado na Figura 32, devem ser definidas as opções do menu com os seguintes elementos:

• <menu> - Define o menu como um container de itens de menu. Um elemento <menu>

deve ser o nó raiz do arquivo XML e pode guardar um ou mais elementos do tipo “<item>”.

• <item> - Cria um item de menu. Esse elemento pode conter um menu aninhado de maneira

a criar submenus.

Definem-se as opções individuais usando o elemento “item”. Especificam-se os atributos title, id, icon e showAsAction para cada opção.

Na Figura 32, é apresentado o trecho de um arquivo menu.xml gerado com dois itens de menu.

Figura 32 – Definição dos recursos de Menu no arquivo menu.xml

Fonte: o autor.

Cada item inclui os seguintes parâmetros:

• android:title: Uma referência para uma string a ser usada como título do item, e que

83

• android:id: A ID do recurso que é exclusivo para o item, o que permite que o aplicativo

seja capaz de reconhecer este quando o usuário seleciona-lo. É também através dessa ID que o leitor de telas pode identificar a opção de sonorização da descrição do item com apenas um toque ou a seleção do mesmo através de dois toques. Essa implementação é função da classe “AudioClass”, descrição na subseção 5.4.4.

• android:icon: Uma referência a uma imagem (drawable) para ser usado como ícone do

item. Sugere-se a utilização de imagens que favoreçam efeitos de alto contraste, caso o jogo disponibilize essa opção de exibição.

• android:showAsAction: Especifica quando e como este item deve aparecer. Onde os

itens de menu de opções aparecerão na tela depende da versão para a qual foi desenvolvida a aplicação.

Na API 10 (Android 3.0 ou inferior) a disponibilização de menus de opções sem- pre aparecerá no rodapé do layout. Já Na API 11 (Android 3.0 ou superior) há a opção de inseri-los na barra de ação superior. Por padrão essa opção não é ativada, caso seja mais adequado, deve ser marcada a tag android:showAsAction=“ifRoom” no item de menu. E caso a preferência seja que apareça mesmo no rodapé a tag deve ser marcada como an- droid:showAsAction=“ifRoom|withText”.

O pacote disponibilizado com a implementação de itens pré-programados para gerar menus acessíveis foi construído para o sistema operacional Android, utilizando-se a IDE Eclipse Mars 2 Release (4.5.2), conforme apresentado na Figura 33. O pacote é disponibilizado com orientações, documentações e exemplos de codificação necessárias para orientar o desenvolvedor no que diz respeito às melhores práticas de implementação de acessibilidade e usabilidade dos menus de um audiogame, incluindo as descritas logo acima nesta seção.

A Figura 33 traz a classe “Activity” que pode ser implementada do pacote “pro- jeto.criarmenu.acessivel”, disponibilizado como componente reutilizável. Um menu é instanci- ado para o aplicativo através da modificação do método onCreateOptionMenu(). Nesse ponto é chamado o método getMenuInflater() que retorna um objeto e, através do método inflate(), é passado como parâmetro o “id” do arquivo XML criado e o objeto “menu”. Então é guardado “menu” com a ação programada de criar ou eliminar o item.

Do código da aplicação, de acordo com a Figura 34, é possível inflar um recurso de menu (que é converter um recurso XML em um objeto programável) usando o método getMenuInflater.inflate(). Por exemplo, o trecho de código seguinte infla o menu.xml durante

Figura 33 – Implementação dos itens de menu acessíveis utilizando a IDE Eclipse para Android

Fonte: o autor.

chamada ao método onCreateOptionsMenu() para utilizá-los como menus pré-configurados. Figura 34 – Trecho de código utilizando o método getMenuInflater()

Fonte: o autor.

A Figura 35 - (a), (b) e (c) traz um resumo em sequência da criação de itens de menu acessíveis pré-configurados, dando como exemplo a inserção de quatro itens de menu com os títulos “Opções”, “Histórico”, “Tutorial” e “Sair” com seus respectivos ícones.

Se a opção escolhida for “Adicionar Item”, cria-se um novo item de menu no código através de uma chamada para o método onOptionsItemSelected(), e então são checados os parâmetros: o identificador do item de menu, a ordem em que esse item de menu aparece, o título, o caminho do ícone escolhido e o campo de descrição obrigatório para o conteúdo desse menu. A programação da criação dos itens de menus guarda os primeiros seis itens. Se forem adicionados mais de seis itens ao menu de opções, a aplicação vai substituir o sexto item por um que possa abrir em menu flutuante apresentando uma opção com seta.

85

Figura 35 – Um exemplo de geração de itens de menu acessíveis utilizando o emulador do dispositivo móvel na IDE Eclipse para Android

Fonte: o autor.

5.5 Conclusão

Este capítulo apresentou a proposta de um modelo para o desenvolvimento de audiogames móveis acessíveis com objetivos educativos para a prática do sistema de escrita Braille, voltados para o público com deficiência visual. Com base em análises de requisitos e em maiores investigações com usuários finais e professores de educação especial foi possível propor um modelo e arquitetura para esse tipo de audiogame como solução pretendida.

O desenvolvimento de uma interface Web de customização como parte do modelo de audiogame acessível visa a possibilidade de adaptação de conteúdo por parte dos professores envolvidos nas práticas pedagógicas, considerando as particularidades inerentes ao processo de ensino e aprendizagem na educação especial de pessoas com deficiência visual.

Tal modelo pretende promover a dinamicidade em jogos educacionais acessíveis, bem como incorporar recursos que possibilitem o monitoramento do desempenho dos aprendizes e possibilitar a reutilização de componentes para implementação de novos jogos. Além disso, o aprendizado dos estudantes poderá ser bem mais dinâmico, atrativo e intuitivo devido às técnicas de gamificação e acessibilidade utilizadas. O próximo capítulo traz a descrição de uma implementação do modelo proposto como prova de conceito: o jogo Ortomonstro.