Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Dostępność... zacznijmy od początku

Każdy autor piszący na temat doskonale mu znany, ma tendencje do pisania w sposób skrótowy, zakładając porównywalną wiedzę czytelników. Ja także popełniłem ten błąd pisząc notatkę na temat dostępności przeglądarek internetowych i dostało mi się za to w komentarzach. Dostało mi się słusznie, bom przecież nie wyjaśnił, o co właściwie mi chodzi. Teraz postaram się naprawić ten błąd, chociaż zapewne popełnię następne. Jednak lubię się uczyć, więc i krytyka jest dla mnie użyteczna. Zacznę zatem od początku i postaram się wyjaśnić, czym jest dostępność

No to w końcu czym jest ta dostępność?

Najbardziej ogólnikowo można powiedzieć, że dostępność to możliwość używania. Kłopot polega na tym, że w języku polskim mamy jedno słowo na dwa pojęcia, które w języku angielskim mają dwa oddzielne słowa i zupełnie inne znaczenia: availability i accessibility. To o tym pierwszym znaczeniu napisał w komentarzu ktoś, że każda przeglądarka jest dostępna, bo można ją pobrać. Ja zaś pisałem w drugim znaczeniu - o możliwości używania.

Accessibility oznacza zatem dostępność wszystkich funkcji, możliwości, zawartości opisywanego obiektu, którym może być samochód, telefon komórkowy, dom lub program komputerowy. Wyobraźmy sobie bowiem osobę bardzo niską, która nie może sięgnąć do pedałów, a zatem samochód jest dla niej dostępny (kupiła go sobie),a jednocześnie nie jest dostępny, bo nie może nim jeździć. Ten brak odpowiedniego słowa jeszcze nie raz będzie sprawiał problem, ale chyba nie ma na to rady. Trzeba przyjąć, że dostępność w tekstach pisanych przeze mnie oznacza accessibility, a nie availability.

Dostępność w technologiach teleinformatycznych oznacza możliwość korzystania z tych technologii. Definicji i opisów wymyślono sporo, więc ja nie zamierzam dokładać własnych. Wygrzebałem ukutą przez starą i poważną firmę z USA i przedstawiam ją poniżej.

Można zatem przyjąć wyjaśnienie zaproponowane przez IBM na ich stronie Accessibility Q&A

Accessibility means enabling IT hardware, software and services to be used by more people, either directly or in combination with assistive technology products.

I od razu wyjaśnienie, czyn są te tajemniczo brzmiące technologie asystujące:

Assistive technology is specialized hardware or software that is used to help increase, maintain or assist the functional capabilities of people with disabilities. It can be any device or technique that assists people in removing or reducing barriers to computing technology and information and enhances their everyday activities. An example of assistive technology is a screen reader, which uses a text-to-speech synthesizer to translate what is displayed on a screen into audible text.
Zatem można przyjąć, że w tym rozumieniu dostępność oznacza możliwość korzystania z aplikacji przez osoby używające technologii asystujących.

Technologie asystujące w przypadku systemów operacyjnych i aplikacji uruchamianych pod ich kontrolą oznaczają pewien kolejny interfejs użytkownika. Ten interfejs ma za zadanie przetransformować standardowy interfejs (najczęściej GUI, czyli graficzny interfejs użytkownika) na inną formę, która będzie użyteczna w alternatywny sposób. Zatem najczęściej jej zadaniem jest zamiana obrazu interfejsu na jego dźwiękową lub dotykową reprezentację. Może też oznaczać zmianę sposobu wprowadzania danych, na przykład za pomocą wirtualnej klawiatury bądź rozpoznawania mowy.

Jak się to robi?

Do projektowania dostępnego interfejsu aplikacji można podejść na dwa sposoby: zadbać o dostępność samemu lub powierzyć to zadanie dedykowanym interfejsom programistycznym. Pierwsze podejście nie jest zbyt popularne, ponieważ wymaga od programisty włożenia dużej i - trzeba to wyraźnie powiedzieć - najczęściej niepotrzebnej pracy. W wyniku tego podejścia powstają aplikacje typu selfvoicing, czyli takie, które nie wymagają technologii asystujących. Jednak rzeczywistość jest taka, że niepełnosprawni użytkownicy komputerów najczęściej dysponują swoim własnym oprogramowaniem i niepotrzebne są im takie rozwiązania, a w skrajnych przypadkach mogą im przeszkadzać.

Dlatego preferowanym i dominującym rozwiązaniem jest stosowanie gotowych bibliotek, co daje przynajmniej częściową pewność przygotowania dostępnego interfejsu użytkownika. Firma IBM opracowała nawet IBM software accessibility checklist, gdzie każdy programista może przeczytać najbardziej skondensowane uwagi na temat tworzenia dostępnych aplikacji. Streszczając i nieco ograniczając można przyjąć trzy podstawowe zasady:

