Transkripce Braillova písma



Podobné dokumenty
SignEditor 1 - návod k použití

1. Otevřete dokument, který chcete číst. 2. Na kartě Zobrazení klikněte ve skupině Zobrazení dokumentů na položku Čtení na celé obrazovce.

MS Word. verze Přehled programů pro úpravu textu

Úvod. Program ZK EANPRINT. Základní vlastnosti programu. Co program vyžaduje. Určení programu. Jak program spustit. Uživatelská dokumentace programu

aneb velice zjednodušené vysvětlení základních funkcí a možností systému Vypracoval: Tomáš Dluhoš tomas.d@centrum.cz

Místo úvodu. Čeho se vyvarovat. Mazání znaků

Psaní na počítači pro 5., 6. a 7. ročník speciální základní školy pro zrakově postižené

Uživatelský manuál aplikace. Dental MAXweb

ERP informační systém

METODICKÝ POKYN PRÁCE S MS PowerPoint - ZAČÁTEČNÍCI. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky.

S klávesovými zkratkami ovládnete Windows jako profík Novinky.cz

Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM. Manuál pro editaci ŽS. Verze 1.

Manuál pro obsluhu Webových stránek

Manuál k ovládání aplikace INFOwin.

Nápověda k používání mapové aplikace Katastrální mapy Obsah

Průvodce aplikací FS Karta

Supernova 16 Ovládací zkratky. Akce Funkce Stolní počítač Přenosný počítač Automatické popisování grafických objektů LEVÝ CONTROL + PRAVÁ HRANATÁ

Formulář pro křížový filtr

Aktuální výběr, nad kterým je kurzor myši

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.

ČESKY. Macro Key Manager Návod k použití

Vizualizace a evidence výroby a prostojů

Úvod do filtrace, Quick filtr

Zá kládní nástávení prostr edí operáč ní ho syste mu Windows 7 á vybrány čh áplikáčí

OPERAČNÍ SYSTÉM. základní ovládání. Mgr. Jan Veverka Střední odborná škola sociální obor ošetřovatel

Microsoft Office PowerPoint 2003

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

Návod k práci s programem MMPI-2

Úvodní list. Název školy Integrovaná střední škola stavební, České Budějovice, Nerudova 59 Číslo šablony/ číslo sady Poř. číslo v sadě 19 32/10

Formulář NÚV v programu PPP4

ERP informační systém

Word 2007 pro začátečníky

Začínáme pracovat s tabulkovým procesorem MS Excel

Způsob ovládání modulů

Možnosti programu. KAPITOLA 5 Možnosti

Postup pro zpracování kontrolního hlášení

z aplikace Access 2003

ZAMĚSTNANECKÝ PORTÁL nastavení a práce v ESO9 PAM

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 2. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28.

Zaměstnanecký portál nastavení a práce v ESO9 PAM

Manuál k programu KaraokeEditor

PowerPoint Kurz 2, 3. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/

VoiceOver v ios s QWERTY klávesnicí

Tiskový manažer - Printman

Elektronické zpracování dotazníků AGEL. Verze

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

Android Elizabeth. Verze: 1.1

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Úvod...1 Instalace...1 Popis funkcí...2 Hlavní obrazovka...2 Menu...3 Práce s aplikací - příklad...5

Osnova kurzu OBSLUHA PC ZÁKLADNÍ ZNALOSTI. pilotního projektu v rámci I. Etapy realizace SIPVZ

8. OKNA 73. obr. 1 Roletové menu "Okna"

POZOR!!! INSTALACE POD WINDOWS 200 / XP / VISTA PROBÍHÁ VE DVOU ETAPÁCH A JE NUTNÉ DOKON

Pomůcka/manuál pro redakční systém verze 1.0

Návod pro práci s aplikací

MAGic Základní funkce a klávesové zkratky. Jako výchozí je MAGic klávesa (MAGicKey) nastavena na klávesu CAPSLOCK. OBECNÉ Spustit MAGic

Nejčastější kladené dotazy

DUM 06 téma: Tvorba makra pomocí VBA

Dotyková obrázovká v prográmu TRIFID

KOMPLEXNÍ VZDĚLÁVÁNÍ KATEDRA STROJNÍ SPŠSE a VOŠ LIBEREC

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Příručka Vzdělávacího střediska Konero ke kurzu Milan Myšák

MS OFFICE, POWERPOINT

Popis a ovládání. Aplikace 602XML Filler

Obsah. při vyšetření pacienta. GDT souboru do programu COSMED Omnia GDT souboru z programu COSMED Omnia a zobrazení výsledků měření v programu MEDICUS

Základy práce s aplikací ecba / ESOP

Registrační číslo projektu: Škola adresa: Šablona: Ověření ve výuce Pořadové číslo hodiny: Třída: Předmět: Název: MS Excel I Anotace:

Prozkoumání příkazů na pásu karet Každá karta na pásu karet obsahuje skupiny a každá skupina obsahuje sadu souvisejících příkazů.

Microsoft Office. Word vzhled dokumentu

Slovník PCT pro ios, verze 2.x

Úvod. Program ZK EANPRINT. Základní vlastnosti programu. Co program vyžaduje. Určení programu. Jak program spustit. Uživatelská dokumentace programu

Tiskový manažer Printman (Tiskový manažer verze 1.58 a novější)

