Z PISAK
Skocz do: nawigacja, szukaj

Speller literowy zaawansowany

Aplikacja dająca rozszerzone względem spellera prostego możliwości, będąca w zasadzie edytorem tekstowym, z wprowadzaniem znaków w oparciu o skanowanie pól i wejście 0 - 1 (np. naciśnięcie przycisku).

Przegląd rozwiązań w różnych spellerach, w tym takich dostępnych na rynku, z komentarzem i propozycjami:

Media:PrzeglądSpellerów.pdf

Pole tekstowe

Panel, w którym wyświetlany jest wprowadzany tekst.

Istotne rzeczy:

  • widoczne co najmniej 2 wiersze tekstu, bieżący i poprzedni
  • po dojściu do końca ostatniej linii, pierwszy wiersz od góry nie powinien znikać nagle i że wszystko przeskakuje i nie wiadomo gdzie co jest, tylko się powoli przewijać
  • czcionka bezszeryfowa, np Arial
  • nie urywać słowa przy końcu linii
  • pytanie na ile można zwiększyć rozmiar panelu kosztem całej reszty, tak żeby był widoczny i wygodny dla wszystkich użytkowników

Litery

Ilość pól z literami (i najbardziej równomierna konfiguracja, rzędy x kolumny) w zależności od tego co dokładnie ma być na planszy:

  • 32 (4 x 8)- standardowy polski alfabet:
a ą b c ć d e ę f g h i j k l ł m n ń o ó p r s ś t u w y z ź ż
  • 35 (5 x 7)- jak powyżej plus "nie-polskie":
q v x
  • 39 lub 42 (? lub 6 x 7)- jedno z powyższych plus dwuznaki:
rz sz dz cz ch

Częstość występowania liter w j. polskim wg Korpusu IPI PAN:

a i o e z n r
8,91% 8,21% 7,75% 7,66% 5,64% 5,52% 4,69%
w s t c y k d
4,65% 4,32% 3,98% 3,96% 3,76% 3,51% 3,25%
p m u j l ł b
3,13% 2,80% 2,50% 2,28% 2,10% 1,82% 1,47%
g ę h ą ó ż ś
1,42% 1,11% 1,08% 0,99% 0,85% 0,83% 0,66%
ć f ń q ź v x
0,40% 0,30% 0,20% 0,14% 0,06% 0,04% 0,02%

Na podstawie powyższej tabeli i zakładając, że skanowanie idzie z góry na dół i z lewa na prawo, to takie konfiguracje powinny dać możliwie dużą prędkość pisania (dodatkowo im litera częstsza tym jest wyżej):

  • alfabet standardowy:
a i e r c p l ę
o z w y m ł h ż
n s k u b ą ś f
t d j g ó ć ń ź
  • jak powyżej plus q, v, x:
a i e r c m b
o z w y u g ó
n s k j ę ż f
t d l h ś ń ź
p ł ą ć q v x

Pola funkcyjne

Pola, po wybraniu których aplikacja podejmuje jakąś akcję, związaną czy to z wprowadzaniem tekstu czy z nawigacją po oknie programu.

Przyciski

Niezbędne albo co najmniej bardziej potrzebne wydają się:

  1. wyjdź (z aplikacji spellera)
  2. spacja
  3. przeczytaj (syntezator)
  4. usuń ostatnią wprowadzoną literę
  5. znaki specjalne (/interpunkcja/cyfry/potrzebne zwroty)
  6. usuń wszystko

Razem 6 pól.

Inne:

  1. przejdź do nowej linii
  2. zapisz do pliku
  3. wykorzystaj wprowadzony tekst inaczej (w innej aplikacji, np wyślij mailem)
  4. wczytaj zapisany wcześniej tekst z pliku
  5. przewiń tekst w polu tekstowym do góry lub do dołu
  6. cofnij kursor
  7. zmień typ liter (pisane/duże)
  8. zatrzymaj skanowanie
  9. włącz sprawdzanie pisowni
  10. usuń ostatni wprowadzony wyraz
  11. drukuj

