Wymogi prawne związane z dostępnością stron internetowych

Dostępność serwisów internetowych oraz potrzeba dostosowania ich do potrzeb osób z różnymi rodzajami niepełnosprawności są kwestiami dostrzegalnymi przez państwowe organy odpowiedzialne za tworzenie i określanie prawa. Równy dostęp do informacji jest na tyle ważny, że regulacje odnoszące się dostępności stron internetowych coraz częściej trafiają do aktów prawnych.  Od 30 maja 2012 roku w Polsce obowiązuje „Rozporządzenie Rady ministrów z dnia 12 kwietnia 2012 roku”, które nakłada obowiązek dostosowania serwisów internetowych do potrzeb osób niepełnosprawnych przez wszystkie podmioty realizujące zadania publiczne. Celem rozporządzenia jest zapewnienie powszechnej dostępności przez wszystkie systemy informatyczne należące do instytucji państwowych w Polsce. W kontekście tematu przedstawianej pracy szczególnie ważnym są §19 oraz §22 Rozporządzenia:

„§ 19. W systemie teleinformatycznym podmiotu realizującego zadania publiczne służące prezentacji zasobów informacji należy zapewnić spełnienie przez ten system wymagań Web Content Accessibility Guidelines (WCAG 2.0), z uwzględnieniem poziomu AA, określonych w załączniku nr 4 do rozporządzenia.”

 

“§ 22. Systemy teleinformatyczne podmiotów realizujących zadania publiczne funkcjonujące w dniu wejścia w życie rozporządzenia należy dostosować do wymagań określonych w § 19, nie później niż w terminie 3 lat od dnia wejścia w życie niniejszego rozporządzenia”

Powyższe zapisy oznaczają, że od 1 czerwca 2015 roku wszystkie podmioty realizujące zadania publiczne muszą spełniać na poziomie AA wytyczne zawarte w dokumencie WCAG 2.0. Zgodność serwisu ze standardami nie zawsze jest równa pełniej dostępności informacji na nim zawartej dla wszystkich użytkowników, lecz jest podstawowym wyznacznikiem jakości wykonania.

Ocena dostępności aplikacji

Testy funkcjonalności oraz analiza dostępności dla osób niepełnosprawnych umożliwia ocenę jakości projektowanej aplikacji. Testy te powinno się przeprowadzać nie tylko po zakończeniu projektu, ale również w trakcie jego implementacji, a nawet projektowania. Ich rezultaty umożliwiają dokładne zrozumienie potrzeb użytkowników, co pozwala na ulepszenie produktu już w początkowej fazie prac. Analizę dostępności aplikacji internetowej można podzielić na badanie automatyczne oraz analizę klasyczną, wykonywaną przez grupę użytkowników. Pierwszy sposób analizy odbywa się z wykorzystaniem narzędzi walidujących kod źródłowy aplikacji. Jest to metoda opierająca się o analizę statyczną. Ma ona na celu wykrycie błędów składniowych w strukturze kodu źródłowego. Badanie automatyczne jest szybkie, kompleksowe oraz powtarzalne, natomiast wyniki są wolne od subiektywnych odczuć. Klasyczne badanie dostępności polega na podzieleniu strony na badane obszary, a następnie poddanie ich analizie przez grupę użytkowników. Wielkość grupy osób testujących daną funkcjonalność wynosi zwykle od 3 do 15 osób. Zwiększenie liczby testerów ponad podane wartości nie wpływa znacząco na efektywność wykrywania błędów. Potwierdza to wzór (1) zaproponowany przez Toma Landauera obrazujący ilość znajdowanych błędów w testach przeprowadzanych na grupie użytkowników.

P = N(1-(1-L)n)                                                                       (1)

gdzie: P –  liczba problemów znalezionych w teście, N – całkowita ilość błędów,  L -skuteczność testera, n – liczebność grupy

W przedstawionym powyżej wzorze wartość N określa całkowitą ilość błędów jaką posiada aplikacja, L jest ilością problemów wykrywanych przez jedną osobę (najczęściej przyjmowaną wartością L jest 31%), natomiast n określa liczebność grupy testującej. Wykres pokazany na Rys. 1 przedstawia ilość wykrytych problemów w zależności od liczebności grupy użytkowników, na których przeprowadzono testy, przy założeniu, że L równą 31%, co oznacza, że pojedyncza osoba wykrywa około 1/3 wszystkich błędów.  Kolejne osoby w grupie testującej wykrywają część błędów zgłoszonych przez poprzedników oraz kilka nowych problemów.

