WinGuido: implementazione di servizi per la comunicazione e la localizzazione tramite smartphone.



Documenti analoghi
Scuola Professionale e Filologica Geom. F.Borgogna Vercelli

CREA IL CATALOGO DEI TUOI PRODOTTI SU IPAD E IPHONE CON UN APP. ANZI, CON UPP!

Crea il catalogo dei tuoi prodotti su ipad e iphone con un App. Anzi, con upp!

PIANO BIENNALE PER I DIRITTI DELLE PERSONE CON DISABILITÀ

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

WBT Authoring. Web Based Training STUDIO

Corso di Informatica

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Descrizione del prodotto WebPEG: Piano Esecutivo Gestione

Creare una Rete Locale Lezione n. 1

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Università Politecnica delle Marche. Progetto Didattico

5. Fondamenti di navigazione e ricerca di informazioni sul Web

Client - Server. Client Web: il BROWSER

Il Gruppo di lavoro ha articolato l operazione in fasi:

Architetture Informatiche. Dal Mainframe al Personal Computer

Guida alla registrazione on-line di un NovaSun Log

Corso di PHP. Prerequisiti. 1 - Introduzione

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Architetture Informatiche. Dal Mainframe al Personal Computer

Le Basi di Dati. Le Basi di Dati

RT VIRTUAL CARD. Manuale Utente

PowerPoint 2007 Le funzioni

Guida rapida all uso di Moodle per gli studenti

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste

Novità di Access 2010

Utilizzo della APP IrriframeVoice. Versione 1.0 maggio 2015

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Approccio stratificato

Careggi Smart Hospital nuovo servizio #Prelievo Amico

La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati

Turismo Virtual Turismo Virtual Turismo Virtual

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

1. BASI DI DATI: GENERALITÀ

CONTENT MANAGEMENT SYSTEM

Organizzazione delle informazioni: Database

Retail L organizzazione innovativa del tuo punto vendita

Biblioteca di Cervia NOZIONI BASE DI INFORMATICA

Manuale LiveBox WEB ADMIN.

Capitolo 4 Pianificazione e Sviluppo di Web Part

Università degli Studi di Messina

ACCREDITAMENTO AI SERVIZI PER LA FORMAZIONE

P.D.M. (Product Document Management) Hierarchycal Tree

Manuale Utente Albo Pretorio GA

WebGis - Piano Comprensoriale di Protezione Civile

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

PIATTAFORMA DOCUMENTALE CRG

GUIDA UTENTE... 2 Come si accede alla piattaforma del FORMAS?... 2 Quali sono i Browser da utilizzare?... 2 Quali sono le modalità di iscrizione?...

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi.

Guida alla registrazione on-line di un DataLogger

Progetto: Servizio location based per la ricerca di punti di interesse

Lifephone. Introduzione. Database. Sito

L APP PER IPHONE E ANDROID

Reti di Telecomunicazione Lezione 6

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

POLYEDRO. La migliore piattaforma tecnologica di sempre per EMBYON, l evoluzione dell ERP Metodo

Al giorno d oggi, i sistemi per la gestione di database

MODULO 5 Appunti ACCESS - Basi di dati

UN MODELLO DI QUALITÀ PER I SITI WEB

Guida rapida all uso di Moodle per gli studenti

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

Il calendario di Windows Vista

sito web sito Internet

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

Guida all utilizzo di Moodle per gli studenti

uadro Soluzioni software per L archiviazione elettronica dei documenti Gestione Aziendale Fa quadrato attorno alla tua azienda

GUIDA AL PRONTUARIO MOBILE

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Il database management system Access

DESY è un prodotto ideato e sviluppato da

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

02 L Informatica oggi. Dott.ssa Ramona Congiu

GUIDA PER IL DOCENTE ALL UTILIZZO DELL APPLICATIVO ONLINE E PORTFOLIO

Introduzione. Descrizione. FRITZ!APP Fon

Manuale Utente. Gestione Richieste supporto BDAP. Versione 1.0

Il nuovo browser italiano dedicato alla navigazione e comunicazione sicura in internet per bambini

Riconoscimento tramite OCR di testi presentati sullo schermo in forma grafica

MANUALE D USO DELLA PIATTAFORMA ITCMS

Manuale Utente 1 Ultimo aggiornamento: 2015/12/22 ifatt

Il progetto Insieme a Scuola di Internet

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

NAVIGAORA HOTSPOT. Manuale utente per la configurazione

Corso di Informatica

Achab Learning & Presentation System Il progetto di Achab, per lo sviluppo e la pubblicazione di presentazioni e corsi di formazione online

E-learning Guida pratica all utilizzo

La Guida Utente Luglio 2008

Guida Google Cloud Print

MuseoscienzApp COSA È

Prodotti. Introduzione. CMS: Content Management System: che cos'è, a cosa serve?

Manuale LiveBox WEB ADMIN.

Ipertesti e Internet. Ipertesto. Ipertesto. Prof.ssa E. Gentile. a.a

SOLUZIONE Web.Orders online

Transcript:

Università degli Studi di Salerno Facoltà di Scienze Matematiche Fisiche e Naturali Tesi di Laurea di I livello in Informatica WinGuido: implementazione di servizi per la comunicazione e la localizzazione tramite smartphone. Relatore Prof. Paolo D Arco Candidato Ciro Amati Matr. 0512100488 Anno Accademico 2013-2014

A mia madre, mia guida, per aver creduto sempre in me. i

Abstract Spesso le persone ignorano che il computer è il mezzo più utilizzato dai non vedenti nella vita quotidiana: permette loro di tenersi aggiornati leggendo quotidiani online e libri, facendo acquisti su internet, di studiare e lavorare, anche non essendo esperti di informatica. Uno dei programmi più diffusi, nel mondo della disabilità visiva, è WinGuido. Esso non è un programma di tipo screen reader, ma è un programma del tutto autonomo, che può eseguire per suo conto una vasta serie di funzioni, comunicando con l utente direttamente tramite i dispositivi ausiliari, senza bisogno dell intermediazione di altri programmi. Le funzioni presenti in WinGuido offrono un ventaglio abbastanza ampio di servizi: la lettura e la scrittura di testi, di banche dati e di fogli elettronici, la navigazione in Internet e la gestione della posta elettronica, l ascolto dei brani ed altro ancora. L assistenza e il supporto alla realizzazione e diffusione di WinGuido è gestita dall Associazione Guidiamoci Onlus. In questi ultimi anni è iniziata una nuova rivoluzione legata all utilizzo di dispositivi mobili. Quello che inizialmente era un semplice telefono cellulare, ora è uno strumento in grado di fornire servizi di vario genere, riuscendo a emulare un computer in maniera efficiente. Il lavoro svolto in questa tesi consiste nella progettazione e nello sviluppo di un applicazione eseguibile su qualsiasi dispositivo Android. Lo scopo principale è stato quello di permettere agli utenti non vedenti e ipovedenti di poter accedere ad alcuni servizi di WinGuido per PC, con la possibilità però di farlo in un qualsiasi posto geografico. L app WinGuido, quindi, non sostituisce il programma per pc, ma aggiunge due nuovi servizi, legati ai dispositivi mobili: Forum : uno spazio (virtuale) dove gli utenti dell Associazione Guidiamoci Onlus, uniti da interessi particolari comuni, condividono passioni ed esperienze, esprimendo la propria opinione e leggendo le opinioni degli altri. Dove sono? : un servizio che permette di conoscere la propria posizione ii

geografica (regione, città e indirizzo) e, in caso di difficoltà da parte dell utente non vedente, di inviare un messaggio di soccorso preimpostato a un contatto della rubrica. iii

Dediche e ringraziamenti Il ringraziamento più grande va a coloro che rappresentano il mio quotidiano: la mia famiglia. Ringrazio i miei genitori, senza i quali tutto questo non sarebbe stato possibile, per i tanti sacrifici, per l amore incondizionato. Ringrazio Rosa per essere la miglior sorella che un fratello possa avere, per essere un importante punto di riferimento, per essere il mio orgoglio. Un grazie va ai miei nonni, Franco e Mina, per tutti gli insegnamenti di vita che solo grandi persone possono lasciare. Un pensiero va ai miei nonni Attilio e Rosa, che purtroppo non ci sono più e che spero siano felici di questo mio traguardo. Ringrazio mio zio Rosario per essere stato più di uno zio, un fratello maggiore su cui poter sempre contare. Un grazie va al mio amato Rex per avermi accompagnato nei pomeriggi di studio, sempre allo stesso posto, sempre accanto alla mia sedia. Un ringraziamento va a tutta la famiglia Cardamone, per avermi accolto nella loro casa, per il grande affetto ricevuto. Ringrazio il dottor Andrea Santoro e tutta l Associazione Guidiamoci Onlus, per avermi permesso di lavorare a questo grande progetto, e grazie il dottor Ercole Siani per essere stato una guida importante e per i preziosi insegnamenti ricevuti. Ringrazio il professor Paolo D arco, relatore di questa tesi, per la disponibilità e cortesia dimostratemi, e per l aiuto fornito per la stesura. Ringrazio gli amici di Università per aver reso questo percorso davvero speciale, in particolare Raffaele, amico di sempre, con il quale ho condiviso ogni momento. Un grazie di cuore va a mia cugina Iole, per i tanti consigli e per essere cresciuti insieme, e che spero di avere sempre accanto. Infine, ringrazio te Stefania, per tutto quello che sei, quello che mi trasmetti. Per le tante ore di studio e risate, per i sacrifici e gli abbracci, per essere stata la mia migliore amica, la mia collega, il mio dolce amore. iv