MS OFFICE POWER POINT 2010

Popis programu EnicomD

Dotyková obrázovká v prográmu TRIFID

Animace ve WPF. Filip Gažák. Ing. Václav Novák, CSc. Školní rok:

METODICKÉ LISTY. výstup projektu Vzdělávací středisko pro další vzdělávání pedagogických pracovníků v Sokolově

Nejčastější kladené dotazy

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

Operační systém MS Windows XP Professional

Průvodce instalací modulu Offline VetShop verze 3.4

Přístupy Lite Programový produkt Přístupy-Lite slouží k jednoduché správě autonomních přístupových snímačů firmy ID-Karta s.r.o..

Pracovní výkazy. návod k použití. Internetová aplikace Pracovní výkazy slouží k zadávání pracovních výkazů od zaměstnanců a externích pracovníků.

1 Úvod. 2 Registrace a přihlášení. Registrace). Zobrazí se stránka, kde budete mít na výběr ze dvou možností. Můžete vytvořit nové či.

Tvorba kurzu v LMS Moodle

Postupy práce se šablonami IS MPP

3 Makra Příklad 4 Access Ve vytvořené databázi potřebuje sekretářka společnosti Naše zahrada zautomatizovat některé úkony pomocí maker.

METODICKÝ POKYN PRÁCE S MS PowerPoint - POKROČILÍ. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky.

Nápověda pro ovládání automaticky čtené učebnice

Operační systém. Mgr. Renáta Rellová. Výukový materiál zpracován v rámci projektu EU peníze školám

KAPITOLA 3 - ZPRACOVÁNÍ TEXTU

Formulář NÚV v programu PPP4

1. Obsah 2. Úvod Zdarma poštovní klient od společnosti Microsoft přímo v PC

Masarykova ZŠ Klenčí pod Čerchovem OPERAČNÍ SYSTÉM

Dodatek k uživatelském manuálu Adash 4202 Revize MK

Přechod z AutoCADu na CADKON+

Aplikace BSMS. Uživatelská příručka - 1 -

MS Excel makra a VBA

František Hudek. duben ročník

DUM 03 téma: Tvary - objekty

Prostředí Microstationu a jeho nastavení. Nastavení výkresu

Transkript:

Transkripce Braillova písma Autor: Martin Vavrečka Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Čs. exilu 669, Ostrava-Poruba, 708 00 Konzultant: Mgr. Rostislav Fojtík, PhD.

Anotace Tato práce je zaměřena na shrnutí informací o existujícím hardwaru a softwaru pro zrakově postižené osoby, který umožňuje a zjednodušuje práci s počítačem. Následné porovnání softwaru a vývoj nového, na základě specifikace požadavků ředitele Tyflocentra Ostrava, je také součástí. Klíčová slova Hardware, software, tiskárna, C#, Braillovo písmo, Tyflocentrum Ostrava, NVDA 2

Obsah 1. Úvod... 4 1.1. Cíl... 4 1.2. Analýza problému... 4 1.3. Komu je software určen... 4 1.4. Braillovo písmo... 4 1.5. Existující hardware... 5 1.6. Existující software simulátory... 5 2. Analýza a specifikace požadavků... 7 2.1. Grafické uživatelské rozhraní... 7 2.2. Funkce... 7 2.3. Použité technologie, postupy a jazyky... 8 3. Návrh aplikace... 9 3.1. Grafické uživatelské rozhraní... 9 3.2. Třídy... 10 4. Implementace... 12 4.1. Třídy... 12 5. Testování, úpravy, nasazení... 15 6. Zhodnocení, interakce s uživateli... 17 7. Závěr... 18 8. Zdroje, citace... 19 3

1. Úvod 1.1. Cíl Cílem této práce je především prozkoumat existující možnosti a technologie, které umožňují přepis Braillova písma do počítače a následný tisk vytvořeného textu. Snaží se také porovnat existující software, který simuluje Braillskou klávesnici na klasické, a zjistit jejich přednosti a nedostatky. Na základě těchto poznatků je pak cílem vyvinout novou aplikaci, umožňující taktéž přepis Braillova písma. 1.2. Analýza problému Přepis Braillova písmo do digitální formy je důležitý v mnoha aspektech. Používá se jak pro vytváření nových dokumentů, tak pro přepis existujících dokumentů do digitální formy a jejich následný tisk. Toto je tedy jediná cesta jak udělat více kopií jednoho dokumentu. Samozřejmě zde existuje možnost psát na Pichtově psacím stroji, který vyrazí body přímo do papíru, tímto tedy odpadá počítač jako prostředník. Avšak přepis, například knihy, touto formou by byl značně zdlouhavý. [1] Zrakově postižený člověk používá pro práci s počítačem především klávesnici, hlasový výstup a braillský řádek. Hlasový výstup a braillský řádek umožňuje zvukový i hmatový výstup toho, co se na počítači děje. 1.3. Komu je software určen Tato aplikace je určena především pro slabozraké a nevidomé osoby, které potřebují přepsat jakýkoli text do počítače a následně jej vytisknout ve formě Braillova písma. Aplikaci však mohou používat i uživatelé, kteří potřebují zpracovat či upravit dokument v Braillově písmu. Celá aplikace vznikla na popud pana ředitele Tyflocentra v Ostravě, který se v souvislosti s mou předešlou prací zmínil, že software takovéhoto typu by se jim hodil a že neexistuje alternativa, která by jim vyhovovala. Tuto aplikaci by ocenili především nevidomí muzikanti, kteří hledají způsob jak zapsat notový zápis v Braillově písmu. [2] 1.4. Braillovo písmo Braillovo písmo je typ písma používaný nevidomými. Je specifické a univerzální po celém světě. Způsob zápisu je ve formě vyražených bodů (polokoulí) do tvrdého papíru v maticích o dvou sloupcích a třech řádcích. Tato tabulka umožňuje zápis až 64 znaků (2 6 ), což pokrývá celou abecedu i s diakritikou, čísly a prefixy. [3] Prefixy jsou speciální kombinace, které jsou vždy před souborem znaků a udávají, o jaký typ znaků se jedná. Existují prefixy pro velké písmeno, řecké písmeno nebo číslo. Tyto speciální znaky jsou zavedeny pro úsporu kombinací a snadnou zapamatovatelnost. Například matice symbolizující písmeno A také znamená číslici 1. Existují dvě formy písma: osmibodové a šestibodové. Osmibodové znaky se používají především pro počítače. Braillské řádky většinou podporují osmibodové matice, kdežto veškeré texty, knihy a nápisy jsou v základní šestibodové matici. 4