Rys. 1. Ilość wykrytych problemów w zależności od liczebności grupy użytkowników testujących. Źródło: www.nngroup.com

Oba rodzaje analizy dostępności aplikacji mają swoje wady i zalety. Badanie automatyczne opiera się na wyszukiwaniu błędnych konstrukcji w kodzie źródłowym, na podstawie zestawu reguł i dopasowania do wzorców błędów – co pozwala na wykrycie jedynie prostych błędów. Analiza klasyczna wymaga dużego nakładu pracy oraz czasu, jej rezultatem są subiektywne oceny audytorów, których nie można w żaden sposób zweryfikować. Optymalnym rozwiązaniem jest zastosowanie obu rodzajów analizy dostępności, co pozwala na przetestowanie całej aplikacji ze zwróceniem szczególnej uwagi na najważniejsze funkcjonalności oraz potrzeby użytkowników.

Badanie znajomości standardów dostępności stron internetowych wśród ich twórców, administratorów oraz redaktorów

Badanie na temat znajomości standardów dostępności stron internetowych wśród ich twórców, administratorów oraz redaktorów zostały przeprowadzone w kwietniu 2017 roku poprzez zamieszczenie ankiety na portalu społecznościowym, na forum poświęconym zagadnieniom informatycznym. Kwestionariusz zawierał 21 pytań jednokrotnego wyboru. Pytania zawarte w kwestionariuszu wymagały od respondentów oceny swojej wiedzy na tematy takie jak: sposoby obsługiwania komputera i serwisów internetowych przez osoby niepełnosprawne, znajomości reguł projektowania serwisów przyjaznych wszystkim użytkownikom oraz wymogów prawnych związanych z dostępnością stron internetowych.

W formularzu zamieszczona została metryczka zawierająca podstawowe informacje dotyczące ankietowanych. W badaniu, które miało charakter diagnostyczny wzięło udział 101 osób. Poddały się mu jedynie osoby chętne.

Tabela 1. Płeć

Odpowiedź Liczba Odsetek procentowy
Kobiet 11 10,9%
Mężczyzna 90 89,1%
Ogółem 101 100%

Na podstawie przeprowadzonych badań stwierdzono, że w grupie 101 przebadanych osób, 11 (10,9%) stanowiły kobiety, a 90 (89,1) mężczyźni.

Tabela 2. Wiek

Odpowiedź Liczba Odsetek procentowy
18 – 25 lat 32 31,7%
26 – 35 lat 61 60,4%
36 – 45 lat 8 7,9%
Powyżej 45 lat 0 0%
Ogółem 101 100%

Ponad połowa badanych osób – 61 (60,4%) była w przedziale wiekowym 26-35 lat. Na drugim miejscu były osoby młodsze, w przedziale 18-25 lat – 32 (31,7%), dużo mniej, bo  8 (7,9%) stanowiły osoby w przedziale 36-45 lat. Wśród ankietowanych żadna spośród 101 osób nie była powyżej 45 roku życia.

Tabela 3. Proszę wskazać główne zadanie, które Pan/Pani wykonuje

Odpowiedź Liczba Odsetek procentowy
Twórca stron www 78 77,2%
Administrator stron www 5 5%
Redaktor stron www 1 1%
Tester stron www 17 16,8%
Ogółem 101 100%

Jeśli chodzi o główne zadanie wykonywane przez ankietowane osoby, większość zajmowała się tworzeniem stron internetowych 78 (77,2%), znacznie mniej, bo 17(16,8%) wykonuje zawód testera. Administratorzy stron internetowych stanową grupę 5 (5%) osób. Tylko jedna (1%) osoba z pośród całej badanej grupy wykonuje zawód redaktora stron www.

Tabela 4. Jak długo pracuje Pan/Pani w zawodzie?

Odpowiedź Liczba Odsetek procentowy
Poniżej pół roku 8 7,9%
Pomiędzy pół roku a rokiem 16 15,8%
Powyżej roku do pięciu lat 44 43,6%
Powyżej pięciu lat 33 32,7%
Ogółem 101 100%