Indice 1 Introduzione 1 2 Interazione Uomo Computer 3 2.1 Introduzione............................ 3 2.2 Usabilità e Accessibilità..................... 4 2.3 Il World Wide Web Consortium................. 6 2.3.1 Introduzione....................... 6 2.3.2 Obiettivi e i principi strategici del W3C........ 6 2.4 La Web Accessibility initiative................. 8 2.4.1 Introduzione....................... 8 2.4.2 Organizzazione...................... 8 2.4.3 Web Content Accessibility Guidelines......... 9 3 Il S.O. Android e tecnologie utilizzate 11 3.1 Introduzione ad Android..................... 11 3.2 SDK Android e le sue versioni.................. 13 3.3 L architettura del sistema Android............... 15 3.3.1 Linux Kernel....................... 15 3.3.2 Libraries & Android Runtime.............. 16 3.3.3 Application Framework................. 17 3.3.4 Applications....................... 17 3.4 Le Active Server Pages...................... 18 3.4.1 Introduzione ad ASP................... 18 3.4.2 Utilizzo della tecnologia ASP.............. 18 3.5 Microsoft Access......................... 20 3.5.1 Introduzione....................... 20 3.5.2 Tipologie di database.................. 20 3.5.3 I database relazionali e i principali elementi costitutivi 20 v

INDICE vi 4 App WinGuido 23 4.1 Introduzione............................ 23 4.2 Struttura del progetto...................... 25 4.2.1 Introduzione....................... 25 4.2.2 Requisiti non funzionali................. 25 4.2.3 Jsoup: come manipolare un documento HTML.... 26 4.2.4 Meccanismo per l acquisizione dati........... 27 4.2.5 Navigazione dinamica delle pagine web dall app.... 29 4.3 Servizio: Forum........................ 32 4.3.1 Introduzione....................... 32 4.3.2 Analisi delle pagine web del Forum........... 32 4.3.3 Implementazione: l utilizzo delle finestre di dialogo.. 33 4.3.4 Gestione e salvataggio dei dati............. 35 4.4 Servizio: Dove sono?...................... 37 4.4.1 Introduzione....................... 37 4.4.2 Percezione degli spazi e la mobilità per un non vedente 37 4.4.3 La geolocalizzazione................... 38 4.4.4 Implementazione: ricerca della posizione e richiesta di soccorso.......................... 39 5 Conclusioni 43 5.1 Sviluppi futuri.......................... 43 Bibliografia 44

Capitolo 1 Introduzione L introduzione di tecnologie informatiche, in ogni area delle attività umane, sta rendendo l informatica sempre più una disciplina orientata a supportare la vita e la comunicazione degli utenti: l invio di una email, una videochiamata con un amico lontano, la possibilità di essere sempre aggiornati in tempo reale di tutto quello che accade nel mondo. Negli ultimi anni si è assistito, quindi, a una crescente necessità di capire come progettare l interazione di sistemi informatici con gli utenti, in modo da ottenere sistemi facili da usare: proprio per questo motivo nascono le applicazioni. Un applicazione (o più semplicemente un app) può essere concepita in diversi modi: un catalogo online, un sistema di localizzazione, un gioco o un blog. Per utilizzare un app basta scaricarla dallo store del nostro cellulare e il gioco è fatto. Molto spesso però, questa semplicità d uso non rispecchia proprio la realtà: è il caso delle persone non vedenti e ipovedenti. Tutto ciò che risulta così semplice e banale, come ad esempio l invio di un sms, per una persona non vedente può essere un difficile ostacolo. Proprio per questo motivo vi è stata la necessità di creare un applicazione che risultasse accessibile ad ogni tipologia di utente, rispettando soprattutto regole di base per la gestione delle problematiche della disabilità visiva. Problematiche che sono state affrontate nel capitolo 2 di questo lavoro di tesi, a partire dallo studio dell usabilità e accessibilità di un sistema informatico, fino ad arrivare alle linee guida del World Wide Web Consortium, un organizzazione non governativa internazionale che ha come scopo quello di sviluppare tutte le potenzialità del World Wide Web e studiare i modi per rendere quanto più agevole l accesso al web, da parte di portatori di ogni genere di handicap. 1

CAPITOLO 1. INTRODUZIONE 2 Nel capitolo 3 vi sarà una descrizione di Android, mettendo in evidenza le motivazioni che spingono a sviluppare con questo particolare sistema operativo, e della tecnologia ASP, per l elaborazione delle informazioni Server Side (lato server) e Client Side (lato dell utente). Infine, vi sarà una panoramica su Microsoft Access, una delle interfacce software più diffuse per la gestione di basi di dati di tipo relazionale. Nel capitolo 4 sarà presentato WinGuido. In particolare, saranno descritte le caratteristiche principali dell app, evidenziando le fasi più importanti dei servizi sviluppati. Nel capitolo 5, infine, vi saranno delle brevi conclusioni e possibili sviluppi futuri.

Capitolo 2 Interazione Uomo Computer 2.1 Introduzione La tecnologia accompagna l uomo in ogni fase della sua esistenza, dall utilizzo di un computer, di un cellulare o semplicemente di un ascensore. La distanza tra l uomo e la macchina, si avverte sempre di meno, ma nasconde diverse difficoltà. Esse non riguardano necessariamente solo gli oggetti di alta tecnologia, infatti possiamo incontrare diversi problemi anche nell uso di dispositivi relativamente più semplici. Il modello più importante dell interazione fra un sistema e il suo utilizzatore è rappresentato dal modello d interazione di Norman. L utente, per raggiungere il proprio obiettivo, formula un piano d azione e lo esegue mediante l interfaccia. Successivamente l utente osserva l interfaccia per valutare, rispetto al suo obiettivo, il risultato dell esecuzione e determinare le azioni successive. Figura 2.1: Modello d interazione di Norman 3

CAPITOLO 2. INTERAZIONE UOMO COMPUTER 4 Negli anni 80 nasce la disciplina che studia come i computer e le persone possano interagire e influenzarsi a vicenda. Essa prende il nome di interazione uomo-computer (o anche detta interazione uomo-macchina). Questo studio riguarda principalmente l interazione tra le persone, cioè gli utenti, e i computer, per la progettazione e lo sviluppo di sistemi interattivi che risultino usabili, affidabili e che supportino e facilitino le attività umane. L interazione uomo-computer non copre solo aspetti d informatica, ma anche di psicologia, scienze cognitive ed altre materie. 2.2 Usabilità e Accessibilità Il sempre maggior uso di applicazioni informatiche richiede una progettazione che sappia tenere conto dei vari possibili contesti d uso, delle nuove tecnologie di interazione e degli obiettivi degli utenti. Risultano di primaria importanza i concetti di usabilità e accessibilità per garantire un uso tipicamente user-friendly della macchina stessa ad ogni tipologia di soggetto. L usabilità, secondo la norma ISO 9241 è la misura con cui un prodotto può essere usato da specifici utenti, per raggiungere determinati obiettivi con efficacia, efficienza e soddisfazione in uno specifico contesto d uso. Il termine non si riferisce a una caratteristica intrinseca dello strumento, quanto al processo di interazione tra classi di utenti, prodotto e finalità. Jakob Nielsen, uno tra i massimi esperti di usabilità del web, ha dato una propria definizione di usabilità: la misura della qualità dell esperienza dell utente in interazione con qualcosa, sia esso un sito web o un applicazione software tradizionale o qualsiasi altro strumento con il quale l utente può operare. Un prodotto è usabile quando è facile da apprendere, consente un efficienza di utilizzo, è facile da ricordare, permette pochi errori di interazione e di bassa gravità, è piacevole da usare Nella progettazione di un sito web o un applicazione, quindi, bisogna fare in modo che i contenuti e i servizi presenti in essi, siano facilmente reperibili e fruibili dai suoi utenti. Un sistema può contenere tante funzionalità e risorse, ma se queste non sono organizzate secondo le aspettative e i bisogni degli utenti destinatari, possono risultare introvabili e quindi inutilizzate. Le principali caratteristiche di un sistema usabile sono: l efficacia, intesa come l accuratezza e completezza con cui gli utenti possono raggiungere i