Každý jazyk má však své speciální znaky, a proto existují převodní tabulky, které obsahují veškeré potřebné znaky a k nim příslušné matice. Například české tabulky se liší od těch slovenských již v 7 základních znacích. [4] 1.5. Existující hardware Klávesnice Jak jsem již zmínil, Pichtův psací stroj umožňuje zápis přímo na papír pomocí vyrážení znaků do papíru stiskem klapek. Avšak zápis Braillova písma do počítače je ošemetnější. Některé Braillské řádky sice umí zápis přímo braillských znaků, většinou se však zápis děje pomocí klasické klávesnice a speciálního programu. [1] Braillské řádky jsou obdobou klávesnice, ale fungují především jako výstupní zařízení. Zobrazují se na nich napsané znaky nebo potřebné hlášky. Cena těchto zařízení je značná. Nejlevnější druh lze koupit zhruba za 80 000 Kč. Braillské řádky se liší v počtu zobrazovaných znaků. Nejmenší počet je 20 znaků, nejčastější jsou však se 40 znaky. [5] Tiskárny Tiskárny Braillova písma se značně liší od tiskáren klasických. Jsou velmi hlučné a velmi prostorné. Většina tiskáren umí tisknout pouze šestibodové matice, ty nejnovější modely umí i osmibodové. [6] 1.6. Existující software simulátory Obrázek 1.5 a) Pichtův psací stroj [1] Obrázek 1.5 b) Braillský řádek [5] Zápis znaků se tedy děje pomocí klasické klávesnice a speciálního softwaru, který přímo nahrazuje editor, nebo pouze konvertuje existující text do Braillova písma. Existují dva způsoby, jak lze znak zadat. Při prvním způsobu se mačkají klávesy jako v normálním editoru, zápis se nijak neliší od standardního psaní. Po stisku znaku se však znak převede do braillu a zapíše se v této formě. Na obrazovce tedy můžeme vidět přímo danou matici, která je přiřazena stisknutému znaku. Druhá možnost je zápis jednotlivých matic. Rozpoložení prstů na klávesnici znázorňuje toto schéma: 5

Obrázek 1.6 a) Rozložení prstů na klávesnici [17] Takto je pokryto 8 znaků, což je dostačující jak pro zápis šestibodových, tak osmibodových matic. Prsty potom odpovídají bodům v matici dle následujícího schématu: Obrázek 1.6 b) Body odpovídající prstům [17] Jednotlivé body jsou i očíslovány. Z důvodu častějšího používání šestibodové matice se číslují poslední dva dodatečné body jinak. [2] Samotné zadávání znaků se provádí současným stisknutím příslušných kláves. Tento způsob zápisu má dle mého názoru vysokou chybovost, obzvláště pro začínající uživatele. Jelikož se musí stisknout všechny klávesy ve stejnou chvíli, může uživatel některou nestisknout úplně, nebo pustit nějakou dříve. Prozkoumal jsem tedy, jaké existují Braill editory a jaký způsob zápisu umožňují. 6