Największą grupę wśród badanych stanowiły osoby z doświadczeniem zawodowym powyżej roku do pięciu lat 44 (43,6%). Niewiele mniej, bo 33 (32,7%) było osób posiadających staż pracy powyżej pięciu lat. W badanej grupie 16 osób (15,8%) wskazało długość swojego doświadczenia zawodowego w przedziale między pół roku a rokiem. Najmniej liczną grupę stanowiły osoby ankietowanie z najkrótszym doświadczeniem w branży informatycznej (8 osób, tj. 7,9% uczestników).

Tabela 5. Czy spotkał się Pan/Pani kiedykolwiek z problematyką tematu dostępności stron internetowych dla osób niepełnosprawnych?

Odpowiedź

 

Liczba Odsetek procentowy
Tak 63 62,4%
Nie 38 37,6%
Ogółem 101 100%

Na pytanie „Czy spotkał się Pan/Pani kiedykolwiek z problematyką tematu dostępności stron internetowych dla osób niepełnosprawnych?” twierdząco odpowiedziało 63 (62,4%) osób, natomiast mniejszość 38 (37,6%) odpowiedziała przecząco. Brak świadomości oraz wiedzy na temat dostępności wśród osób uczestniczących w tworzeniu serwisów internetowych jest głównym powodem powstawania utrudnień, na jakie napotykają niepełnosprawni użytkownicy sieci.

Tabela 6. Czy posiada Pan/Pani wiedzę na temat sposobu obsługiwania komputera i serwisów internetowych przez osoby z dysfunkcją wzroku?

Odpowiedź Liczba Odsetek procentowy
Tak 47 46,5%
Nie 54 53,5%
Ogółem 101 100%

Zrozumienie potrzeb osób niepełnosprawnych wymaga poznania problemów, jakie mogą spotkać podczas korzystania z serwisów internetowych. Wymagana jest również wiedza na temat narzędzi, jakimi posługują się niedowidzący lub niewidomi użytkownicy Internetu. Na podstawie ankiety można stwierdzić, że niecała połowa respondentów, tj. 47 osób (46,5%) posiada wiedzę na temat sposobu obsługiwania komputera i serwisów internetowych przez osoby z dysfunkcją wzroku.

Tabela 7. Czy posiada Pan/Pani wiedzę na temat sposobu obsługiwania komputera i serwisów internetowych przez osoby z dysfunkcją słuchu?

Odpowiedź Liczba Odsetek procentowy
Tak 28 27,7%
Nie 73 72,3%
Ogółem 101 100%

Wśród badanych znacząco przeważały osoby nieposiadające wiedzy na temat sposobu obsługiwania komputera i serwisów internetowych przez osoby z dysfunkcją słuchu (73 uczestników badań, tj.72.3%). Brak świadomości potrzeb, jakie posiadają osoby niesłyszące są główną przyczyną tworzenia treści multimedialnych, które nie są dostępne dla tej grupy użytkowników.

Tabela 8. Czy posiada Pan/Pani wiedzę na temat sposobu obsługiwania komputera i serwisów internetowych przez osoby z niepełnosprawnością intelektualną?

Odpowiedź Liczba Odsetek procentowy
Tak 11 10,9%
Nie 90 89,1%
Ogółem 101 100%

Nieliczni spośród ankietowanych osób 11 (10.9%) posiadało wiedzę na temat sposobu obsługiwania komputera i serwisów internetowych przez osoby z niepełnosprawnością intelektualną. Świadomość wagi poprawnie zredagowanego tekstu oraz logicznej nawigacji jest połową sukcesu do stworzenia serwisu przyjaznego osobom z niepełnosprawnością intelektualną.

Tabela 9. Jak ocenia Pan/Pani poziom swojej znajomości dokumentu WCAG 2.0?

Odpowiedź Liczba Odsetek procentowy
1 71 70,3%
2 9 8,9%
3 13 12,9%
4 7 6,9%
5 1 1%
Ogółem 101 100%

Zdecydowana większość osób – 71 (70.3%) oceniła poziom swojej znajomości dokumentu WCAG 2.0 na ocenę niedostateczną. Dużo mniej ankietowanych – tylko 13 (12.9%) zadeklarowała swoją wiedzę na poziomie dostatecznym, natomiast 9 (8.9%) osób – dopuszczającym oraz 7 (6.9%)  dobrym. Tylko jeden (1%) respondent ocenił swoją znajomości dokumentu WCAG 2.0 na ocenę bardzo dobrą. Specyfikacje WCAG 2.0 uznaje się za najważniejszy dokument dotyczący dostępności stron internetowych, skierowany głównie do twórców serwisów internetowych. Jak wskazują wyniki ankiety, ogromna większość tych osób nie zna zasad zawartych w WCAG.