CAPITOLO 2. INTERAZIONE UOMO COMPUTER 5 propri obiettivi in ambienti particolari; l efficienza, ovvero le risorse spese in relazione all accuratezza e completezza degli obiettivi raggiunti; la soddisfazione, intesa come il comfort e l accettabilità del sistema di lavoro per i suoi utenti e le altre persone influenzate dal suo uso. Infine una facilità di memorizzazione, cioè l utente deve poter interagire con un interfaccia anche dopo un periodo di lungo inutilizzo, senza essere costretto a ricominciare da zero. Per accessibilità, invece, si intende la realizzazione di un sistema che favorisca l interazione e la fruizione rispettando le esigenze degli utenti, senza esclusioni. L obiettivo dell accessibilità, quindi, è consentire l accesso al web a tutti gli utenti, indipendentemente dalla presenza di disabilità (fisiche, sensoriali, cognitive), e dalle dotazioni hardware e software. Le soluzioni di accessibilità sono sviluppate al fine di favorire la riduzione o l eliminazione del così detto Web Accessibility Divide, ovvero il divario tra coloro che possono accedere in maniera autonoma alle risorse web e coloro che non possono (in particolare le persone con disabilità visiva). Una risorsa accessibile facilita l accesso alla più grande fascia di individui. Essa utilizza una struttura semanticamente corretta, testi chiari, fluenti e facilmente comprensibili. Ha una disposizione coerente e lineare dei contenuti e dell interfaccia grafica e utilizza colori standard e ad alto contrasto fra di loro. In conclusione, un sistema informatico è accessibile se può essere usato da tutti, compresi i disabili. Accedere alle informazioni però non basta, il sistema deve anche essere utilizzabile: l accessibilità è perciò un prerequisito all usabilità.

CAPITOLO 2. INTERAZIONE UOMO COMPUTER 6 2.3 Il World Wide Web Consortium 2.3.1 Introduzione Il World Wide Web Consortium, anche conosciuto come W3C, è stato fondato nell ottobre del 1994 al MIT (Massachusetts Institute of Technology) dal padre del Web, Tim Berners-Lee, in collaborazione con il CERN. Il W3C è un organizzazione non governativa internazionale che ha come scopo quello di portare il Web al suo massimo potenziale, mediante lo sviluppo di tecnologie (specifiche, linee guida, software e tools) che possano creare un forum per informazioni, commercio, ispirazioni, pensiero indipendente e comprensione collettiva. Il W3C comprende circa 380 membri tra cui: aziende informatiche di primaria importanza come: Google, IBM, Intel, Microsoft; Adobe, Apple, compagnie telefoniche come: Ericsson, Nokia; università e istituzioni per la ricerca: il Computer Science and Artificial Intelligence Laboratory del MIT. Per l Italia, invece, l ISTI (Istituto di Scienza e Tecnologie dell Informazione) di Pisa del Consiglio Nazionale di Ricerca. 2.3.2 Obiettivi e i principi strategici del W3C Gli obiettivi principali che si propone il W3C sono: Web Semantico, interoperabilità, la capacità evolutiva e l accesso universale. Le persone oggi condividono la propria conoscenza sul Web utilizzando un linguaggio umano, comprensibile dalle altre persone. Sul Semantic Web le persone saranno capaci di esprimersi in termini tali che i nostri computer potranno interpretare e scambiare informazioni. In questo modo, si darà la possibilità ai computer di risolvere i problemi che troviamo noiosi da affrontare e di aiutarci a trovare velocemente tutto quello che stiamo cercando: una recensione di un film, l ordine di un libro attraverso un catalogo e così via.

CAPITOLO 2. INTERAZIONE UOMO COMPUTER 7 Molti degli standard che conosciamo, come HTML, CSS, XML, sono stati definiti dal W3C. Venti anni fa si comperavano software che funzionavano solamente con altri software dello stesso produttore. Oggi, invece, si ha molta più libertà di scelta e ci si aspetta, quindi, che i componenti software possano essere interscambiabili. Ci si aspetta anche di essere in grado di vedere il contenuto del Web con l ausilio del software che si preferisce (browser grafico, sintetizzatore vocale, display braille, ecc.). Il W3C è un organizzazione neutrale, che incoraggia l interoperabilità attraverso la progettazione e la promozione di linguaggi informatici; mira all eccellenza tecnica ma è consapevole che quello che oggi conosciamo e di cui abbiamo bisogno, potrebbe essere insufficiente per risolvere i problemi di domani. Il Consorzio si adopera perciò per costruire un Web che possa facilmente evolvere in un Web ancora migliore, senza per questo dover distruggere quello che già funziona. Il W3C, quindi, definisce il Web come l universo delle informazioni accessibili in rete, le quali sono disponibili attraverso il computer, il telefono, la televisione, ecc. Questo universo permette alla società di fruire di nuove forme di comunicazione umana e offre nuove opportunità di condividere la conoscenza. Uno degli scopi principali del W3C è quello di rendere queste opportunità fruibili a tutti, indipendentemente da eventuali limitazioni determinate da hardware, software, supporto di rete a disposizione, lingua madre, cultura, collocazione geografica, capacità fisiche e mentali. L impegno del Consorzio per l accesso universale è dimostrato da varie attività: Architecture Domain: ha il compito di gestire la tecnologia che è alla base del web; Interaction Domain: cerca di semplificare l interazione uomo - informazioni ed il modo di connettersi al web;

CAPITOLO 2. INTERAZIONE UOMO COMPUTER 8 Technology and Society Domain: ha il ruolo di adattare l infrastruttura tecnologica agli interessi sociali, legali e pubblici; Web Accessibility Initiative: il suo lavoro è garantire che chiunque possa sfruttare appieno le potenzialità del web e si articola in 5 aree tematiche: tecnologia, linee guida, strumenti, educazione ed aiuto ai bisognosi, ricerca e sviluppo. 2.4 La Web Accessibility initiative 2.4.1 Introduzione La Web Accessibility Initiative (WAI) del W3C è nata nel 1997, per migliorare l accessibilità del World Wide Web alle persone disabili. Questi ultimi possono incontrare diverse difficoltà nell uso di computer e soprattutto sul web. Poiché le persone disabili spesso utilizzano dispositivi e browser non-standard, la creazione di siti web più accessibili porterebbe benefici a un grande numero di utenti e una vasta gamma di dispositivi, compresi i dispositivi mobili, che hanno risorse limitate. 2.4.2 Organizzazione Figura 2.2: Organizzazione WAI La WAI è composta da differenti gruppi di lavoro e gruppi di interesse che si occupano di stilare linee guida, relazioni tecniche, produrre materiale didattico e altra documentazione riguardante le diverse componenti dell accessibilità web.

CAPITOLO 2. INTERAZIONE UOMO COMPUTER 9 Ogni gruppo di lavoro si occupa di aspetti specifici. Tra i gruppi più importanti, vi è l Authoring Tool Accessibility Guidelines Working Group (AU- WG) che sviluppa le tecniche e le risorse di supporto per gli strumenti di creazione di contenuti web, dagli editor HTML ai Content Management System. L Education and Outreach Working Group (EOWG) sviluppa materiale formativo ed educativo sull accessibilità del web. L User Agent Accessibility Guideline Working Group (UAWG) sviluppa le linee guida, le tecniche e altra documentazione per promuovere l accessibilità degli User agent, come browser e plug-in. Infine il Web Content Accessibility Guidelines Working Group (WCAG WG) che produce linee guida, tecniche e altri documenti relativi all accessibilità dei contenuti web. Il termine Web Content raccoglie ogni tipo di informazione che è possibile trovare all interno di una pagina Web: testo, immagini, forme, suoni, video, eccetera, a prescindere se questi siano stati prodotti da lato server o da lato client (con un linguaggio di scripting client-side, come JavaScript). Pertanto, le linee guida si applicano anche alle applicazioni web. Esse prendono il nome di Web Content Accessibility Guideline (WCAG). 2.4.3 Web Content Accessibility Guidelines Le WCAG spiegano come rendere i contenuti Web accessibili a persone disabili e sono rivolte agli sviluppatori di contenuti Web. Esse hanno come obiettivo principale quello di promuovere l accessibilità. Seguendole, si otterrà il risultato di rendere i contenuti Web più facilmente fruibili da tutti gli utenti, a prescindere dal particolare interprete in uso (ad es., browser normali, browser basati su dispositivi di sintesi vocale, telefoni cellulari, personal computer per automobili, ecc.) o da eventuali limitazioni a cui essi possono essere costretti (ad es., ambienti rumorosi, stanze sotto illuminate o sovra illuminate, ambienti in cui occorra avere in qualunque momento le mani libere, ecc.). Le linee guida riguardano scenari tipici che possono rappresentare una difficoltà per utenti con determinate disabilità. Una delle linee guida più importanti spiega come gli sviluppatori possono rendere accessibili le immagini. Infatti alcuni utenti possono non essere in grado di vedere le immagini, altri invece, possono usare browser testuali che non supportano le immagini, e così via. Le linee guida non suggeriscono di evitare le immagini per migliorare l accessibilità, ma al contrario, esse spiegano che fornire un equivalente testuale dell immagine la renderà accessibile. Il contenuto testuale poi, può essere presentato all utente come sintesi vocale, braille e testo visualizzato sullo schermo.