2. Analýza a specifikace požadavků Abych vůbec zjistil, jaká má aplikace být, jaké funkce by měla obsahovat, navštívil jsem Tyflocentrum v Ostravě. Program jako takový by měl primárně sloužit nevidomým uživatelům pro zápis Braillova písma a jeho následný tisk. Toto je jeden z hlavních důvodů, proč byla tato aplikace vyvíjena. 2.1. Grafické uživatelské rozhraní Jelikož budou aplikaci využívat převážně nevidomí uživatelé, samotné grafické rozhraní programu nehraje až tak velkou roli. Rozhodl jsem se však pokrýt co nejširší spektrum uživatelů, a proto by aplikace tohoto stylu měly být na celou obrazovku s výrazně rozlišitelnými ovládacími prvky a měly by podporovat hlasový výstup. Z tohoto důvodu jsem se rozhodl vynechat z aplikace stavovou lištu s tlačítky zavřít, minimalizovat a obnovit. Tato tlačítka nejsou potřeba, jelikož většina nevidomých uzavírá aplikace klávesovou zkratkou Alt+F4. Tlačítka jako minimalizovat a obnovit nejsou potřeba z důvodu běhu aplikace ve fullscreen modu. Jako výchozí barvy by měly být nastaveny barvy systému, tím pádem není ovlivněno speciální nastavení, které je použito na celý systém Windows. Typickým příkladem je barevný kontrast celého systému. Přesto jsem se rozhodl implementovat několik barevných schémat, takže si uživatel může nastavit barvy, které mu nejlépe vyhovují. Měl by být zachován co největší kontrast pro jasnou čitelnost a zřetelnost. Zde jsem se poradil s Tyflocentrem a Tyfloservisem, které barvy je vhodné použít. Byly mi doporučeny tyto: černá, bílá, modrá a žlutá. Jedné z nejvíce kontrastních barev, červené, bych se měl vyvarovat, jelikož působí na sítnici oka velmi agresivně a oko není schopno na této barvě udržet pozornost. Mezi časté zrakové choroby patří Daltonismus (barvoslepost) a obvykle dochází ke splývání červené a zelené barvy člověk potom vnímá obě barvy jako šedou. [2][8] Vzhledem k možnosti používání i zdravě vidícími lidmi je potřeba udělat grafické uživatelské rozhraní co možná nejobecnější a nejuniverzálnější. Důležitým prvkem každé aplikace je kurzor. Rozhodl jsem se použít kurzor z mé předešlé aplikace pro zrakově postižené. Z důvodu modré barvy kurzoru jsem musel vytvořit druhý kurzor, jelikož při použití modrého schématu se kurzor doslova ztratil na modrém pozadí. Obrázek 2.1 a) Modrý kurzor 2.2. Funkce Obrázek 2.1 b) Bílo-žlutý kurzor Aplikace by měla být schopna zapisovat veškeré kombinace Braillova písma a následně jej tisknout. Celý program by se tedy měl chovat jako klasický textový editor s tím rozdílem, že znaky se zadávají odlišným způsobem. Při první schůzce s panem ředitelem jsme rozebírali základní funkcionalitu aplikace. Hlavním bodem bylo zadávání znaků a samotný zápis. Po diskuzi s mým lektorem jsem navrhl jako 7

řešení postupné zadávání bodů matice a následné potvrzení celé matice mezerníkem. V praxi to tedy vypadalo tak, že uživatel mohl buď naráz, nebo postupně mačkat klávesy příslušící daným bodům. Jakmile dokončil danou matici, potvrdil ji mezerníkem a uložila se. Takto jsem eliminoval jakoukoli chybovost, protože uživatel si je jist, které klávesy zmáčkl, a nemusí se soustředit na to, aby stiskl všechny ve stejnou dobu. Dalším důležitým bodem byl zvukový a hmatový výstup. Aplikace musí podporovat hlasový výstup a Braillský řádek. Jinak by se nevidomý vůbec nedozvěděl, co zrovna zapsal. Mezi poslední hlavní funkcionality patří samotný tisk dokumentu. Bez možnosti tisku by aplikace neměla smysl. Sám však tiskárnu nevlastním, proto jsem veškeré funkce týkající se tisku testoval v Tyflocentru, kde byla k dispozici. 2.3. Použité technologie, postupy a jazyky Po zpracování požadavků jsem se musel rozhodnout, jakou technologii použiji k vývoji samotného softwaru. Rozhodl jsem se pro programovací jazyk C# z platformy.net. Jako vývojové prostředí jsem použil Microsoft Visual Studio 2010 a Microsoft Expression Blend 2. Blend jsem použil především pro grafický návrh aplikace, jelikož integrovaný návrhář ve Visual Studiu je nešikovný při práci s více vrstvami na sobě. Celá aplikace je vytvářena pomocí WPF technologie. Windows Presentation Foundation používá značkovací jazyk XAML pro tvorbu grafického uživatelského rozhraní. Odděluje tak grafický návrh od samotné funkčnosti aplikace. WPF je součástí platformy.net Frameworku již od verze 3.0. [9] Pro návrh UML diagramů jsem využil integrovaného nástroje ve Visual Studiu a pro tvorbu ikony jsem sáhl po klasickém Malování a IrfanView. Při programování samotných tříd a algoritmů jsem využil také návrhové vzory, které značně ulehčují práci programátora při řešení specifických problémů. O použitých vzorech se zmíním při rozboru jednotlivých tříd. 8