Tabela 10. Jak ocenia Pan/Pani poziom swojej znajomości zasad tworzenia struktury i hierarchii nagłówków?

Odpowiedź Liczba Odsetek procentowy
1 18 17,8%
2 15 14,9%
3 27 26,7%
4 28 27,7%
5 13 12,9%
Ogółem 101 100%

Na pytanie dotyczące znajomości zasad tworzenia struktury i hierarchii nagłówków przeważały oceny dobra 28 (27.7%) oraz dostateczna 27 (26.7%). Niewiele mniej, bo 18 (17.8%) ankietowanych oceniło swoją wiedzę jako niedostateczną, oraz 15 (14.9%) – dopuszczająco. Najmniej liczną grupę 13 (12.9%)  stanowiły osoby oceniające swoje umiejętności tworzenia struktury i hierarchii nagłówków na poziomie bardzo dobrym. Unikalność oraz poprawność nagłówków ułatwia osobom z wadą wzroku orientację i nawigację na stronach internetowych oraz umożliwia łatwą lokalizację konkretnych treści. Prawidłowa struktura dokumentu pomaga nie tylko osobom niepełnosprawnym, ale również umożliwia robotom sieciowym analizowanie treści i przedstawianie jej w alternatywny sposób.

Tabela 11. Jak ocenia Pan/Pani poziom swojej znajomości zasad tworzenia jednoznacznych tytułów stron?

Odpowiedź Liczba Odsetek procentowy
1 13 12,9%
2 22 21,8%
3 31 30,7%
4 22 21,8%
5 13 12,9%
Ogółem 101 100%

Najwięcej spośród badanych osób, bo 31 (30,7%) uważa, że poziom ich wiedzy na temat zasad tworzenia jednoznacznych tytułów stron jest na poziomie dostatecznym. Tyle samo ankietowanych 22 (21.8%) zaznaczyło ocenę dostateczną oraz dobrą. Ocenę niedostateczną wybrało 13 (12.9%) respondentów. Prawidłowy tytuł strony ma bardzo duże znaczenie nie tylko dla osób niewidomych, ale dla wszystkich użytkowników serwisu. Pozwalają na szybką orientację między wieloma otwartymi kartami przeglądarki, bez konieczności przechodzenia na każdą z nich.

Tabela 12. Jak ocenia Pan/Pani poziom swojej znajomości zasad tworzenia zrozumiałego tekstu?

Odpowiedź Liczba Odsetek procentowy
1 9 8,9%
2 8 7,9%
3 38 37,6%
4 34 33,7%
5 12 11,9%
Ogółem 101 100%

Na pytanie: „Jak ocenia Pan/Pani poziom swojej znajomości zasad tworzenia zrozumiałego tekstu?”, najwięcej osób 38 (37.6%) wybrało ocenę dostateczną, niewiele mniej, bo 34 (33.7%) dobrą. Bardzo dobrą wiedzę na temat redagowania dostępnego tekstu zadeklarowało 12 (11.9%) ankietowanych.  Pozostałe osoby wybrały odpowiedź niedostateczną 9 (8.9%) oraz dopuszczającą 8 (7.9%). Zbyt skomplikowany język wykorzystany do przedstawienia informacji może utrudnić zapoznanie się z jej temetem osobom niepełnosprawnym intelektualnie, mającym problem z koncentracją, obcokrajowcom i seniorom.

Tabela 13. Jak ocenia Pan/Pani poziom swojej znajomości zasad tworzenia odnośników?

Odpowiedź Liczba Odsetek procentowy
1 5 5%
2 13 12,9%
3 27 26,7%
4 33 32,7%
5 23 22,8%
Ogółem 101 100%

Znajomość reguły tworzenia dostępnych odnośników na poziomie dobrym deklaruje 33 ankietowanych (32.7%). Niewiele mniej, bo 27 (26.7%)  osób zadeklarowało swoje umiejętności na ocenę dostateczną, natomiast 23 (22.8%) na ocenę bardzo dobrą. Wartość dopuszczającą wskazało 12 (12.9%) respondentów. Ocenę niedostateczną wybrało jedynie 5 (5%) ankietowanych.  Występowanie na jednej stronie wielu odnośników o tej samej nazwie jest dezorientujące dla osób słabo widzących, które korzystając z oprogramowania powiększającego są w stanie zapoznać się tylko z niewielkim obszarem strony. Użytkownicy korzystający z funkcji listowania linków otrzymują spis identycznie brzmiących odnośników.