Włączając "Inne"- 7 pól.

Pola funkcyjne powinny być skanowane najpierw jako jeden rząd/kolumna, żeby nie wydłużać niepotrzebnie.

Sugerowane (przeze mnie) ustawienie przycisków, w ostatnim rzędzie pod literami, w kolejności od najbardziej potrzebnego po lewej:

spacja usuń ostatnią przeczytaj znaki specjalne inne usuń wszystko wyjdź

Nadmiarowe przyciski funkcyjne pod polem "Inne". Po wybraniu mogą pojawiać się w rzędzie pól funkcyjnych, zastępując te podstawowe albo na całej planszy zastępując pola z literami albo też w mniejszym oknie wyświetlanym na środku ekranu na tle spellera. Wtedy tło lekko przygaszone. Jeszcze lepiej by to wyglądało, bez takiego wstrząsu, że coś znika nagle, a coś innego się pojawia, jakby zrobić to w sposób animowany. Z pola "Inne" wysuwa się do góry kolumna albo dwie (wtedy ta druga może wyjeżdżać z najwyższego kafelka pierwszej i zsuwać się w dół) z dodatkowymi przyciskami, plansza z literami w tle przygasza się stopniowo i gdy wszystko ustawi się na swoim miejscu zaczyna się skanowanie.

W przypadku pól wymagających trwałego podświetlenia w trakcie wykonywania innych czynności, pole takie może na ten czas przepływać i ustawiać się gdzieś z boku w głównym oknie spellera.

Ewentualnie, jeśli wszystkich razem przycisków funkcyjnych będzie 16, czyli 2 rzędy po 8, można by je ustawić w dwa rzędy w panelu głównym pod literami. W przypadku gdy skanowanie działa tak, że po wpisaniu litery rozpoczyna podświetlać od góry ekranu i zakładając, że użytkownik doszedł do jako takiej sprawności w pisaniu, to skanowanie nie będzie musiało zbyt często przebiegać przez ten dodatkowy rząd i cały proces nie będzie wcale bardzo spowolniony. Wtedy całość mogłaby wyglądać w ten sposób (rezygnując z jednego z powyższych przycisków- np "zatrzymaj skanowanie", inaczej- nierówne rzędy):

a i e r c p l ę
o z w y m ł h ż
n s k u b ą ś f
t d j g ó ć ń ź
spacja usuń ostatnią przeczytaj znaki specjalne cofnij kursor przewiń tekst usuń wyraz usuń wszystko
zmień typ liter nowa linia zapisz wczytaj drukuj włącz sprawdzanie wykorzystaj inaczej wyjdź

Działanie

Co może się dziać po wybraniu któregoś z przycisków i jak ma to być realizowane:

Ad. 1. Wyjście ze spellera i powrót do okna głównego programu albo okna innej aplikacji, z poziomu której został uruchomiony. Gdy w polu tekstowym jest wpisany jakiś tekst, można dodać okno dialogowe z ostrzeżeniem i pytaniem czy na pewno chce się wyjść, czy może najpierw zapisać tekst do pliku.

Ad. 2. Wstawienie spacji.

Ad. 3. Czytanie tekstu przez syntezator mowy. Opcjonalnie zaznaczenie fragmentu do odtworzenia, np poprzez ruch kursora wstecz z jednoczesnym podświetlaniem tekstu, zatrzymujący się na kliknięcie użytkownika. Inny sposób oznaczenia początku jak w "Ad. 12"- ruch w górę po wierszach, następnie w prawo co literę. Wcześniej pytanie poprzez okno dialogowe, czy czytać cały tekst czy tylko wybrany fragment. Ewentualnie też zapisanie nagrania dźwiękowego do pliku albo jakaś inna czynność.

Ad. 4. Skasowanie jednego znaku.