3. Návrh aplikace Celý průběh vývoje mé aplikace by se dal přirovnat k jedné z agilních metodik, a to spirálovému modelu. Tato metodika je založena na velmi časté komunikaci s koncovým uživatelem či zadavatelem. Tento postup se dá perfektně využít v této situaci, jelikož vyvíjím aplikaci pro specifickou skupinu uživatelů a já jako programátor se nemohu úplně vcítit do role uživatele, abych našel všechny potřeby a nedostatky aplikace. Proto jsem se rozhodl vyvinout jistou část aplikace, zkonzultovat ji a otestovat, upravit dle požadavků a pokračovat vývojem další části programu. Takto vznikala spousta verzí programu a zpětně lze zjistit, jak se aplikace zlepšovala a upravovala. [10] 3.1. Grafické uživatelské rozhraní Když jsem se zamýšlel nad grafickým rozložením ovládacích prvků na formuláři, váhal jsem mezi menu v horní liště nebo v postranní liště. Vzhledem k úspoře místa a celkovému vzhledu jsem se rozhodl umístit menu doleva ve formě klasických tlačítek. V pravé části se potom nacházely dvě tabulky pro poslední dva stisknuté znaky a pole pro všechny předešlé stisknuté znaky. Schéma aplikace tedy vypadalo zhruba takto: Obrázek 3.1 a) První grafický návrh Ostatní části aplikace, např. okno uložení, nastavení a jiné, se zobrazovaly jako nové záložky (gridy) vedle menu. Menu tedy bylo vždy vidět, pouze pravá část se měnila dle potřeby. V aplikaci chybí stavová lišta, musel jsem tedy přidat vlastní tlačítko pro zavření aplikace. To však v horním pravém rohu značně zabíralo místo, proto jsem jej zařadil do menu. Je tedy na uživateli, jak aplikaci uzavře. Vzhledem k relativně malé oblasti pro zobrazování napsaných znaků jsem musel vymyslet způsob, jakým by bylo možno vidět celý dokument. Rozhodl jsem se pro další kartu s názvem Náhled, která by se měla chovat identicky jako základní formulář, s tím rozdílem, že zde nebudou dva velké gridy pro zobrazení posledních dvou znaků. Uživatel však bude mít pořád možnost dokument editovat a vytvářet nové znaky. Jedná se tedy o jakýsi komfortnější mód pro rozsáhlejší dokumenty, jelikož základní formulář dokáže zobrazit maximálně 3 řádky dokumentu, aniž by znaky ztratily svou čitelnost. 9

3.2. Třídy Po návrhu grafiky nadešel čas pro návrh hierarchie tříd a jejich vztahů. Pro ujasnění všech funkčností jsem si nejprve vytvořil usecase diagram, který znázorňuje všechny role v aplikaci a co která role umí. V tomto případě se jedná pouze o jednu roli, uživatele, protože aplikace nepodporuje tvorbu profilů uživatelů. Dalo by se uvažovat o roli jakéhosi administrátora, který by aplikaci nastavil a předal uživateli připravenou k editaci, ale pro zjednodušení jsem spojil tyto dvě role do jedné, a to do role uživatele. [11] Obrázek 3.2 a) Use Case diagram Funkčnost aplikace by se tedy dala rozdělit do 6 vrstev: vstup, grafický výstup, zvukový výstup, braillský výstup, tiskový výstup a nastavení aplikace. Veškeré vztahy mezi knihovnami znázorňuje následující classdiagram. Pro větší přehlednost jsem vynechal některé funkce a vlastnosti tříd. 10

Obrázek 3.2 b) Class diagram

4. Implementace Prvotní návrh grafického uživatelského rozhraní jsem již zmínil v předešlé kapitole. Veškerou grafiku jsem tvořil v Blendu 2 a poté zkopíroval XAML kód do projektu ve Visual Studiu. 4.1. Třídy Veškerá hierarchie tříd znázorněná na classdiagramu se vyvíjela postupně od třídy MainWindow, kde je přístup k prvkům z formuláře. Vstup, VystupGraficky Tyto dvě knihovny jsou klíčové, jelikož zajišťují většinu funkcionalit aplikace, a to zápis znaků a jejich grafické zobrazení. Ve třídě Vstup je definován ArrayList, do kterého se ukládají veškeré matice. Obsah ArrayListu se automaticky ukládá do pomocného textového souboru a na žádost uživatele se uloží všechny matice do textového souboru s koncovkou *.brs (Braille Script). Z diagramu si lze všimnout, že se Vstup odkazuje na VystupGraficky a naopak. Obě z těchto knihoven potřebují referenci na tu druhou a to byl problém. Jelikož se objekty alokovaly postupně, nebylo možno si uchovat v každém objektu referenci na objekt druhý. Pro vyřešení toho problému jsem použil techniku takzvané přepravky. Vytvořil jsem si samostatný objekt, kterému jsem deklaroval veřejnou referenci na konkrétní objekt. Celou knihovnu jsem definoval jako generickou, takže se dá využít univerzálně pro jakákoli data. Touto přepravkou jsem docílil toho, že mám vždy globálně přístupnou referenci na objekt Vstup i VystupGraficky. Tedy hned po alokování těchto objektů se reference na ně uloží do přepravky a jsou všude přístupné. [12] Ukázka kódu z generické třídy Prepravka: // ziskani instance public static Prepravka<Typ1> Instance { } get {// vytvoreni s nejakou novou instanci daneho typu pokud neexistuje } if (instance == null) instance = new Prepravka<Typ1>(PrepravkaCreator.instanceT1); return instance; Třída VystupGraficky je potomkem interfacu Vystup, který jasně předepisuje, jaké metody by měl objekt umět. Jedná se o základní navigaci v jakémkoli jiném editoru, tedy o pohyb navigačních šipek, Page Down/Up, Home, End, ale také klávesové zkratky jako Ctrl+Home či Ctrl+šipka. Tyto všechny metody pro navigaci v editoru jsem musel doprogramovat, jelikož se znaky nevykreslují do textového pole, nýbrž na mřížky jako matice. S touto knihovnou je spjata třída Grafika, která zajišťuje obecné metody pro vykreslování matic či zobrazování a schovávání gridů. Veškeré metody jsou deklarované jako statické a veřejné, není tedy nutno vytvářet samotný objekt při nutnosti použití některých z metod. 12