Tabela 14. Jak ocenia Pan/Pani poziom swojej znajomości zasad dotyczących kontrastu elementów przekazujących treść?

Odpowiedź Liczba Odsetek procentowy
1 17 16,8%
2 19 18,8%
3 33 32,7%
4 22 21,8%
5 10 9,9%
Ogółem 101 100%

Jeśli chodzi o znajomości zasad dotyczących kontrastu elementów przekazujących treść największą grupę 33 (32.7%) stanowiły osoby oceniające swoją wiedzę na poziomie dostatecznym. Kolejnymi najczęściej wybieranymi odpowiedziami była ocena dobra 22 (21.8%) oraz dopuszczająca 19 (18.8%). Niedostateczną wiedzę na temat reguł dotyczących kontrastu na stronach zadeklarowało 17 (16.8%) respondentów. Dziesięciu (9.9%) ankietowanych zaznaczyło największą wartość w skali ocen. Nieprawidłowy kontrast utrudnia lub wręcz uniemożliwia osobom z różnymi wadami wzroku odbiór prezentowanej w serwisie treści. Nieprawidłowy kontrast i jasne światło mogą uniemożliwić zapoznanie się z informacją na urządzeniach posiadających błyszczącą matrycę wyświetlacza.

Tabela 15. Jak ocenia Pan/Pani poziom swojej znajomości zasad opisywania elementów graficznych?

Odpowiedź Liczba Odsetek procentowy
1 14 13,9%
2 26 25,7%
3 23 22,8%
4 25 24,8%
5 13 12,9%
Ogółem 101 100%

Następnym pytaniem było: „Jak ocenia Pan/Pani poziom swojej znajomości zasad opisywania elementów graficznych?”. Wśród badanych osób aż 26 (25.7%) sądzi, że ich wiedza klasyfikuje się na poziomie dostatecznym. Niewiele mniej, bo 25 (24.8%) oraz 23 (22.8%) wybrało oceny kolejno dobrą i dostateczną. Najmniej liczne grupy spośród przebadanych osób stanowią ankietowani posiadający niedostateczną wiedzę na temat opisywania elementów graficznych na stronach internetowych – 14 (13.9%) respondentów, oraz Ci, którzy oceniają swoje umiejętności na stopień bardzo dobry – 13 (12.9%). Brak alternatywnych opisów elementów multimedialnych uniemożliwia osobom niepełnosprawnym odnalezienie się w kontekście umieszczonej na stronie treści. Problem ten w szczególności dotyka osób niesłyszących i niewidomych.

Tabela 16. Jak ocenia Pan/Pani poziom swojej znajomości zasad tworzenia dostępnych dokumentów w różnych formatach?

Odpowiedź Liczba Odsetek procentowy
1 12 11,9%
2 28 27,7%
3 24 23,8%
4 23 22,8%
5 14 13,9%
Ogółem 101 100%

Najwięcej ankietowanych osób, bo 28 (27,7%) ocenia poziom swojej wiedzy na temat znajomości zasad tworzenia dostępnych dokumentów w różnych formatach na ocenę dopuszczającą. Niewiele mniej, bo 24 (23.8%) oraz 23 (22.8%) wybrało oceny kolejno dostateczną i dobrą. Ocenę bardzo dobrą zaznaczyło 14 (13.9%) spośród ankietowanych. Najmniej liczną grupę 12 (11.9%) osób, stanowią Ci, którzy zaznaczyli wartość niedostateczną. Niedostępność dokumentów odczuwają wszyscy użytkownicy bez wyjątku. Utrudnieniami jest często brak możliwości automatycznego przeszukania zawartości dokumentu lub możliwości skopiowania jego fragmentu. Osoby niepełnosprawne wykorzystujące czytniki ekranu nie są w stanie zapoznać się z treścią takiego dokumentu.

Tabela 17. Jak ocenia Pan/Pani poziom swojej wiedzy na temat nawigacji przy użyciu urządzeń innych niż mysz komputerowa?