CAPITOLO 2. INTERAZIONE UOMO COMPUTER 10 Ognuno di questi tre meccanismi usa uno dei cinque sensi - udito per la sintesi vocale, tatto per il braille e vista per il testo visualizzato sullo schermo - rendendo l informazione accessibile a gruppi rappresentativi di una molteplicità di disabilità sensoriali o di altro tipo. Perché possa essere utile, il testo deve svolgere la stessa funzione o scopo dell immagine. Per esempio, si consideri un equivalente testuale per un immagine fotografica del pianeta Terra visto dallo spazio. Se lo scopo dell immagine è principalmente quello decorativo, allora il testo Foto della Terra vista dallo spazio può svolgere la funzione necessaria. Se ad esempio la foto è stata designata per dire all utente di selezionare l immagine (per esempio, cliccando su di essa) per avere delle informazioni riguardanti la Terra, l equivalente testuale dovrà essere Informazioni sul pianeta Terra. Perciò se il testo svolge la stessa funzione sia per l utente con una disabilità e sia per gli utenti comuni, allora essa può essere considerata un equivalente testuale. Un altro aspetto importante, descritto nelle linee guida, è il non fare affidamento univocamente sul colore, cioè bisogna assicurarsi che il testo e la parte grafica siano comprensibili anche in assenza di colore; garantire che i documenti siano chiari e semplici, affinché possano essere più facilmente comprensibili; assicurarsi, inoltre, che le pagine rimangano accessibili anche quando le tecnologie più recenti non sono supportate o disattivate. Infine fornire informazioni di contesto e orientamento, come ad esempio l uso della sequenzialità, per aiutare gli utenti a navigare nella pagina.

Capitolo 3 Il S.O. Android e tecnologie utilizzate 3.1 Introduzione ad Android Android è un sistema operativo basato su kernel Linux progettato principalmente per dispositivi mobili touchscreen come smartphone e tablet. Sviluppato da Google (ma ancora prima dalla Android Inc.) e lanciato per la prima volta nel 2008. Diversamente dai sistemi concorrenti principali, come ios (Apple) e Windows Phone (Microsoft), Android poggia le basi su una struttura open-source. Grazie a questa sua natura, risulta molto flessibile per lo sviluppo di software ad esso dedicato. Sebbene nelle sue prime incarnazioni fosse un sistema piuttosto lento e instabile, si è evoluto rapidamente, raggiungendo oggi risultati molto apprezzabili a livello di prestazioni, sicurezza, facilità d uso e potenzialità, tanto da aver conquistato una enorme fetta di utenza appassionata. Infatti da com è visibile nel seguente grafico 11

CAPITOLO 3. IL S.O. ANDROID E TECNOLOGIE UTILIZZATE 12 a torta, si può affermare che Google e Apple sono i maggiori produttori di dispositivi mobili. Nella progettazione dell applicazione WinGuido, è stato scelto il sistema operativo Android per i seguenti motivi: Completamente open source; Programmabilità a basso livello con linguaggio nativo mediante NDK (Native Developement Kit), contenente un insieme di strumenti che permettono di sviluppare parti di applicazione utilizzando un linguaggio di programmazione nativo di basso livello: C, C++; Altissima diffusione; Costi ridotti di accesso e di sviluppo; Gestione automatica del ciclo di vita dell applicazione; Estremamente portabile: può essere implementata per una grande varietà di dispositivi (non solo smartphone, ma anche tablet, ebook reader, netbook); Gestione della grafica e del suono di qualità supportate da librerie OpenGL.

CAPITOLO 3. IL S.O. ANDROID E TECNOLOGIE UTILIZZATE 13 3.2 SDK Android e le sue versioni Un SDK (Software Development Kit) indica un insieme di strumenti, utilizzati per lo sviluppo di applicazioni. Le versioni sono indicate da un numero di versione, seguito sempre da un nome in codice per tradizione ispirato a prodotti dolciari sempre in ordine alfabetico. Figura 3.1: Versioni Android Nell Aprile del 2009 viene lanciato Cupcake, che introduce una migliore integrazione con i servizi di Google e favorisce il supporto ai widget, oltre alle API per sfruttare l accelerometro ed il supporto per il Bluetooth. Viene introdotta la tastiera virtuale e la possibilità di girare filmati e scattare fotografie mediante l utilizzo della fotocamera integrata. Dopo quattro mesi, nasce la versione Donut che introduce il sistema a ricerca vocale, un motore di ricerca integrato, un backup automatizzato, il sistema di autentificazione Wpa e Wi-Fi. Viene migliorata, inoltre, la gestione della fotocamera e l interfaccia dell Android Market. Ad ottobre, viene rilasciata la versione Eclair, con la quale vengono aggiunte diverse funzionalità. Gli aggiornamenti riguardano principalmente la fotocamera, che guadagna le funzioni oggi più comuni come: zoom, bilanciamento del bianco, scene preimpostate e vari effetti sui colori. Anche la rubrica viene stravolta poiché da adesso è possibile importare i contatti da Facebook e Twitter, utilizzando le foto profilo. Google Navigator compare per la prima volta sui cellulari androidiani, permettendo la guida vocale passo-passo. Nasce il supporto multitouch e viene migliorata l interfaccia grafica ed ottimizzate le prestazioni con tutti i terminali. La nuova versione Froyo apporta modifiche importanti nella gestione delle risorse hardware, migliorando le prestazioni in maniera sensibile (i telefoni risulteranno in media ben 5 volte più veloci) ed include Google Chrome nel browser del sistema. Da adesso i cellulari potranno fungere anche da hot-spot WiFi grazie al tethering Wireless. Viene, inoltre, attivato il pieno supporto alla tecnologia Adobe Flash, e le applicazioni potranno godere della funzione auto up-date con la quale si potranno aggiornare in automatico.

CAPITOLO 3. IL S.O. ANDROID E TECNOLOGIE UTILIZZATE 14 A dicembre 2010 viene rilasciata la release Gingerbread 2.3 che determina una svolta nello sviluppo del sistema operativo. La versione Froyo 2.2 viene migliorata per aumentare ancora la velocità di esecuzione delle applicazioni e dei giochi, vengono anche integrati i sistemi di chiamata VOIP/SIP. Nel febbraio 2011 viene lanciata la versione Honeycomb, interamente pensata per i dispositivi tablet. Viene rivista soprattutto l interfaccia grafica, che adesso può sfruttare schermi più ampi, per cui anche i widget possono mostrare molte informazioni senza che vengano necessariamente aperti. Inoltre i giochi possono sfruttare nuove API per l accelerazione. Con l avvento dell IceCream Sandwich, il sistema Android viene interamente riprogettato, al fine di migliorare ulteriormente le prestazioni e di renderlo fruibile da qualsiasi tipologia di device (tablet o smartphone). Tutte le prestazioni vengono ottimizzate, vengono introdotti i pulsanti virtuali e tutte le applicazioni vengono aggiornate. Nasce Face-Unlock per sbloccare il dispositivo tramite il riconoscimento facciale e si introducono molti miglioramenti alla fotocamera (annullamento del ritardo dello scatto, foto panoramiche e zoom durante le riprese video). Dettatura vocale, maggiore integrazione con i social network, accesso alle app dalla schermata di sblocco tasti, funzione Wi-Fi Direct (praticamente il bluetooth via Wi-Fi) sono le principali innovazioni che questa rivoluzionaria versione porta con sé. I quattro aggiornamenti di Icecream Sandwich sono finalizzati ad apportare piccole migliorie e alcuni bug-fix. In Luglio 2012 nasce la versione Jelly Bean. Tra i miglioramenti più importanti vi è il riconoscimento del tocco, ottimizzazione dell utilizzo della CPU, digitazione testo migliorato, voice typing offline, migliorata la gestione dei widget, miglioramenti notevoli nella fluidità grazie a Project Butter. Importanti ottimizzazioni dell applicazione fotocamera, nuove funzionalità per la condivisione di foto e video tramite NFC, Android Beam migliorato, gestione avanzata delle notifiche, nuovo servizio Google Now, sintesi vocale migliorata, Google Play Store aggiornato, riconoscimento vocale avanzato. Infine, nell Ottobre 2013, nasce KitKat, nella quale è stata rinnovata l interfaccia e introdotto il full screen completo. Hangouts è diventato il client ufficiale per SMS e MMS, introdotte nuove funzioni di chiamata, aggiunta la possibilità di catturare video in MP4 di ciò che avviene sullo schermo, aggiunto il supporto nativo alla stampa di foto, documenti e pagine web verso Google Cloud Print, HP eprint, e altre stampanti compatibili. E stata aggiunta una nuova voce dedicata alla Home nelle impostazioni per lo switch tra launcher; aggiunte le emoji alla tastiera di Google. Rinnovata l app Download, con opzioni per l ordinamento e la visualizzazione. Supporto per 3 nuovi tipi di sensore (vettore di rotazione geomagnetica, rilevatore e

CAPITOLO 3. IL S.O. ANDROID E TECNOLOGIE UTILIZZATE 15 contatore di passi) e aggiunta la funzione contapassi. Diminuito il consumo di batteria durante la riproduzione audio. Introduzione di ART (Android RunTime), un nuovo compilatore, attualmente in via sperimentale, attivabile dalle Opzioni Sviluppatore. Ottimizzato il funzionamento del sistema sui dispositivi con poca RAM. 3.3 L architettura del sistema Android Figura 3.2: Architettura del sistema operativo Android L architettura di Android è distribuita in vari livelli, dove un livello inferiore offre un servizio al livello superiore. A partire dal livello più basso è presente il Linux Kernel, successivamente un insieme di librerie native per le funzionalità core della piattaforma, una implementazione della Virtual Machine e un insieme di librerie Java. 3.3.1 Linux Kernel Lo strato più basso è rappresentato dal kernel di Linux. La necessità infatti era quella di disporre di un vero e proprio sistema operativo che fornisse gli strumenti di basso livello per la virtualizzazione dell hardware sottostante,