Soubor, Nastaveni Třída Soubor má opět všechny metody veřejné a statické. Obsahuje funkce pro práci se soubory a případné ošetření chyby. Volí se z ní například ukládání a nahrávání dokumentu nebo souboru s nastavením. Veškeré nastavení je externě uloženo v XML souboru a při spuštění programu se načítá a aplikuje na ovládací prvky. Uživatel může sám měnit nastavení přímo v programu, není nutno zasahovat do souboru ručně. Zvolil jsem automatické ukládání nastavení při jakékoli změně hodnot. Takto se uživatel nemusí starat o stisk dalšího tlačítka Uložit. Při klikání na tlačítko Změň barvy se vyvolá událost a ihned se mění barvy ovládacích prvků. Na stejném principu pracuje tlačítko Zapnout/Vypnout zvuky. Na formuláři si tedy může uživatel nastavit barvy, zvuky, typ zvukového výstupu, počet znaků na řádku a mód zadávání znaků. Jelikož je nastavení univerzální pro celou aplikaci, není potřeba, aby vznikalo více instancí této třídy, proto jsem aplikoval návrhový vzor Singleton (Jedináček). [13] Pismo Tato knihovna zajišťuje veškerý překlad znaků na matice a naopak. Jsou zde dvě hlavní metody, které vrací buď význam dané matici, nebo matici danému významu. Při tvorbě této knihovny jsem narazil na zásadní problém. V jakém pořadí ukládat významy matic? Zapátral jsem na internetu a našel oficiální standard a přesně určené pořadí celé Braillovy abecedy. Standard obsahuje prvních 64 znaků matice pouze s šesti body a zbytek jsou osmibodové matice. Tento standard jsem využil k jasnému určení, který význam patří které matici. Vytvořil jsem si tedy textový soubor czech.txt, ve kterém jsou definovány právě významy daných matic. S přístupem ke standardu si tedy může sám uživatel definovat vlastní významy v textovém souboru. Jelikož některé matice mají více významů, jako například tabulka pro a, musel jsem významy od sebe oddělit. V úvahu připadaly tři možnosti. Oddělit je čárkou jsem ihned zavrhl, jelikož význam může být právě čárka. Ze stejného důvodu jsem nepoužil uvozovky kolem každého významu. Zbývala tedy poslední možnost, a to speciální kombinace znaků, která bude stěží znamenat význam. Rozhodl jsem se pro dvojici znaků $ a &. [14] Dále třída obsahuje pomocné metody pro porovnání dvou matic, převod šestibodové na osmibodovou a naopak, funkce pro určení, zda je předaná matice celá vyplněna, či zcela prázdná. Stejně jako třída Nastaveni, je tato knihovna univerzální pro celý projekt, proto jsem opět využil vzoru Singleton. [13] Zvuk, NVDA Client Třída Zvuk obsahuje dvě jednoduché metody pro převod matice na význam a předání významu dále NVDA Clientovi. Jedna metoda zpracovává matici, pokud má přidělený význam, a druhá, pokud jej nemá. Pokud jej nemá, přečte se, jaké body byly stisknuty. Pokud tedy uživatel zadá kombinaci DKL a příslušná matice nemá v souboru czech.txt přidělený význam, přečte se text: Body 2 5 6. Tento způsob je nutný, jelikož některé matice nemají přiřazený význam, nebo jej není NVDA schopen přečíst. Zpracovaný text k přečtení se předá dále NVDA Clientovi. S knihovnou Zvuk přišel zásadní problém. Jak nechávat přečíst veškeré zprávy a zvukové výstupy? Z předešlé zkušenosti jsem nahrávání vlastního hlasu ihned zamítnul, a proto mi zbyla možnost hlasového syntetizátoru. Jako hlasového klienta jsem využil freeware program NVDA, který je hojně používaný a je open-source. K tomuto programu je také vydána DLL knihovna, která funguje jako prostředník mezi programátorem a samotným programem. 13

Obsahuje metody pro čtení daného textu, zastavení čtení, výstup na Braillský řádek a zjištění, zda je NVDA zapnut. [15] Vytvořil jsem si tedy pomocnou třídu se statickými metodami: [DllImport( nvdacontrollerclient32.dll )] public static extern void nvdacontroller_speaktext(byte[] text); Každé metodě, které se předává textový řetězec, je nutno místo toho předat pole bytů, které reprezentuje daný řetězec v unicode. Každému znaku náleží dva byty. Vytvořil jsem si tedy jakéhosi klienta, který si sám zpracuje textový řetězec, co chci přečíst, a pošle ho NVDA k přečtení. Z nepochopitelného důvodu vrací metoda pro zjištění, zda NVDA běží, nebo ne, vždy opačnou hodnotu, než je předpokládána. Když se tedy zeptám klienta, zda NVDA běží, i když neběží, odpoví, že ano. Pravděpodobně se jedná o chybu v DLL knihovně. Tohoto klienta využívám také pro posílání informací na Braillský řádek. Jelikož se předává text, tedy význam matice, a ten není vždy k dispozici, musel jsem tuto cestu obejít. Nechávám tedy posílat přímo znaky reprezentující danou matici v unicode. Proto potřebuji externí textový soubor, ve kterém jsou nadefinovány hodnoty, jaké mají příslušné matice. Pořadí opět souhlasí se standardem. Tisk Tato knihovna obsahuje algoritmy pro převod dokumentu do srozumitelné formy pro tiskárnu. Spustí výchozí dialog pro výběr tiskárny a následně pošle data k tisku. Text se převádí stejným způsobem jako při posílání na Braillský řádek. 14