Odpowiedź Liczba Odsetek procentowy
1 15 14,9%
2 27 26,7%
3 20 19,8%
4 27 26,7%
5 12 11,9%
Ogółem 101 100%

Na pytanie: „Jak ocenia Pan/Pani poziom swojej wiedzy na temat nawigacji przy użyciu urządzeń innych niż mysz komputerowa?” tyle samo ankietowanych 27 (26.7%) zaznaczyło ocenę dopuszczającą oraz dobrą. Grupa 20 (19.8%) osób ocenia poziom swojej wiedzy na ocenę dostateczną, natomiast 15 (14.9%) respondentów zaznaczyło najniższą wartość w skali ocen. Bardzo dobrą wiedzę na temat korzystania z komputera przez osoby niepełnosprawne przy użyciu urządzeń innych niż mysz komputerowa zadeklarowało 12 (11.9%) ankietowanych. Cześć niepełnosprawnych osób posługuje się standardową klawiaturą i myszką, ale istnieje również grupa osób, która korzysta z urządzeń oraz programów wspomagających. W serwisach często można spotkać błędy, które uniemożliwiają tym osobom dotarcie do informacji.

Tabela 18. Jak ocenia Pan/Pani poziom swojej znajomości zasad opisywania pól formularzy?

Odpowiedź Liczba Odsetek procentowy
1 6 5,9%
2 22 21,8%
3 30 29,7%
4 23 22,8%
5 20 19,8%
Ogółem 101 100%

Znajomość zasad opisywania pól formularzy na poziomie dostatecznym deklaruje 30 (29.7%) ankietowanych. Kolejnymi najczęściej wybieranymi odpowiedziami była ocena dobra 23 (22.8%) oraz dopuszczająca 22 (21.8%).  Niewiele mniej, bo 20 (19.8%) ankietowanych oceniło swoją wiedzę, jako bardzo dobra. Sześć (5.9%) spośród ankietowanych osób przyznało się do posiadania niedostatecznej wiedzy na temat tworzenia dostępnych formularzy. Brak etykiet przypisanych do pól formularza może utrudnić lub wręcz uniemożliwić jego wypełnienie osobom niewidomym i słabo widzącym.

Tabela 19. Jak ocenia Pan/Pani poziom swojej znajomości semantyki kodu HTML?

Odpowiedź Liczba Odsetek procentowy
1 3 3%
2 7 6,9%
3 21 20,8%
4 34 33,7%
5 36 35,6%
Ogółem 101 100%

Ocenę bardzo dobrą, jeśli chodzi o poziom znajomości semantyki kodu HTML, wybrało 36 (35.6%) respondentów. Niewiele mniej oceniło swoją wiedzę jako dobra – 34 (33.7%). Ocenę dostateczną oraz dopuszczającą wybrało kolejno 21 (20.8%) i 7 (6.9%) ankietowanych.  Najmniej liczną grupą spośród przebadanych osób stanowią ankietowani posiadający niedostateczną wiedzę na temat semantyki kodu HTML. Brak zgodności kodu ze specyfikacją języka HTML dotyka wszystkich osób z dysfunkcją wzroku korzystających z czytników ekranu lub aplikacji powiększających obraz.

Tabela 20. Jak ocenia Pan/Pani poziom swojej umiejętności stosowania narzędzi do walidacji?

Odpowiedź Liczba Odsetek procentowy
1 5 5%
2 17 16,8%
3 25 24,8%
4 27 26,7%
5 27 26,7%
Ogółem 101 100%

Na pytanie „Jak ocenia Pan/Pani poziom swojej umiejętności stosowania narzędzi do walidacji?” tyle samo ankietowanych 27 (26.7%) zaznaczyło ocenę bardzo dobrą oraz dobrą. Niewiele mniej, bo 25 (24.8%) osób zadeklarowało swoje umiejętności korzystania z narzędzi służących do walidacji na poziomie dostatecznym. Pozostałe osoby wybrały odpowiedź dopuszczającą 17 (16.8%) oraz niedostateczną 5 (5%). Wiedza i umiejętność posługiwania się zautomatyzowanymi narzędziami do walidacji poprawności kodu źródłowego pomaga w dbaniu o jakość tworzonego serwisu. Automatyczne walidatory potrafią dostarczyć cennych wskazówek, wskazać ostrzeżenia oraz błędy dotyczące projektowanego serwisu. Zgodność ze standardami, nie równa się dostępności, lecz jest pierwszym krokiem do niej.