CAPITOLO 3. IL S.O. ANDROID E TECNOLOGIE UTILIZZATE 16 attraverso la definizione di driver. In questo strato sono presenti i driver per la gestione delle periferiche multimediali, del display, della connessione Wi-Fi e dell alimentazione. Inoltre è presente anche un driver per la gestione della comunicazione tra processi diversi (IPC), fondamentale per far comunicare componenti diversi in un ambiente in cui ciascuna applicazione viene eseguita all interno di un proprio processo. 3.3.2 Libraries & Android Runtime Al di sopra del layer del kernel vi è un livello che contiene un insieme di librerie native affiancato da Android Runtime, che comprende la DVM e librerie core. Le librerie native sono scritte in linguaggio C/C++ e fanno riferimento a progetti Open Source. Attraverso l Application Framework gli sviluppatori hanno accesso ai servizi forniti da diverse librerie, come: Libc: un implementazione di derivazione Berkeley Software Distribution (BSD) della libreria di sistema standard C, ottimizzata per dispositivi basati su versioni embedded di Linux. Media Framework: permette la riproduzione e registrazione di media, dando supporto ai più diffusi formati audio, video e immagini attraverso l utilizzo delle librerie OpenCORE messe a disposizione da PacketVideo. WebKit: è un moderno web browser engine che sta alla base del browser di Android, il quale può essere utilizzato da qualunque applicazione sotto forma di finestra browser. SQLite: il Database Management System (DBMS) utilizzato da Android. SQLite è un DBMS relazionale molto potente e affidabile che si distingue per la sua leggerezza, i motivi della sua scelta risultano chiari in quanto i DBMS sono solitamente prodotti molto esigenti in termini di risorse vista la loro complessità a livello software. L Android Runtime è formato dalle core libraries, che includono buona parte delle funzionalità fornite dalle librerie standard di Java a cui sono state aggiunte librerie specifiche di Android. La piattaforma di sviluppo per le applicazioni Android è di natura Java; abitualmente un applicazione viene, attraverso la compilazione, trasformata in un file.class, dove all interno è presente il bytecode che viene eseguito da

CAPITOLO 3. IL S.O. ANDROID E TECNOLOGIE UTILIZZATE 17 un programma chiamato macchina virtuale. Negli ambienti Android non è utilizzata la Java Virtual Machine della Sun, ma è stata scritta una nuova VM chiamata Dalvik Virtual Machine (DVM). 3.3.3 Application Framework Le libraries vengono utilizzate da una serie di componenti di più alto livello che costituiscono l Application Framework. Si tratta di un insieme di API e di componenti per l esecuzione di funzionalità ben precise e di fondamentale importanza in ciascuna applicazione Android. In ognuna di esse viene utilizzato lo stesso Application Framework, questo perché l architettura è progettata per il riuso delle componenti e quindi possono essere estese, modificate o sostituite. Tra le principali vi sono: Activity Manager che si occupa di controllare il ciclo di vita delle Activity, le quali rappresentano gli elementi più importanti di un applicazione; Il Window Manager gestisce le finestre relative a differenti applicazioni; Location Manager che rende immediato l accesso a tutti gli hardware in grado di individuare la posizione del dispositivo. Permette quindi di realizzare con pochi passaggi servizi location-based come mappe, giochi che sfruttano la posizione degli utenti, navigatori satellitari e altri; Notification Manager che permette allo sviluppatore di interagire con vari sistemi utilizzati per notificare determinati eventi. 3.3.4 Applications Infine, sullo strato più alto dell architettura, troviamo gli applicativi con cui l utente finale si interfaccia. Molti, naturalmente, sono già inclusi con l installazione di base come il browser, il player multimediale e così via.

CAPITOLO 3. IL S.O. ANDROID E TECNOLOGIE UTILIZZATE 18 3.4 Le Active Server Pages 3.4.1 Introduzione ad ASP Le Active Server Pages (ASP) sono pagine web contenenti, oltre codice HTML, degli script che sono eseguiti dal server per generare codice HTML runtime da inviare al browser dell utente: proprio per questo motivo sono definite pagine web dinamiche. In questo modo è possibile mostrare contenuti dinamici, come ad esempio il risultato di una query di un database che risiede sul server web, e modificarne l aspetto secondo le regole programmate negli script, il tutto senza dover inviare il codice del programma all utente finale. Così si avrà un notevole risparmio sul tempo e sulla larghezza di banda. ASP non è un linguaggio di programmazione ma è una tecnologia Microsoft. Utilizza due linguaggi: VBScript e JScript, grazie ai quali il sistema dinamico può comunicare lato server con tutti gli oggetti presenti sul sistema. È possibile interfacciare le pagine ASP con qualsiasi tipo di database che abbia un driver OLE-db o ODBC, come ad esempio Access, SQL Server, MySQL, Oracle e tanti altri. 3.4.2 Utilizzo della tecnologia ASP Il procedimento attraverso il quale vengono create delle pagine dinamiche, segue una ordinata successione di passi. Per visualizzare una normale pagina HTML: Figura 3.3: Visualizzazione normale pagina HTML l utente (client) digita nel browser l URL della pagina (ad esempio www.appwinguido.it/home.html);

CAPITOLO 3. IL S.O. ANDROID E TECNOLOGIE UTILIZZATE 19 la richiesta parte ed arriva al Server del sito (www.appwinguido.it); il Server cerca la pagina nella directory specificata; la pagina (home.html) viene inviata al client; la pagina viene visualizzata sul browser. Per visualizzare una pagina ASP, il processo è lo stesso, ma vi è uno step aggiuntivo: Figura 3.4: Visualizzazione pagina ASP l utente (client) digita nel browser l URL della pagina (ad esempio www.appwinguido.it/home.asp); la richiesta parte ed arriva al Server del sito (www.appwinguido.it); il Server cerca la pagina nella directory specificata; tutti gli script presenti nella pagina vengono elaborati; la pagina (home.asp) viene inviata al client; la pagina viene visualizzata sul browser.

CAPITOLO 3. IL S.O. ANDROID E TECNOLOGIE UTILIZZATE 20 3.5 Microsoft Access 3.5.1 Introduzione Il termine database indica una qualsiasi raccolta di dati (base dati) come ad esempio: la guida del telefono, un libro di ricette, l archivio di un ufficio e ogni altro tipo di archivio. In informatica, un Database Management System (DBMS) è un sistema software progettato per consentire la creazione, la manipolazione (da parte di un amministratore) e l interrogazione da parte di uno o più utenti di database. Sul mercato sono presenti molti database con diverse caratteristiche. Uno dei più diffusi è Microsoft Access, che deve il suo grande successo anche al fatto di essere inserito nel pacchetto Office di Microsoft. 3.5.2 Tipologie di database I database si dividono in due grandi categorie: semplici: formati da una sola tabella, memorizzano in un unico archivio dati semplici che richiedono un elaborazione minima. Sono utili per creare elenchi, come raccolte di indirizzi. Generalmente sono per uso personale. complessi: sono nati per gestire una maggiore quantità di dati (per esempio, i database per la gestione dei conti correnti nelle banche). Sono rivolti a un uso più professionale e consentono che più utenti modifichino i dati in contemporanea (è il caso degli archivi per la prenotazione dei voli aerei, cui accedono in contemporanea più agenzie di viaggi connesse con diversi terminali). I database complessi si dividono a loro volta in varie categorie, tra cui: object-oriented e relazionali. 3.5.3 I database relazionali e i principali elementi costitutivi Questo tipo di database è nato negli anni Settanta. La sua teorizzazione si deve a E. F. Codd, un tecnico IBM che ha gettato le basi per la realizzazione dei moderni programmi di gestione dei database. Ogni database relazionale presenta soluzioni diverse. Per esempio, Access memorizza tutto l archivio in un unico grande file con estensione.accdb (.mdb nelle versioni precedenti alla 2007), mentre altri programmi dividono l archivio in tanti file più piccoli, ma questo non influenza i concetti che portano alla strutturazione dei dati.