Ad. 5. Podmiana liter w polach na znaki specjalne. Po przejściu do nowego panelu przycisk "znaki specjalne" zmienia się na "litery". Podstawowe znaki (przecinek, kropka)/kilka cyfr/najpotrzebniejsze zwroty opcjonalnie w głównym panelu razem z literami (dodatkowy rząd- , . 1 2 3 wc tak nie). Przy założeniu, że niektóre ze znaków nie będą zbyt często wykorzystywane, a te najpotrzebniejsze ułoży się z samego brzegu, to pól na szachownicy mogłoby być znacznie więcej niż w przypadku liter.

Proste zwroty- wc, tak, nie, jeść, pić, leki, boli, dziękuję, przerwa, zimno, ciepło, lewo, prawo, góra, dół, wyłącz, włącz, popraw przycisk... Po wybraniu któregoś ze zwrotów, zamiast wpisywać go do pola tekstowego, lepiej byłoby otwierać dodatkowe okno dialogowe i jednocześnie uruchamiać albo syntezator czytający na głos dany zwrot albo głośny dźwięk/alarm/syrenę, żeby zawiadomić opiekuna. W oknie dialogowym byłby napis tego co się wybrało i dwie opcje- "wyjdź" i "jeszcze raz", czyli ponowne odtworzenie dźwięku. Zamiast umieszczać zwroty pod jednym przyciskiem ze znakami, można by też wstawić przycisk niezależny, tylko dla zwrotów, którego wybranie od razu uruchamia alarm. Potem trzeba wybrać którąś z opcji, a wszystko dzieje się w dodatkowym oknie na tle liter lub w kolumnach wysuwanych analogicznie jak dla przycisku "Inne".

Jeśli połączyć zwroty i znaki (wtedy zwroty jakoś wyróżnione, np kolorem), wtedy mniej więcej takie ułożenie (6 x 10):

, . - : " ? ! / ( )
wc tak nie jeść pić leki boli dziękuję przerwa popraw przycisk
zimno ciepło lewo prawo góra dół głośniej ciszej wyłącz włącz
0 1 2 3 4 5 6 7 8 9
+ ' = ; @ % < > $ &
_ * # [ ] { } ~ \ ^

Ad. 6. Wyczyszczenie całego pola tekstowego. Dość ryzykowne, żeby uniknąć niemiłych konsekwencji po przypadkowym kliknięciu w ten przycisk, skasowanie tekstu najlepiej poprzedzić oknem dialogowym z pytaniem czy jest się tego pewnym. Ewentualnie zasugerowanie możliwości zapisu tekstu do pliku.

Inne:

Ad. 7. Wymuszenie przejścia z kursorem do nowej linii, nawet jeśli nie doszło się jeszcze do końca okna. Niektórzy z przyszłych użytkowników chcą pisać wiersze, a bez tego nie da rady.

Ad. 8. Zapis wprowadzonego tekstu do pliku. Użytkownik powinien mieć możliwość samodzielnego nadawania nazw plikom. Trzeba go w jakiś sposób o tym powiadomić, np poprzez okno z poleceniem żeby określił nazwę. Można i bez tego, wtedy tylko w polu tekstowym pojawia się nieusuwalny napis "nazwa pliku: ", dalej trzeba wpisać nazwę, a jednocześnie gdzieś w oknie programu widoczny jest jakiś znak lub symbol (np trwałe podświetlenie pola nr 8) informujący, że jest się w trakcie zapisywania pliku. Napis mógłby też być usuwalny, wtedy wykasowanie go powoduje zniknięcie symbolu i powrót do trybu zwykłego pisania. Powrót do zwykłego trybu także poprzez powtórne wybranie opcji nr 8.

Ad. 9. Wykorzystanie tekstu w inny sposób. Np wysłanie jako email, wtedy określanie nadawcy (tu bardziej okno z książką adresową) i tytułu wiadomości w sposób analogiczny jak dla zapisu plików. Zależne od powiązania spellera z innymi aplikacjami.

Ad. 10. Funkcja niezależna od aplikacji wczytującej pliki w postaci e-booków, tekst z pliku pojawia się w polu tekstowym i można go dalej edytować. W takiej sytuacji po wybraniu opcji zapisu, program pyta czy ma nadpisać stary plik czy utworzyć nowy. Folder z plikami do wyboru, w postaci nazw w kafelkach, pojawia się jako nowe okno na tle liter lub w głównym panelu zamiast nich.