1. Każdą funkcję aplikacji można wywołać zarówno za pomocą myszy, jak i klawiatury.
2. Każdy element interfejsu powinien być interpretowalny przez technologie asystujące.
3. Każdy element graficzny powinien mieć swoją etykietę tekstową, a etykieta powinna być z nim powiązana logicznie.

W praktyce

Programowanie interfejsów w ten sposób wydaje się być ograniczające dla autora, ale to tylko pozór. Ogromna większość bibliotek graficznych zawiera w sobie odpowiednie mechanizmy, które tylko czekają na ich wykorzystanie. Bardzo często programiści po prostu nie wiedzą, do czego służą właściwości "label" lub "alt_text" kontrolek i pozostawiają je puste lub wpisują cokolwiek. Podstawowa biblioteka firmy Microsoft jest wyposażona w całą kolekcję narzędzi do uzupełniania interfejsów o brakujące informacje oraz w specjalne narzędzie inspect.exe, którego zadaniem jest testowanie dostępności interfejsu aplikacji. Podobnie jest z bibliotekami Swing i AWT w Jawie oraz we wszystkich nowoczesnych bibliotekach, a kto ciekaw, niechaj w dokumentacji wyszuka rozdział o accessibility i doczyta więcej.

Jednak zaprojektowanie interfejsu zgodnie z zasadami jeszcze wcale nie wystarcza. Trudno byłoby pisać oprogramowanie asystujące dla każdej aplikacji osobno. Dlatego powstała jeszcze jedna rodzina interfejsów pośredniczących, które służą wyłącznie tłumaczeniu zapytań technologii dostępowych skierowanych do GUI, a zwrotnie przekazujących odpowiedzi. W systemie Windows odpowiada za to MSAA (MicroSoft Active Accessibility), a w Linuksie AT-SPI. Dzięki nim programiści po prostu programują po bożemu, a resztą zajmują się programy specjalistyczne. Może się zatem zdarzyć, że programista w ogóle nie myślał o osobach niepełnosprawnych, a napisał w pełni dostępną aplikację. To się zdarza leniwym programistom, którzy korzystają z gotowych rozwiązań. Prawdziwą zmorą dla niewidomych użytkowników są ambitni i pracowici programiści, którym nie wystarczają standardowe kontrolki i tworzą własne, które - ze swej natury - z interfejsami pośredniczącymi dogadać się nie potrafią. Czasem te problemy da się jakoś ominąć, ale nie zawsze i zazwyczaj praca nie jest efektywna.

A co z treścią?

Ponieważ dyskusję wywołała moja notatka na temat dostępności przeglądarek internetowych, to trzeba jeszcze wspomnieć o dostępności treści. W wypadku wielu aplikacji dostępność samego interfejsu wystarczy, ale są takie, gdzie konieczne staje się udostępnienie zawartości, nad którą pracuje użytkownik. Przykładami mogą być edytory tekstu, arkusze kalkulacyjne, edytory dźwięku, czy wreszcie przeglądarki internetowe. Cóż bowiem użytkownikowi z tego, że może bez problemu wpisać adres strony internetowej lub pozaznaczać odpowiednie opcje w ustawieniach, gdy nie ma dostępu do treści samej strony internetowej. Otóż i na to jest sposób, który został zaproponowany przez wspominany wcześniej interfejs MSAA. Strona internetowa staje się najwyższym poziomem drzewa dokumentu, a pozostałe elementy są odpowiednio interpretowane przez oprogramowanie asystujące. W ten sposób użytkownik wie, że dany fragment tekstu jest łączem, inny grafiką, a jeszcze inny - tabelą. Nie wchodząc w szczegóły, trzeba napisać, że przez lata prac programistów i uwag użytkowników mechanizmy dostępu do strony internetowej udoskonaliły się niewiarygodnie. I wszystko byłoby dobrze, gdyby nie kolejny rodzaj dostępności, o którym już w tym tekście nie będę się rozpisywał, a mianowicie dostępności treści internetowej. Tutaj także wiele zależy od twórców stron internetowych oraz od znajomości pewnych standardów. Tak czy inaczej - ten rodzaj dostępności (treści, a nie interfejsu) musi być zaprogramowany przez autora aplikacji. Dostępność Internet Explorera, Firefoxa i rozwijana obecnie Chrome musi być zaimplementowana na etapie produkcji programu. A że nie jest to już zadanie trywialne, to w niektórych przeglądarkach odpuszczono ją całkowicie lub zrobiono częściowo.

Czy coś wyjaśniłem?

Nadal nie jestem pewien, czy moje wywody są zrozumiałe. Takie rzeczy lepiej pokazywać, niż opisywać, bo wszak jeden obraz wart jest tysiąca słów. Mam jednak nadzieję, że przynajmniej samo pojęcie dostępności będzie już znaczyło coś więcej, niż dostępność pliku instalacyjnego. Chociaż zatem język polski w tym wypadku słabo się sprawdza, to jednak mam nadzieję, że dostępność będzie miała teraz podwójne znaczenie. 