5. Testování, úpravy, nasazení Po vytvoření první verze jsem se vydal do Tyflocentra, abych aplikaci otestoval a zeptal se na další problémy, které se vyskytly během vývoje. Grafický návrh aplikace byl ve své podstatě zamítnut. Menu ve formě tlačítek bylo zmatené a v celku neobvyklé pro uživatele. Jejich poloha taktéž. Proto mi byla dána rada, abych celé menu udělal klasickým způsobem na horní část aplikace a zamezil vstupu do něj pomocí tabulátoru. Tento krok znamenal, že uživatel se dostal do menu pouze pomocí myši nebo stisku tlačítka Alt a následně se v menu mohl pohybovat šipkami nebo tabulátorem. [16] Úpravou grafického návrhu a přesunu menu do horní části aplikace vznikla spousta místa pod menu. To mělo za následek rozšíření počtu vykreslovaných znaků. Všechny stisknuté znaky se stále zobrazovaly jako gridy pouze ve třech řádcích a pod tímto polem se nacházejí 4 posledně stisknuté znaky. Zvolil jsem efekt jakýchsi kolejí. Tedy právě napsaný znak je největší a nejvíce zvýrazněn, předešlé se postupně zmenšují. Vstup znaků byl vcelku pomalý a matoucí. Uživatel měl sice čas na stisk znaku, ale musel jej vždy potvrzovat mezerníkem. Tento způsob mi původně přišel jako velmi dobrý nápad, jelikož jsem se tím vyhnul nejasnému vstupu a stresu uživatele. Šlo vidět, že pan ředitel již někdy pracoval s podobným softwarem a díky velmi dobré znalosti Braillova písma jej tento způsob vstupu značně zpomaloval. Proto jsem se rozhodl zanést do programu jakési dva módy vstupu. Můj původní potvrzování mezerníkem a nový způsob, který byl použit ve všech testovaných softwarech, a to stisknutí kláves naráz, nebo jejich postupné přimačkávání. Tímto si uživatel může vybrat, jakým stylem bude programu zadávat znaky. Pokud tedy již někdy pracoval s obdobným programem, nemusí se učit novému způsobu. Druhý způsob pomocí mezerníku mohou však využít nezkušení uživatelé, kteří si ještě nejsou jisti svou znalostí Braillova písma, nebo se teprve učí s touto aplikací. [2] Zvukový výstup mě zaskočil, jelikož jsem svou aplikaci testoval na svém notebooku s Windows 7 a pan ředitel měl Windows XP. Zarazila mě odlišnost hlasových výstupů při stejné verzi programu. Například čtení hlášek či samotných znaků. Některé interpunkční znaménka vůbec program nečetl, vznikaly tedy hluché znaky, při nichž se nečetlo vůbec nic a uživatel nevěděl, že tam vůbec něco je. Rozhodl jsem se tedy vymazat z textového souboru czech.txt ty významy, které dělaly problémy při čtení. Zachoval jsem pouze základní znaky a čísla. Zbytek matic se tedy čte způsobem čtení stisknutých bodů, který jsem rozebral v rozboru tříd. Při mazání znaků pomocí Backspace by se měl číst právě smazaný znaky a při mazání Deletem znak, který následuje po smazaném. Takto se chová klasický textový editor, proto bylo nutno zanést tuto funkcionalitu i do mého editoru. Další funkčnost týkající se hlasového výstupu byla přerušení čtení. Protože po stisku klávesové zkratky Ctrl+Home by se měl začít číst celý dokument, což může být poněkud zdlouhavé, je potřeba hlasový výstup nějak přerušit. Výchozím tlačítkem pro NVDA je Ctrl, jak levý, tak pravý, proto stačilo vytvořit událost na stisk Ctrl a v ní poslat zprávu NVDA Clientovi, ať přeruší čtení. Při ukládání a nahrávání souboru jsem váhal, zda použít svůj vlastní dialog, či využít výchozí dialogy. Hlavní negativum u použití výchozích dialogů je malá velikost dialogového okna. Na druhou stranu je zde zakomponován hlasový výstup, čímž by si uživatel nemusel zvykat na nový druh okna. Pan ředitel mi doporučil využít pouze výchozích dialogů, já jsem se však rozhodnul pro obě varianty. Na formuláři pro uložení je tedy textové pole pro název souboru, 15

ale i tlačítko pro vyvolání výchozího dialogu, takže si uživatel může uložit svůj soubor, kdekoliv potřebuje. Stejné řešení jsem aplikoval na nahrávání souboru. Dále pan ředitel zjistil, že zhruba po 5 sekundách zmizí všechen text zobrazený na braillském řádku. Pravděpodobně je to chyba NVDA, protože v mé aplikaci není nastaven žádný časovač, jenž by prováděl něco automaticky. [2] Se všemi těmito připomínkami a problémy jsem aplikaci postupně upravoval dle požadavků a zkušeností. 16