Tabela 21. Jak ocenia Pan/Pani poziom swojej wiedzy na temat wymogów prawnych związanych z dostępnością stron internetowych?

Odpowiedź Liczba Odsetek procentowy
1 35 34,7%
2 25 24,8%
3 23 22,8%
4 15 14,9%
5 3 3%
Ogółem 101 100%

Jeśli chodzi o poziom wiedzy na temat wymogów prawnych związanych z dostępnością stron internetowych, aż 35 (34.7%) ankietowanych wybrało ocenę niedostateczną, 25 (24.8%) – dopuszczającą. Ocenę dostateczną oraz dobrą wybrało kolejno 23 (22.8%) i 15 (14.9%) ankietowanych. Najmniej liczną grupę 3 (3%) osób stanowią Ci, którzy wybrali ocenę bardzo dobrą. Liderami publikowania trudnych do zrozumienia treści są instytucje publiczne. Przyczyną słabej zrozumiałości informacji jest brak świadomości, że tekst powinien być zrozumiale napisany, czyli dostępny. Wyniki ankiety wskazują na brak wiedzy wśród twórców serwisów internetowych o obowiązku nałożonym przez Rozporządzenie Rady Ministrów z dnia 12 kwietnia 2012 roku w sprawie dostępności publikowanych treści na stronach podmiotów realizujących zadania publiczne.

VulgarDetector – application to detect vulgar language in text

Foreword

Automatically recognition and flagged as spam comments with vulgar language – it’s possible? How implement application to take care your WordPress website and protect from vulgar comments?

Why this issue?

  • no similar solutions
  • get knowledge of develop WordPress plugin
  • get knowledge of microservices
  • get knowledge of use memcache
  • good introduction to artificial intelligence

The project consists of three parts

  1. Backend – REST API application build on the shoulders of Symfony 3 microframework.
  2. Frontend – simple static page (HTML, CSS, JS, JQuery) presents functionality of application
  3. WordPress plugin – checks comment based on backend application

How application recognize vulgar text

Checking the text is simple and is based on a dictionary of vulgar words, the whole process can be divided into five steps:

  1. Tokenization – process of breaking a stream of text up into words, phrases, symbols, or other meaningful elements called tokens
  2. Lowercase tokens – convert uppercase to lowercase
  3. Remove common stopwords – stopword is a commonly used word
  4. Remove duplicates
  5. Search tokens in database

Presentation solutions

  1. BACKEND
    Repository:
    https://github.com/tarnawski/vulgar-detector-api
    Staging:
    http://vulgardetector-api.ttarnawski.usermd.net/status
  2. FRONTEND
    Repository:
    https://github.com/tarnawski/vulgar-detector
    Staging:
    http://vulgardetector.ttarnawski.usermd.net/
  3. WORDPRESS PLUGIN
    Repository:
    https://github.com/tarnawski/vulgar-detector-plugin
    Wordpress Plugin Directory
    https://wordpress.org/plugins/vulgar-detector/

REST API and upload images

Foreword

In some cases you must add images in Your REST API application for example when you want implement possibility to add photo to announcement, event etc. In this case reasonable solution is division endpoint to upload image.

Assumptions

We assumed to create separate endpoint to upload images. One solution is to use a base64, specification might look like this:

POST http://server/data/media
body:
{
      "data": "data:image/jpeg;base64,/9j/4AAQSkZJ..."
}

The response should return the ID of uploaded image to link with other entity.

201 Created
Location: http://server/data/media/21323
body:
{
      "id": 21323
}

Implementation with Symfony

Below service to decode and save image.

class FileUploadService
{
    private $uploadDir;

    public function __construct($uploadDir)
    {
        $this->uploadDir = $uploadDir;
    }

    public function base64Decode($base64)
    {
        return base64_decode($base64);
    }

    public function upload($originalFileName, $image)
    {
        $originalFilePath = sprintf('%s/%s', $this->uploadDir, $originalFileName);

        return file_put_contents($originalFilePath, $image) == false ? false : true;
    }
}

And ImageController

class ImageController
{
    const IMAGE_TYPE = 'jpg';