Ad. 11. Umożliwienie użytkownikowi powrotu do ukrytego tekstu, bez przenoszenia kursora, tylko odczyt. Po wybraniu funkcji, okno zaczyna przewijać się do góry, z boku suwak pokazujący postęp, kliknięcie zatrzymuje ruch (ewentualnie przewinięcie od razu do samej góry). Po kolejnym kliknięciu okno idzie w dół, a przy braku reakcji i dojściu do samego dołu opcja dezaktywuje się.

Ad. 12. Funkcja przestawiająca kursor w wybrane miejsce. Umożliwi poprawienie popełnionego wcześniej błędu. Po wybraniu przycisku, na początku może pojawić się pasek odliczający czas, pozwalający użytkownikowi przygotować się, następnie kursor rozpoczyna ruch do góry, przechodząc do kolejnych wierszy. W ten sposób, kliknięciem, użytkownik wybiera wiersz, a kursor zaczyna przesuwać się po wybranej linii w prawo, przeskakując co literę. Kliknięcie wybiera konkretne miejsce. Po dojściu do końca wiersza kursor przechodzi automatycznie do kolejnego, jeśli użytkownik spóźnił się o jeden wiersz to w ten sposób może do niego wrócić. Jeśli kursor dojdzie do wiersza pierwszego od góry bez reakcji ze strony użytkownika to zaczyna ruch z powrotem, w dół po wierszach, a jeśli wróci na sam dół, opcja nr 12 dezaktywuje się. Po ustawieniu kursora w jakimś miejscu, aktywuje się tryb zwykłego pisania (przycisk nr 12 cały czas podświetlony), a powtórne wybranie opcji nr 12 przenosi kursor na sam dół (nie nagle, także przewijanie, tylko szybsze) i dezaktywuje funkcję. Dobrze, żeby podczas przewijania tekstu widoczny był przynajmniej jeden wiersz powyżej lub poniżej tego, gdzie aktualnie jest kursor. (<--- propozycja)

Ad. 13. Litery w polach przestawiają się z pisanych na drukowane lub na odwrót, bez zmiany planszy. Ewentualnie zamiast tego, zmiana ostatniego wprowadzonego znaku (jeśli jest literą) na duży lub mały albo też trwałe podświetlenie przycisku i wszystkie kolejno wprowadzane litery pojawiają się jako pisane/drukowane. Powtórne wybranie opcji- dezaktywacja.

Ad. 14. Skanowanie zatrzymuje się, przycisk nr 14 trwale podświetlony, kliknięcie uruchamia z powrotem. Opcjonalnie automatyczne zatrzymanie skanowania, po kilkukrotnym przejściu planszy z góry na dół bez podjęcia żadnej akcji. Wtedy też przycisk podświetla się i czeka. Jeśli takiego przycisku nie będzie, to po zatrzymaniu skanowania gdzieś z boku pojawia się symbol np klepsydry, a po kliknięciu odliczanie (3-2-1) i start od nowa.

Ad. 15. Włącza lub wyłącza sprawdzanie poprawności wprowadzanych słów. Podkreśla wyrazy, których nie ma w słowniku, czerwoną falowaną linią (na przykład), jak w edytorach. Tutaj raczej nie ma konieczności żeby pole nr 15 było trwale podświetlone.

Media:Pisownia.pdf

Ad. 16. Wymazuje cały wyraz, rozumiany jako blok znaków nieprzedzielonych spacją. Bardziej efektywne w przypadku zauważenie błędu na początku długiego słowa.

Ad. 17. Drukuje całą zawartość pola tekstowego. Wydrukować można też jakikolwiek z zapisanych plików, po wcześniejszym wczytaniu. W trakcie drukowania pojawia się komunikat informujący o postępie albo ewentualnym niepowodzeniu, na skutek np braku tuszu lub papieru.

Wzór

Opcja szachownica

Speller

Opcja fancy

iteracja po wierszach

iteracja po kolumnie