6. Zhodnocení, interakce s uživateli Dle mého názoru se mi podařilo vyvinout kvalitní aplikaci pro editaci a tvorbu braill dokumentů. Celá aplikace byla postavena zejména na požadavcích a zkušenostech uživatelů, takže si ji vytvářeli sami pro sebe. Aplikaci hodlám rozeslat mezi širší spektrum uživatelů a po určité době se pokusit udělat jakýsi průzkum, jak se s aplikací pracuje, jaké má chyby a zda je potřeba něco upravit či doladit. K tomuto malému průzkumu jsem si vytvořil dotazník, který zjišťuje zkušenosti uživatele a hodnotí specifické části programu. Dotazník je součástí přílohy. K lepšímu vývoji mi pomohla i má předešlá práce, ve které jsem se také zabýval vývojem aplikace pro zrakově postižené osoby. Do budoucna chci aplikaci rozšířit mezi uživatele a pokusit se ji udržovat a měnit dle požadavků uživatelů. Mezi budoucí úpravy také patří zlepšit grafické rozhraní aplikace a přidat práci s bloky dokumentu. Bude tedy možné kopírovat, vkládat a mazat celé bloky znaků. Uvažuji také o vývoji dodatečné aplikace, která umožní uživatelům definovat si vlastní významy matic. Jedná se tedy o změnu souboru czech.txt, který je možno upravovat pouze přímým zásahem, a definování významů pomocí standardu. Postupné uvolňování znaků v ArrayListu bude také potřeba vyřešit, aby nedocházelo k zahlcení paměti příliš dlouhým dokumentem. 17

7. Závěr Úspěšně jsem prozkoumal a seznámil se s existujícími pomůckami, které zjednodušují nevidomým práci s počítačem. Na základě existujícího softwaru a požadavků Tyflocentra v Ostravě jsem vyvinul novou aplikaci, která slouží jako Braille editor. Snažil jsem se vyhnout všem nedostatkům z existujících programů a vyjít vstříc co nejvíce uživatelům, kteří by tuto aplikaci mohli využít. Tato práce mi přinesla nejen další zkušenosti v oblasti programování, ale také nové poznatky ze života zrakově postižených. 18

8. Zdroje, citace 1) Kompenzační pomůcky. [online]. [cit. 2012-03-15]. Dostupné z: <http://www.lorm.cz/download/hmn/obsahcd/kompenzacnipomucky.html#pichtuv-psaci-stroj>. 2) KURLAND, Karel. Osobní sdělení 3) Braillovo písmo. [online]. Poslední revize: 14. 12. 2005 [cit. 2012-03-18]. Dostupné z: <http://www.shaman.cz/sifrovani/braillovo-pismo.htm>. 4) Braillovo písmo. [online]. Poslední revize: 28. 2. 2012 [cit. 2012-01-24]. Dostupné z: <http://cs.wikipedia.org/wiki/braillovo_písmo>. 5) R.KABELKA, J. FENZ, J. POKORNÝ, M. JELÍNEK. Srovnání braillských řádků. [online]. Poslední revize: 27. 12. 2009 [cit. 2012-02-24]. Dostupné z: <http://www.blindfriendly.cz/at/srovnani-braillskych-radku/>. 6) Centrum TEREZA. Braillské tiskárny. [online]. [cit. 2012-03-18]. Dostupné z: <http://www.pristupnost.cz/braillske-tiskarny/>. 7) odt2braile. [online]. [cit. 2012-03-18]. Dostupné z: <http://odt2braille.sourceforge.net/>. 8) Tyfloservis. Osobní sdělení 9) Windows Presentation Foundation. [online]. Poslední revize: 20. 12. 2011 [cit. 2012-01-24]. Dostupné z: <http://cs.wikipedia.org/wiki/wpf>. 10) KADLEC, Václav. Agilní programování. Brno: Computer Press, 2004. ISBN 80-251-0342-0 11) KUČEROVÁ, Helena. Use Case model. [online]. Poslední revize: 3. 11 2011 [cit. 2012-03-18]. Dostupné z: <http://web.sks.cz/users/ku/pri/usecase.htm>. 12) BISHOPOVÁ, Judith. C# návrhové vzory. Brno: Zoner Press, 2010. ISBN 978-80-7413-076-2 13) PECINOVSKÝ, Rudolf. Návrhové vzory. Brno: Computer Press, 2007. ISBN 978-80-251-1582-4 14) Braille Patterns. [online]. [cit. 2012-01-29]. Dostupné z: <http://jrgraphix.net/r/unicode/2800-28ff>. 15) NVDA - Development. [online]. Poslední revize: 19. 2. 2010 [cit. 2012-02-11]. Dostupné z: <http://www.nvda-project.org/wiki/development>. 16) Entering menu only via Alt key. [online]. Poslední revize: 19. 2. 2012 [cit. 2012-03- 18]. Dostupné z: <http://stackoverflow.com/questions/9352675/entering-menuonly-via-alt-key>. 17) Psaní všemi deseti. [online]. Originál dostupný z: <http://nd04.jxs.cz/645/877/5cdaac669c_73102810_o2.jpg>. 19