    public function uploadAction(Request $request)
    {

        $form = $this->createForm(FileType::class);

        $submittedData = json_decode($request->getContent(), true);
        $form->submit($submittedData);

        if (!$form->isValid()) {
            return $this->error($this->getFormErrorsAsArray($form));
        }

        /** @var File $file */
        $file = $form->getData();

        $fileName = sprintf('%s.%s', Uuid::uuid4()->toString(), self::IMAGE_TYPE);

        /** @var FileUploadService $fileUploadService */
        $fileUploadService = $this->get('accessibility_barriers.services.file_upload_service');

        $imageFile = $fileUploadService->base64Decode($file->data);
        $fileUploadService->upload($fileName, $imageFile);

        $image = new Image();
        $image->setName($fileName);

        $em = $this->getDoctrine()->getManager();
        $em->persist($image);
        $em->flush();

        return $this->success($image, 'Image', Response::HTTP_CREATED, array('IMAGE_BASIC'));
    }

Recognition negative comments based on artificial intelligence

Foreword

Artificial intelligence is not just for C/C++. With PHP, you can implement neural networks in your Web applications. To self learning and get experience in artificial intelligence I try project application to recognition negative comments based on artificial intelligence in particular Naive Bayes algorithm. I’m using the wikipedia entry http://en.wikipedia.org/wiki/Bayesian_spam_filtering to develop my classification code. Training data derived from: http://help.sentiment140.com/for-students/

What is it?

grimedetector is a text classification application with a focus on reuse, customizability and performance. Particularly useful in detecting negative (or positive) comments or just texts. Application based on a Naive Bayes statistical classifier.

Introduction to the Bayes Theorem

Naive Bayes classifier is one of the methods of machine learning, used to solve the problem of sorting decision classes. The task Bayes classifier to assign a new case to one of the classes, with their collection must be finite and defined a priori.

Mathematical foundation

Implemented code calculate probability that text is negative given that it contains a specific word by implementing the following formula:

  • Pr(S|W) is the probability that a comment is negative, knowing that the word “replica” is in it;
  • Pr(S) is the overall probability that any given comment is negative;
  • Pr(W|S) is the probability that the word “replica” appears in negative comment;
  • Pr(H) is the overall probability that any given comment is positive;
  • Pr(W|H) is the probability that the word “replica” appears in positive comments.

Implemented code to combine the probabilities of all the unique words in a test comment to determine negative text based on the following formula:

The result p is typically compared to a given threshold to decide whether the comment is negative or not. If p is lower than the threshold, the comment is considered as likely positive, otherwise it is considered as likely negative.

Implementation Naive Bayes Classifier in PHP

class NaiveBayesClassifier
{
    /** @var WordRepository $wordRepository */
    private $wordRepository;

    public function __construct(WordRepository $wordRepository)
    {
        $this->wordRepository = $wordRepository;
    }

    public function classify($words)
    {
        $probabilityProducts = 1;
        $probabilitySums = 1;
        foreach ($words as $word) {
            $probability = $this->wordProbability($word);
            $probabilityProducts *= $probability;
            $probabilitySums *= (1 - $probability);
        }
        $grimeProbability = $probabilityProducts / ($probabilityProducts + $probabilitySums);
        return round($grimeProbability, 2);
    }

    public function wordProbability($word)
    {
        $ps = $this->probabilityContentIsGrime();
        $ph = $this->probabilityContentIsHam();
        $pws = $this->probabilityWordInGrime($word);
        $pwh = $this->probabilityWordInHam($word);
        $psw = ($pws * $ps) / ($pws * $ps + $pwh * $ph);
        $psw = $psw == 1 ? 0.99 : $psw;
        $psw = $psw == 0 ? 0.01 : $psw;
        return $psw;
    }

    public function probabilityContentIsGrime()
    {
        return $this->wordRepository->getGrimeCount() / $this->wordRepository->getWordsCount();
    }

    public function probabilityContentIsHam()
    {
        return $this->wordRepository->getHamCount() / $this->wordRepository->getWordsCount();
    }

    public function probabilityWordInGrime($word)
    {
        /** @var Word $word */
        $word = $this->wordRepository->getWordByName($word);
        if (!$word) {
            return 0.5;
        }
        return $word->getGrimeCount() / $this->wordRepository->getGrimeCount();
    }

    public function probabilityWordInHam($word)
    {
        /** @var Word $word */
        $word = $this->wordRepository->getWordByName($word);
        if (!$word) {
            return 0.5;
        }
        return $word->getHamCount() / $this->wordRepository->getHamCount();
    }
}

Source from: https://github.com/tarnawski/grime-detector-api