CAPITOLO 3. IL S.O. ANDROID E TECNOLOGIE UTILIZZATE 21 In questo lavoro di tesi sono stati utilizzati due tra i principali elementi costitutivi di un database relazionale: tabelle e query. In un database, i dati sono memorizzati nelle tabelle, ovvero oggetti utilizzabili per memorizzare i dati relativi a un particolare argomento. Si potrebbe ad esempio creare una tabella utenti per memorizzare un elenco di nomi, cognomi, email, username e password. Figura 3.5: Esempio tabella in Microsoft Access Una tabella è costituita da record e campi. Ogni record contiene dati su una singola istanza dell argomento della tabella, ad esempio su uno specifico utente. I record vengono anche comunemente chiamati righe o istanze. Ogni campo contiene dati su un singolo aspetto dell argomento della tabella, ad esempio il nome o l username dell utente. I campi vengono anche comunemente chiamati colonne o attributi. Un record è costituito da valori di campo, come example@appwinguido.it. I valori di campo vengono anche comunemente chiamati fatti. Un database può contenere numerose tabelle, ognuna delle quali è utilizzata per memorizzare informazioni su un argomento diverso. In ogni tabella possono essere inclusi molti campi contenenti dati di diverso tipo, ad esempio testo, numeri, date e collegamenti ipertestuali. Per esaminare, aggiungere, modificare o eliminare dati dal database, vengono utilizzate le query.

CAPITOLO 3. IL S.O. ANDROID E TECNOLOGIE UTILIZZATE 22 Figura 3.6: Esempio query in Microsoft Access e relativo output Una query consente di ottenere risposte a domande molto specifiche sui dati che sarebbe difficile ottenere esaminando direttamente i dati della tabella. È possibile utilizzare le query per filtrare i dati, eseguire calcoli e riepilogare le informazioni, nonché per automatizzare molte attività di gestione dei dati ed esaminare le modifiche apportate ai dati prima di confermarle. Per realizzare una query, occorre un linguaggio che dica al database quale tipo di ricerca eseguire, ossia che impartisca al database le nostre istruzioni. Access utilizza un linguaggio chiamato SQL (Structured Query Language).

Capitolo 4 App WinGuido 4.1 Introduzione Per comprendere fino in fondo l ostacolo a cui è sottoposto ogni giorno un utente non vedente, non basta tenere chiusi gli occhi per qualche minuto e provare a eseguire le comuni azioni quotidiane. Solo in Italia, secondo l Istat, i non vedenti sono circa 350 mila e gli ipovedenti circa un milione e mezzo, mentre nel mondo le persone con problemi di vista sono circa 285 milioni (stima dell Organizzazione mondiale della Sanità). Lo sviluppo di nuove tecnologie ha portato un netto miglioramento della vita di queste persone: un esempio è WinGuido. WinGuido è un software per ipovedenti e non vedenti che permette di comandare il pc con la voce, realizzato dall Ing. Guido Ruggeri. L implementazione dei comandi vocali è stata realizzata integrando il motore di riconoscimento vocale Dragon Naturally Speaking Professional sviluppato da Nuance. Il programma ha come punti cardine l accessibilità e l usabilità ed è probabilmente uno dei precursori dei computer del futuro, che dovranno avere poche funzioni semplici da utilizzare. 23

CAPITOLO 4. APP WINGUIDO 24 Figura 4.1: Interfaccia grafica del software WinGuido WinGuido cerca di ricondurre il sistema Microsoft Windows a una logica più simile a quella dei precedenti sistemi operativi, quali MS DOS, i quali rispondevano già, almeno nel modo di gestire lo schermo, a dei requisiti di essenzialità, semplicità e, soprattutto, di sequenzialità. Per sequenzialità si intende far fare all utente un operazione alla volta, a conclusione della quale si passa a quella successiva. Il programma permette di svolgere, secondo procedure appositamente concepite, le funzioni di uso più frequente nell utilizzo del personal computer quali l archiviazione dei dati, in particolare per quanto riguarda indirizzi e numeri di telefono, appuntamenti e scadenze, lettura e editazione di testi e così via. Con il passare del tempo, l evoluzione tecnologica che ha accompagnato lo sviluppo dei normali pc, ha coinvolto i dispositivi mobili. Essi rivestono un ruolo sempre più importante sia nelle aziende e sia nella nostra vita privata, permettendoci di svolgere dei compiti, mediante l utilizzo di applicazioni, che fino a qualche anno fa, erano eseguibili solo attraverso un normale pc. Per gli utenti affetti da disabilità visiva le problematiche aumentano, in quanto vi è la necessità di rendere i dispositivi mobili, e di conseguenza le applicazioni, maggiormente accessibili. Per questo motivo nasce l app Win- Guido.

CAPITOLO 4. APP WINGUIDO 25 4.2 Struttura del progetto 4.2.1 Introduzione Gli utenti prima di poter scaricare l applicazione WinGuido dal Play Store di Google, devono registrarsi presso l Associazione Guidiamoci Onlus, la quale fornirà loro le credenziali necessarie per accedere ai servizi dell app. Per semplificare l accesso dell utente al sistema, l applicazione provvederà a compilare automaticamente il form dopo il primo accesso. Attualmente l app WinGuido permette agli utenti di poter accedere a diversi servizi, come la lettura tra i 28 quotidiani nazionali e 2 periodici, la visualizzazione delle ultime news relative al software WinGuido, la possibilità di poter comunicare tramite un forum e infine scoprire la propria posizione geografica grazie a un servizio di geolocalizzazione. Gli utenti non vedenti potranno accedere a questi servizi grazie all uso del TalkBack. Esso aggiunge feedback vocali, sonori e con vibrazione al dispositivo ed è preinstallata sulla maggior parte dei dispositivi Android. 4.2.2 Requisiti non funzionali L applicazione WinGuido eredita, dal programma per pc, due caratteristiche principali: il colore e la sequenzialità. Figura 4.2: Lista dei servizi attivi dell app WinGuido