Komentarze

0 nowych
przemo_li   11 #1 02.10.2010 19:18

Wpis merytorycznie dobry, przyjemnie się czyta.

Polski jest beznadziejny...

I podoba mi się też formatowanie.

iluzion   5 #2 03.10.2010 10:04

Za przemo_li. Najpierw przeczytałem wpis użytkownika Razi o formatowaniu tekstu, a potem ten. Oby wszystkie wpisy na blogu tak dobrze się czytało.

Tormiasz   6 #3 03.10.2010 22:24

Bardzo dobrze, że piszesz o dostępności, czym jest dostępność i jakie aplikacje służą niewidomym. Informacje te są bardzo ważne dla każdego, ponieważ nikt nie wie czy sam nie będzie potrzebował takiej wiedzy dla siebie, rodziny czy znajomych.

Dostępność to trudny temat, przez wielu niezrozumiały. Ciężko jest się postawić na miejscu osoby niepełnosprawnej, która pracuje z komputerem.

Martwi mnie to, że twórcy programów czy witryn nie tworzą oprogramowania, które niewidomi mogliby używać lub używanie jest bardzo utrudnione. Teoretycznie nie jest to ich wina, ponieważ w kursach, szkołach czy studiach nikt o tym nie mówi.

Zaskakuje mnie jakość twoich wpisów. Formatowanie tekstu idealne, nie wiem, czy wykorzystujesz do tego specjalne narzędzia (szczerze mówiąc nie zagłębiałem się jeszcze w tematykę dostępności, więc nie wiem), ale większość ludzi może Ci zazdrościć zdolności pisarskich, sam też zazdroszczę.

socialkaos   3 #4 04.10.2010 20:44

Z niewidomych, czy innaczej ułomnych ludzi nie ma kapuchy.
Jest ich też niewielu w porównaniu do zdrowych.
Ot cały "problem dostępności".

Ktoś tu się przejmuje programami..
W krakowie odnowili rynek i zapomnieli uczynić go
dostępnym dla inwalidów.

Xelosu   4 #5 05.10.2010 11:59

Ohh oby więc ludzi tak dobrze uczyło się na własnych błędach, świat byłby piękniejszy.

Nie mogę pominąć kwestii formatowania tekstu. Wydawało mi się, że osoba niewidoma nie będzie przykładała zbytnio wagi do wytłuszczania tekstu czy pozostawiania odstępów. Są to w końcu elementy, które ułatwiają wzrokowy odbiór tekstu.
Myliłem się i to jak bardzo.. myślę, że większość blogerów powinna się teraz wstydzić.. pod względem "dostepności" ten wpis stoi na dużo wyższym poziomi niż większość na tym blogu. Dostrzegam tutaj coś co cenie najbardziej w ludziach publicznie przedstawiających swoje poglądy.
Autor nie ogranicza się do słów, przekazuje swoje poglądy również za pomocą swojej postawy.

Co do merytorycznej części. Przyznam się bez bicia że sam należę do programistów pomijających "label". Nie tyle z powodu braku wiedzy na temat funkcji co z myślenia "na co to komu". Teraz już znam co najmniej jedno zastosowanie, dla którego warto jednak wypełniać te pola.

Orlando   3 #6 06.10.2010 16:16

Dziękuję a słowa uznania. Formatowanie jest poprawne, bo ja preferuję tworzenie dokumentów w sposób logiczno-strukturalny, a nie wizualny. Dzięki temu one niejako automatycznie stają się wizualnie poprawne. Lubię LaTeXa, RST czy markdown, bo tam w sposób prosty można oznaczyć logiczne części dokumentu. Można to zrobić też w HTML, ale dłubać go ręcznie to katorga, chociaż i to robię.
Co do poglądu, że "nie ma kapuchy" to pogląd ten jest tyleż rozpowszechniony, co fałszywy. Zasada "długiego ogona" działa tu doskonale. Ludzie z różnymi niepełnosprawnościami chętnie korzystają z zakupów przez Internet i wybierają sklepy, których witryny są dostępne. Po prostu głosują nogami, czy może raczej palcami. A dysponują wcale dużymi zasobami finansowymi. Ja na przykład zarabiam całkiem przyzwoicie i nie mieszczę się w ugruntowanym stereotypie "biednego niepełnosprawnego". Są oczywiście i tacy, podobnie jak w całym społeczeństwie. Ten stereotyp i niska świadomość problematyki dostępności kosztuje firmy i to pewnie sporo. Wydaję przez sieć dużo pieniędzy, ale tylko przez witryny dostępne. Tak dla zasady, żeby promować, bo poradziłbym sobie także z tymi gorszymi. Jak to napisał klasyk - mieć klienta i nie mieć klienta to razem dwóch klientów.
I jeszcze jedno - cieszę się, że może chociaż jeden programista skorzysta z moich wpisów i podniesie jakość swoich aplikacji. Z góry dziękuję.