CAPITOLO 4. APP WINGUIDO 26 Per quanto riguarda il colore, uno degli aspetti importanti è stato la ricerca di due colori, affinché vi sia tra primo piano e sfondo, il massimo contrasto possibile. Esso, unitamente alle dimensioni del testo, rappresenta spesso la chiave di volta dell accessibilità a livello visivo del web e delle applicazioni. I colori che caratterizzano WinGuido sono il verde chiaro, per lo sfondo, e il nero, per il testo. Per quanto riguarda invece la sequenzialità, utilizzare gli elementi della navigazione sequenziale come le barre e le pagine scrollabili, permette agli utenti di muoversi all interno della pagina seguendo delle sequenze ben definite: linea per linea, pagina per pagina, link per link. La navigazione sequenziale è in grado di fornire immediatamente, quindi, un ordine all interno della pagina. 4.2.3 Jsoup: come manipolare un documento HTML Jsoup è una potente libreria di parsing html/xml le cui API consentono di estrarre dati e manipolare in maniera estremamente semplice documenti, sfruttando le potenzialità di DOM. Jsoup permette di eseguire facilmente il parsing di una pagina HTML fornita come stringa o direttamente come URL. Per ottenere il documento HTML direttamente dall URL: Document doc = Jsoup.connect(http://appwinguido.it/).get(); L oggetto Document contiene tutti gli elementi della pagina, disposti in un albero mantenendone la struttura gerarchica originaria. L oggetto Element è il fulcro centrale della libreria: esso infatti rappresenta un elemento HTML con relativa sottostruttura; a partire da esso è possibile estrarre dati ed attraversare il grafo dei nodi. Document è una semplice sottoclasse di Element con l aggiunta di alcuni metodi specifici per la radice di una pagina HTML, tra cui un metodo per ottenerne il titolo e due metodi per ottenere l Element di header o body della pagina. Per attraversare la struttura vi sono diversi metodo applicabili su un Element, tra i più importanti: getelementbyid(string id): individua l elemento con l id indicato. L id è un semplice attributo che deve però assumere per ogni elemento un valore univoco in tutto il documento HTML;

CAPITOLO 4. APP WINGUIDO 27 getelementsbytag(string tag): restituisce gli elementi di un certo tipo, ovvero quelli con il tag di apertura coincidente a quello indicato; getelementsbyattribute(string key): restituisce gli elementi che contengono un attributo così denominato. Figura 4.3: Document Acquisizione del titolo della pagina web tramite l oggetto 4.2.4 Meccanismo per l acquisizione dati Uno dei vantaggi principali di WinGuido è la velocità con la quale vengono visualizzate (o lette dal Talkback) le informazioni. Questo è possibile perché all interno dell app non è presente alcun tipo di dato. Infatti tutte le informazioni vengono prelevate dinamicamente dalla pagina Web dell Associazione Guidiamoci Onlus (o da www.winguido.it) e poi visualizzate sul dispositivo. Le pagine HTML sono strutturate nel seguente modo: non contengono immagini; le informazioni sono contenute all interno di tag <p>(paragrafo). Questa struttura facilita la lettura dello screen reader di WinGuido per pc e l acquisizione dei dati per l applicazione.

CAPITOLO 4. APP WINGUIDO 28 Figura 4.4: Home di WinGuido e la sua struttura HTML I dati vengono prelevati dalla pagina HTML mediante l utilizzo di un semplice algoritmo che effettua il parsing della pagina utilizzando le funzioni della libreria Jsoup: Le informazioni così ottenute vengono visualizzate nell app utilizzando uno degli elementi più importanti del sistema operativo Android: la ListView. Essa viene utilizzata per rappresentare liste, elenchi, attraverso un adapter che viene implementato all interno di essa. L adapter si occupa della rappresentazione grafica dei dati e dell interazione con essi, per ogni elemento della ListView. La ListView visualizza le view ottenute, da una implementazione dell interfaccia ListAdapter. Quest ultima implementa a sua volta l interfaccia Adapter: insieme descrivono la modalità di visualizzazione dell intera lista di elementi. Esistono diverse implementazioni di questo modello, tra cui l ArrayAdapter. L interfaccia ListAdapter, quindi, è utilizzata per visualizzare un array di elementi dove a ogni elemento della ListView è associata una TextView. Per ogni TextView, sarà associata l informazione prelevata dal paragrafo, presente all interno della pagina HTML.

CAPITOLO 4. APP WINGUIDO 29 Figura 4.5: Home di WinGuido visualizzata dall applicazione 4.2.5 Navigazione dinamica delle pagine web dall app Per poter navigare attraverso le pagine web dell Associazione Guidiamoci Onlus (o www.winguido.it) dall applicazione, viene utilizzata una tecnica più complessa. La tecnica si basa principalmente su due ArrayList aventi la stessa dimensione: il primo contenente il testo che deve essere visualizzato (o letto) all utente, che è contenuto nel tag <a>, il tutto presente all interno del tag <p>. L altro ArrayList contiene gli URL delle pagine web corrispondenti. A ogni locazione del primo ArrayList, contenente il testo, corrisponde una locazione nell altro ArrayList contenente l URL a cui deve connettersi. Se il paragrafo non contiene un tag <a>ma è un semplice testo, all interno della corrispondente locazione dell ArrayList, relativa agli URL, verrà memorizzata la parola chiave no link. La ListView descritta nel paragrafo precedente, sarà popolata con gli elementi presenti all interno del primo ArrayList. Quando l utente effettua la scelta mediante un click su un elemento della ListView, accederà alla pagina web specificata all interno del secondo ArrayList. Dinamicamente, gli ArrayList saranno inizializzati con i dati relativi a quella pagina web. Per la gestione del click sull elemento, la lista sarà associata a un oggetto listener. Per listener intendiamo la possibilità di catturare gli eventi che sono generati quando effettuiamo un click o selezioniamo un qualsiasi elemento della lista. Ciò permette di associare all evento un azione che

CAPITOLO 4. APP WINGUIDO 30 implementiamo all interno di un interfaccia specifica. Una delle più importanti è OnItemClickListener, nella quale è presente il metodo OnClick(). Il metodo OnClick() riceve come argomenti l Adapter, la View, la posizione e l id: attraverso questi argomenti possiamo accedere all elemento che abbiamo cliccato. Ad esempio, supponiamo di visualizzare la seguente pagina web: Ispezionando il codice sorgente, è possibile notare che alcuni tag <p>contengono dei tag <a>, nel quale è presente l attributo href contenente l URL della pagina a cui l utente vuole accedere.

CAPITOLO 4. APP WINGUIDO 31 In seguito, gli ArrayList saranno popolati utilizzando la tecnica appena descritta. Ecco come le informazioni sono visualizzate nell applicazione. Quando l utente effettuerà la scelta con un click sull elemento, accederà alla pagina successiva.

CAPITOLO 4. APP WINGUIDO 32 4.3 Servizio: Forum 4.3.1 Introduzione Il primo servizio sviluppato in questo progetto di tesi permette, agli utenti di WinGuido, di accedere dall applicazione al forum ufficiale dell Associazione Guidiamoci Onlus. Gli utenti potranno navigare tra le discussioni del forum, inserire nuovi messaggi e scambiare informazioni. 4.3.2 Analisi delle pagine web del Forum Figura 4.6: Home del forum dell Associazione Guidiamoci Onlus Il forum rappresenta un punto d incontro in rete nel quale gli utenti, attraverso l inserimento di messaggi in successione, possono discutere di vari argomenti, leggere le opinioni altrui e intervenire per esprimere le proprie. Gli utenti, inoltre, possono discutere di diverse problematiche; proprio per questo motivo il forum è utilizzato anche come strumento di assistenza online. La struttura delle pagine HTML del forum, accessibili da web e dal software di WinGuido, ha come base la struttura descritta nel paragrafo precedente, cioè non presenta immagini e le informazioni sono contenute all interno di paragrafi, ma aggiunge dei tag <input> e tag <textarea> per permettere agli utenti di inserire nuove discussioni e messaggi.

CAPITOLO 4. APP WINGUIDO 33 Figura 4.7: Struttura HTML delle pagine del forum 4.3.3 Implementazione: l utilizzo delle finestre di dialogo Come detto in precedenza, i dati sono visualizzati nell applicazione mediante l utilizzo di una ListView; ogni elemento della lista sarà associato a una Text- View. Quest associazione però, in questo caso, non è possibile, in quanto l utente deve inserire dati e non visualizzare le informazioni. Per permettere all utente l inserimento di una nuova discussione o di un nuovo messaggio, viene utilizzato l elemento AlertDialog. Un esempio di AlertDialog, sono le finestre di conferma che chiedono all utente se proseguire o meno con una determinata operazione.

CAPITOLO 4. APP WINGUIDO 34 Per poterle utilizzare si fa riferimento alla classe Dialog che definisce, con i suoi metodi, cosa una finestra di dialogo può fare e come può essere manipolata. Per utilizzare un AlertDialog è necessario creare un altro layout, che definisce l aspetto della schermata che apparirà all utente. Figura 4.8: Esempio di creazione di una nuova discussione nel forum tramite l app WinGuido Inoltre, saranno presenti due bottoni per permettere all utente di inviare il messaggio o annullare l operazione. Dopo il click su invia messaggio, comparirà all utente un ulteriore Alert- Dialog, nel quale saranno riproposti i dati appena inseriti e, in caso positivo, inseriti nel Forum. L uso degli AlertDialog non è casuale: essi sono gli elementi più utilizzati nel mondo della disabilità visiva. Quando una finestra di dialogo compare, l attività da cui dipende viene bloccata, e l utente deve necessariamente interagire con la finestra di dialogo per farvi ritorno. Per questo motivo l utente non vedente, grazie all aiuto del TalkBack, interagirà inizialmente solo con finestra d inserimento dati e poi in seguito con la seconda, nella quale il TalkBack provvederà a leggere i dati inseriti.

CAPITOLO 4. APP WINGUIDO 35 4.3.4 Gestione e salvataggio dei dati Se l inserimento ha esito positivo, i dati sono inviati a una pagina ASP e in seguito inseriti all interno del database dell Associazione Guidiamoci Onlus. L invio dei dati, dall applicazione alla pagina, avviene attraverso il metodo POST. Gli oggetti HttpClient e HttpPost, saranno i responsabili dell esecuzione della richiesta POST. L oggetto address, di tipo String, rappresenta l indirizzo web di destinazione. Per l invio dei dati è utilizzata una lista di NameValuePair come entità dell oggetto HttpPost. Nella lista sono inseriti l username dell utente, il titolo della discussione e il messaggio, definendo una chiave per ogni elemento. Infine, la richiesta HTTP di tipo POST genererà come risultato un oggetto di tipo HttpResponse contenente i dati, che andranno poi estratti, grazie alle chiavi, nella pagina di destinazione. Figura 4.9: Esempio di invio dati attraverso il metodo POST Nella pagina ASP di destinazione, i dati inviati sono recuperati grazie al metodo Form dell oggetto Request. user = Request.form(user) titolo = Request.form(titolo) mess = Request.form(messaggio) Per inserire i dati così ottenuti all interno del database è utilizzata la tecnologia ADO. Uno dei principali oggetti della tecnologia ADO è l oggetto Connection, creato tramite il metodo CreateObject dell oggetto Server e utilizzato per effettuare la connessione al database. Aperta la connessione con la fonte di dati, viene utilizzato l oggetto RecordSet per inserire e recuperare le informazioni.

CAPITOLO 4. APP WINGUIDO 36 Esso consente di eseguire le istruzioni SQL restituendo un insieme di record tramite una query. Come l oggetto Connection, RecordSet è creato utilizzando l oggetto Server. Figura 4.10: Esempio di apertura connessione eesecuzione query Infine l utente, potrà visualizzare la discussione e il messaggio inserito. Figura 4.11: Visualizzazione dei dati inseriti tramite l app WinGuido

CAPITOLO 4. APP WINGUIDO 37 4.4 Servizio: Dove sono? 4.4.1 Introduzione Il secondo servizio sviluppato in questo progetto di tesi è un servizio di localizzazione. Esso permette agli utenti dell Associazione Guidiamoci Onlus di determinare, via GPS o rete cellulare, la propria posizione sul globo terrestre. Il servizio non è presente nel software WinGuido per pc, ma è stato progettato per essere utilizzato unicamente su smartphone. Inoltre è stata implementata la possibilità, in caso di difficoltà dell utente, di poter inviare un sms di soccorso a un contatto della rubrica nel quale sarà specificata, automaticamente, la propria posizione geografica. 4.4.2 Percezione degli spazi e la mobilità per un non vedente Per ogni essere vivente, la ricezione delle informazioni riguardanti il mondo circostante, si basa fondamentalmente sugli organi di senso. Nella percezione degli spazi, da parte di un individuo, la vista permette un iniziale interpretazione di tutto l ambiente circostante, mentre l udito integra tale visione con sensazioni di tipo direzionale. Il tatto, invece, permette una conoscenza delle proprietà degli oggetti, come ad esempio la forma, la grandezza o il peso. Il non vedente compensa la mancanza della visione utilizzando gli altri sensi, in modo da creare una mappa mentale dei luoghi, basata su immagini sensoriali. Infatti, tutti i sensi rimanenti, principalmente tatto e udito, vanno a sostituire, anche seppur in maniera incompleta, la capacità di percepire gli spazi. Può far affidamento a una guida, come un amico a quattro zampe, o utilizzare bastoni rigidi, i cosiddetti bastoni bianchi. Nonostante ciò, chi è affetto da disabilità visiva, ha il diritto di poter vivere autonomamente, senza esser costretto ad aiuti ausiliari. Il diritto alla mobilità per i disabili è considerato e riconosciuto come diritto fondamentale dell uomo anche dall Assemblea delle Nazioni Unite, nella quale si é affermato che gli Stati dovrebbero riconoscere la prominente importanza dell accessibilità nel processo di creazione di uguali opportunità in tutti i campi della vita sociale. Per mobilità si intende, quindi, la possibilità per i non vedenti e per gli ipovedenti di spostarsi nell ambiente senza un accompagnatore, al fine di svolgere tutte le attività della vita quotidiana, come ad esempio usufruire dei mezzi pubblici di trasporto. Per garantire tutto questo, bisogna far sì che l ambiente circostante risulti idoneo e conforme a tutte le norme relative all accessibilità. Norme che,

CAPITOLO 4. APP WINGUIDO 38 molto spesso, non sono rispettate: così anche una tranquilla passeggiata, può creare un grande disagio. L obiettivo di questo servizio, quindi, è proprio quello di permettere agli utenti, grazie a un semplice click, di individuare la propria posizione, di conoscere in ogni momento la strada che si sta percorrendo e in caso di pericolo, chiedere soccorso. 4.4.3 La geolocalizzazione Figura 4.12: Satelliti intorno alla Terra Il servizio Dove sono è basato sulla geolocalizzazione, cioè l identificazione della posizione geografica di un dato oggetto, come in questo caso di uno smartphone o un computer connesso o meno a Internet, secondo varie possibili tecniche. Le tecnologie più utilizzate si suddividono in diversi sistemi, come la localizzazione tramite le celle della rete telefonica cellulare. E analizzata la potenza del segnale radio di ogni cella telefonica, in relazione alla rispettiva stazione radio base, collegata con il dispositivo mobile; viene, poi, utilizzata anche la rete Internet, utilizzando l indirizzo IP della propria rete, dove la localizzazione dipende dalla registrazione del collegamento ad un database. Il sistema di posizione più utilizzato, e disponibile negli smartphone di ultima generazione, è il GPS (Global Positioning System), ossia sistema di posizionamento globale. Si tratta di un sistema costituito da una serie di satelliti artificiali in orbita intorno al pianeta. Ciascun satellite trasmette ciclicamente dei messaggi verso la superficie. I messaggi contengono il segnale

CAPITOLO 4. APP WINGUIDO 39 orario e delle informazioni sulle orbite percorse. Il ricevitore GPS ascolta questi messaggi e li elabora. In base al ritardo dei segnali e ai contenuti dei messaggi, il ricevitore é in grado di calcolare la propria distanza da ciascun satellite. Nel momento in cui il ricevitore riesce ad agganciare il segnale di quattro o più satelliti, diventa possibile applicare un calcolo matematico simile alla triangolazione, calcolando le distanze fra punti sfruttando le proprietà dei triangoli. In questa maniera, il ricevitore può determinare la propria posizione sul globo terrestre, esprimendola in termini di latitudine e longitudine. Più sono i satelliti di cui il dispositivo riceve il segnale, più e accurata la posizione calcolata. 4.4.4 Implementazione: ricerca della posizione e richiesta di soccorso Gli utenti dell Associazione Guidiamoci Onlus possono usufruire di Dove sono? accedendo all app WinGuido. Il servizio, infatti, è presente nella lista dei servizi attivi. L interfaccia scelta è minimale. Essa rispetta le caratteristiche basi di Win- Guido, il colore verde e la sequenzialità, aggiungendo il colore grigio per la sfondo dei bottoni e il colore nero per il testo: questi ultimi due colori formano un elevato contrasto. Figura 4.13: Interfaccia dell activity principale di Dove sono?

CAPITOLO 4. APP WINGUIDO 40 Com è possibile notare dall immagine, i due bottoni hanno due diverse funzionalità: cerca la tua posizione e indietro, quest ultimo per ritornare alla lista dei servizi attivi. L utente, per determinare la sua posizione, esegue un click sul bottone principale. Come spesso accade in uno smartphone, non tutte le impostazioni sono attive, come ad esempio il Bluetooth, la WiFi o la Geolocalizzazione. Per questo motivo, proprio su quest ultima, viene effettuato un controllo sullo stato di attivazione e in caso negativo l utente potrà accedere direttamente dall applicazione, alle impostazioni generali del suo smartphone. Se la Geolocalizzazione è già attiva, al momento del click, compare un messaggio Toast di avviso, per indicare all utente di attendere l individuazione corretta della posizione. Per l utente non vedente il messaggio sarà letto dal TalkBack. Per determinare la posizione geografica è utilizzata la classe LocationManager. Essa permette di accedere al system location service, consentendo di ricevere notifiche sulla posizione attuale del dispositivo. Un oggetto LocationManager ottiene le informazioni della posizione, mediante i LocationProvider disponibili all interno del sistema: LocationManager.GPS PROVIDER, che identifica il provider collegato al ricevitore GPS del telefono, e il LocationManager.NETWORK PROVIDER, che identifica il provider che localizza in maniera approssimativa il telefono, basandosi sulle reti raggiungibili. La scelta del provider dipende dai particolari criteri richiesti dalla nostra applicazione: accuratezza, potenza, velocità, costo, altitudine. In questo servizio è stato utilizzato il provider GPS. La lettura della posizione è segnalata tramite l oggetto mylocationlistener, che implementa l interfaccia LocationListener. Essa prevede la definizione di una serie di metodi, tra cui onlocationchanged(). Quest ultimo riceve in input un oggetto Location, contenente le coordinate geografiche individuate. L oggetto utilizzato per eseguire la decodifica delle coordinate, cercandone l indirizzo corrispondente, è Geocoder, in particolare con il metodo getfrom- Location(), la cui firma prevede il passaggio di una coordinata (due valori, rispettivamente latitudine e longitudine) e il numero massimo di risultati da restituire, nel caso vengano trovati più indirizzi corrispondenti ad una coordinata.

CAPITOLO 4. APP WINGUIDO 41 La posizione così ottenuta è mostrata all utente (o letta dal TalkBack) utilizzando un AlertDialog nel quale sarà chiesto, inoltre, se inviare un sms di soccorso. In caso affermativo, sarà visualizzata una nuova finestra di dialogo, nella quale l utente potrà inserire il numero di cellulare del destinatario o sceglierlo dalla rubrica. Per accedere ai contatti della rubrica è utilizzato il Content Provider. Un Content Provider si occupa di rendere disponibili i dati presenti in altre applicazioni installate nel sistema. Ogni applicazione, quindi, può definire una o più tipologie di dati e rendere poi disponibili tali informazioni, esponendo uno o più Content Provider. Ogni tipo di contenuto esposto mediante Content Provider è identificato attraverso un Uri. I Content Provider preinstallati in Android sono consultabili al package android.provider. In esso, ad esempio, si trova la classe Contacts, che é quella che fa da ponte per l accesso al provider dei contatti in rubrica. Al suo interno vi è la costante CONTENT Uri, di tipo Uri, che riporta l Uri che identifica univocamente il provider. Definito l Uri, è possibile interagire con il provider mediante interrogazioni, proprio come un database. Per eseguire le interrogazioni bisogna recuperare un istanza dell oggetto ContentResolver attraverso il metodo getcontentresolver(). Gli oggetti ContentResolver permettono le interrogazioni attraverso il metodo query(), il quale restituisce in output un oggetto Cursor. Utilizzando i metodi della classe Cursor, è possibile determinare gli elementi della rubrica, nome e numero, che saranno memorizzati all interno di due ArrayList: listofname e listofnumber.

CAPITOLO 4. APP WINGUIDO 42 Per visualizzare la lista dei contatti della rubrica è utilizzata la ListView. L utente esegue la scelta mediante un click su di un contatto. La gestione del click sarà affidata al metodo onitemclick, della classe OnItemClickListener, determinando così il numero telefonico associato al Contatto. Figura 4.14: Visualizzazione della Rubrica da Dove sono? Infine, una nuova finestra di dialogo, chiederà all utente di confermare l invio della richiesta di soccorso. Confermata la richiesta, il destinatario, riceverà un messaggio contenente le informazioni relative alla posizione dell utente. Quest ultimo potrà essere soccorso.