Jak przyrządzić dostępną stronę?
Transkrypt
Jak przyrządzić dostępną stronę?
DOSTĘPNOŚĆ W SYSTEMACH ZARZĄDZANIA TREŚCIĄ (CMS) Przemysław Bielecki AA Jak przyrządzić dostępną stronę? DOSTĘPNOŚĆ W SYSTEMACH ZARZĄDZANIA TREŚCIĄ (CMS) WPROWADZENIE DOSTĘPNOŚĆ WWW (WEB ACCESSIBILITY) strony i serwisy dostępne dla jak najszerszego grona odbiorców ze szczególnym uwzględnieniem osób narażonych na wykluczenie cyfrowe (niepełnosprawnych, starszych, gorzej wykształconych, pozbawionych dostępu do szerokopasmowego internetu) WCAG Web Content Accessibility Guidelines (WCAG) zbiór dokumentów opublikowany przez WAI zawierający zalecenia dotyczące tworzenia dostępnych serwisów internetowych. Od 15 października 2012 roku wytyczne WCAG w wersji 2.0 zyskały status międzynarodowej normy ISO/IEC 40500:2012. Dlaczego stosować zasady WCAG? Dlaczego stosować zasady WCAG? • Nigdy nie wiemy, co spotka nas i naszych bliskich w przyszłości. • Tworząc rozwiązania uniwersalne dajemy wszystkim użytkownikom równe szanse w dostępie do informacji i swobodę w korzystaniu z cyfrowych zasobów sieciowych. Dlaczego stosować zasady WCAG? • Obowiązujące ustawodawstwo • Od 30 maja 2012 roku, w polskim prawie obowiązują przepisy, które nakładają na wszystkie instytucje administracji publicznej, obowiązek dostosowania istniejących serwisów internetowych do potrzeb osób niepełnosprawnych. Oprogramowanie asystujące dla niewidomych a rzeczywistość • Firmy produkujące komercyjne oprogramowania asystujące chciały wyjść naprzeciw osobom niewidomym, wymyślając coraz doskonalsze wersje swoich aplikacji (nierzadko drogich). • Pomimo wielu usprawnień aplikacje nie zdawały egzaminu w cyfrowym świecie. • Dlaczego? Oprogramowanie asystujące dla niewidomych a rzeczywistość • Dlaczego? • Programy asystujące napotykały na szereg błędów już na stronach internetowych, co uniemożliwiało sprawne korzystanie z witryn. Przykładowe problemy: zapętlanie, jąkanie się czytników, czy zagubienie w strukturze strony. Oprogramowanie asystujące dla niewidomych a rzeczywistość • Wniosek: aby oprogramowanie asystujące sprawnie działało na stronie WWW, musi mieć przyjazne środowisko (ryba lubi pływać). Oprogramowanie asystujące dla niewidomych a rzeczywistość Zaobserwowane trendy: na szczęście dostępność zyskuje coraz większe znaczenie i producenci wiodących systemów operacyjnych przewidują już w pakiecie ułatwienia dostępu. Nie jest to więc już taka droga sprawa. KRÓTKA CHARAKTERYSTYKA WYTYCZNYCH WCAG 2.0 4 bardzo ważne zasady Postrzegalność Funkcjonalność Zrozumiałość Solidność Postrzegalność •Czy przewidziano rozwiązania dla informacji nietekstowych typu grafiki, pliki video i audio? (tekst alternatywny, audiodeskrypcja, transkrypcje) •Czy treści są prezentowane na różne sposoby (dostępne dla użytkowników z różnymi dysfunkcjami)? •Czy w tekstach zastosowano zabiegi pozwalające odróżnić od siebie poszczególne treści (linki, ważne informacje, cytaty)? Funkcjonalność •Dostępność z klawiatury •Zapewnij wystarczający czas na zapoznanie się z treścią •Nie projektuj elementów, które mogą wywołać ataki padaczki (migotanie obrazu, czerwone rozbłyski) •Możliwość nawigacji (zapewnij narzędzia, które ułatwiają użytkownikowi nawigację, znajdowanie treści oraz określanie, gdzie się aktualnie znajdują) Zrozumiałość •Zapewnij czytelną i zrozumiałą treść •Zadbaj, aby wszystkie elementy interfejsu użytkownika w serwisie pojawiały się i działały w sposób przewidywalny •Pomóż użytkownikowi uniknąć błędów i zapewnij korektę Solidność •Czy serwis jest kompatybilny z różnymi przeglądarkami oraz technologiami wspomagającymi? •Czy kod waliduje się w sposób poprawny (czy nie ma duplikatów id, czy kontenery są zamykane, itp.) LISTA KONTROLNA WCAG - NA CO ZWRÓCIĆ UWAGĘ? Nawigacja przy użyciu klawiatury Możliwość płynnej i szybkiej nawigacji przy użyciu klawiatury to jeden z najważniejszych aspektów dostępności serwisów internetowych. Aktywny fokus Upewnij się, że każdy interaktywny komponent interfejsu użytkownika posiada stan wizualnego fokusa i jest dostępny z poziomu klawiatury UI Nawigacja przy użyciu klawiatury a:active, a:focus, a:hover { color: #........; font-weight: bold; outline: #...... solid 3px; } Wzmocnij widoczność domyślnego fokusa { outline: none; } { visibility: hidden ; } TAB + SHIFT Nawigacja w odwrotnym kierunku TABULACJA (kierunek od lewej do prawej, z góry do dołu) Symulacja nawigacji przy użyciu klawisza tabulacji Menu Menu Menu Menu Slajder Pasek boczny (h3) Główna treść (h1) Tab (kieruje od lewej do prawej, z góry do dołu) Menu Menu Menu Menu Slajder Pasek boczny (h3) Główna treść (h1) Tab (kieruje od lewej do prawej, z góry do dołu) Menu Menu Menu Menu Slajder Pasek boczny (h3) Główna treść (h1) Tab (kieruje od lewej do prawej, z góry do dołu) Menu Menu Menu Menu Slajder Pasek boczny (h3) Główna treść (h1) Tab (kieruje od lewej do prawej, z góry do dołu) Menu Menu Menu Menu Slajder Pasek boczny (h3) Główna treść (h1) Tab (kieruje od lewej do prawej, z góry do dołu) Menu Menu Menu Menu Slajder Pasek boczny (h3) Główna treść (h1) Tab (kieruje od lewej do prawej, z góry do dołu) Menu Menu Menu Menu Slajder Pasek boczny (h3) Główna treść (h1) Tab (kieruje od lewej do prawej, z góry do dołu) Menu Menu Menu Menu Slajder Pasek boczny (h3) Główna treść (h1) Tab (kieruje od lewej do prawej, z góry do dołu) Zadbaj o właściwą kolejność nawigacji przy użyciu klawiatury Menu Menu Menu Menu Slajder Pasek boczny (h3) Główna treść (h1) Tab (kieruje od lewej do prawej, z góry do dołu) Menu Menu Menu Menu Slajder Pasek boczny (h3) Główna treść (h1) Tab (kieruje od lewej do prawej, z góry do dołu) Menu Menu Menu Menu Slajder Pasek boczny (h3) Główna treść (h1) Tab (kieruje od lewej do prawej, z góry do dołu) Menu Menu Menu Menu Slajder Pasek boczny (h3) Główna treść (h1) Tab (kieruje od lewej do prawej, z góry do dołu) Menu Menu Menu Menu Slajder Pasek boczny (h3) Główna treść (h1) Tab (kieruje od lewej do prawej, z góry do dołu) Menu Menu Menu Menu Slajder Pasek boczny (h3) Główna treść (h1) Tab (kieruje od lewej do prawej, z góry do dołu) Menu Menu Menu Menu Slajder Pasek boczny (h3) Główna treść (h1) Tab (kieruje od lewej do prawej, z góry do dołu) Menu Menu Menu Menu Tab powinien kierować nas najpierw do treści głównej, później do pobocznej. Nawet, jeśli kierunek na to nie wskazuje. Slajder Pasek boczny (h3) Główna treść (h1) Tab (kieruje od lewej do prawej, z góry do dołu) Skip link link szybkiego przejścia do głównej treści Przejdź do głównej treści Menu Menu Menu Slajder Pasek boczny (h3) Główna treść (h1) Menu Przejdź do głównej treści Menu Menu Menu Slajder Pasek boczny (h3) Główna treść (h1) Menu <body> <a href=“#glownatresc”> Przejdź do głównej treści </a> ..... <section id=“# glownatresc”> ... </section> Skip link <a href> TabIndex Unikaj używania atrybutu tabIndex, który w sposób wymuszony pozwala zmienić naturalną kolejność nawigacji przy użyciu klawiatury. tabindex Etykiety FORMULARZ REJESTRACYJNY Nazwa użytkownika np. Jan Kowalski opcjonalnie Adres e-mail* [email protected] pole wymagane Hasło* Hasło powinno zawierać min. 8 znaków pole wymagane * Wypełnienie pól oznaczonych gwiazdką (*) jest obowiązkowe Zaloguj Dostępne etykiety <label for="imie">Imię:</label> <input id="imie" type="text" /> label for = input id Grupowanie pól formularzy <fieldset> <legend> ….. </legend> … </fieldset> FORMULARZ REJESTRACYJNY <fieldset> <legend> Kontrolki formularzy <fieldset> <legend>Select your pizza toppings:</legend> <input id="ham" type="checkbox" name="toppings" value="ham"> <label for="ham">Ham</label> <br> Webaim techniques forms controls Uwaga Atrybut placeholder znacznika input nie jest równoważny z etykietą aktywnego pola. np. Jan Kowalski hasło Zaloguj label for placeholder Wymagane pola muszą być wyraźnie i zrozumiale oznaczone Specjalne instrukcje dotyczące formatowania wprowadzanych danych powinny być również dostępne dla czytników ekranu. Ważne informacje nie powinny opierać się wyłącznie na wyróżnieniu kolorem! Wymagane pola HTML 5 / ARIA HTML 5 / required <label for=„nazwisko">Imię i nazwisko:</label> <input id="nazwisko" type="text" aria-required="true" /> <label for=„nazwisko">Imię i nazwisko:</label> <input id="nazwisko" type="text" required /> REQUIRED lub ARIA Nazwa użytkownika np. Jan Kowalski opcjonalnie Adres e-mail* [email protected] pole wymagane Hasło* Hasło powinno zawierać min. 8 znaków pole wymagane Zaloguj Nieprawidłowe dane <p role="alert" id=„instrukcja1">Hasło musi składać się z minimum 8 znaków</p> role="alert„ | Ostrzeżenie Nazwa użytkownika np. Jan Kowalski opcjonalnie Adres e-mail* [email protected] pole wymagane Hasło* Hasło powinno zawierać min. 8 znaków pole wymagane Zaloguj Nawigacja wewnętrzna serwisu SKRÓTOWCE Hiperłącza (odnośniki, odsyłacze, linki) to jeden z najważniejszych elementów nawigacyjnych. Nawigacja wewnętrzna serwisu CSS .czytnik { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; } CSS | Bezpieczna metoda ukrywania treści dostępna dla czytników ekranu SKRÓTOWCE <a href="#" >Czytaj więcej<span class="czytnik">Ukryta informacja wyjaśniająca kontekst oraz przeznaczenie linku</span> </a> Nawigacja wewnętrzna serwisu ARIA <element aria-labelledby="p" ... > <element aria-label="..." /> <element aria-describedby="p" ... > Zobacz: aplikacja php Dostępne grafiki Grafiki <img src="#" alt="Minister Halicki wita nową minister cyfryzacji Annę Streżyńską”> https://mac.gov.pl/aktualnosci/a nna-strezynska-ministremcyfryzacji alt="opis alternatywny" Dekoracyjne grafiki <img src=“strzalka.png” alt=“”/> Pusty opis alternatywny Złożone Grafiki <img src=“wykres.png” aria describedby=“opis” alt=“wykres”/> <a href=“wykres_objasnienie.html” id="opis">Dane statystyczne przedstawione w formie tekstowej …</a> ARIA-DESCRIBEDBY ID Dostępne nagłówki Nagłówki <h1>1. Tytuł</h1> ... <h2>1.1. Rozdział</h2> ... <h2>1.2. Rozdział</h2> ... <h3>1.2.1. Podrozdział</h3> <h1> - <h6> Zaburzona hierarchia <h3> Rozdział</h3> ... <h2>Rozdział</h2> ... Nie duplikujemy poziomu <h1> <h1> Tytuł</h1> ... <h2>Rozdział</h2> ... <h1> Rozdział</h1> Tylko jeden nagłówek <h1> na danej podstronie Kontrast Kontrast Brak odpowiedniego kontrastu czcionek względem tła jest dużym utrudnieniem dla osób słabo widzących. Prezentacje graficzne również Interfejs użytkownika Wszystkie elementy interfejsu użytkownika oraz prezentowane treści powinny być dopracowane pod kątem zachowania przynajmniej podstawowych norm kontrastu. Przyciski, linki, aktywne pola Kryterium AA 14pt = 1.2em (120%) podstawowego rozmiaru czcionki (czyli ok. 19px) Wartość minimalna 4.5:1 (14pt) Badanie kontrastu Colour Contrast Analyser Protanopia Kolory tęczy postrzegane przez osobę cierpiącą na protanopię. Kolory tęczy widziane przez osobę bez zaburzeń postrzegania kolorów. Protanopia – wada wzroku polegająca na nierozpoznawaniu barwy czerwonej. Daltonizm Kolory tęczy postrzegane przez osobę cierpiącą na deuteranopię. Kolory tęczy widziane przez osobę bez zaburzeń postrzegania kolorów. Deuteranopia (daltonizm) – wada wzroku, ślepoty barw, polegająca na nierozpoznawaniu barwy zielonej (lub myleniu jej z barwą czerwoną). DRUPAL Reputacja Drupal ma reputację jednego z najbardziej dostępnych systemów zarządzania treścią, w zawiązku z czym jest często wykorzystywany przez administracje państwowe. Lista w języku angielskim. Łącznie ponad 1.000.000 stron internetowych wykorzystuje system Drupal. Moduły, szablony, rdzeń Drupal obsługuje standardy dostępności na wiele różnych sposobów, zarówno poprzez integrację dedykowanych modułów jak i zastosowanie natywnych funkcjonalności dostarczanych przez rdzeń systemu. Wiele różnych sposobów Społeczność Jeśli masz jakiś problem albo pomysł, którym chcesz się podzielić, to zerknij na oficjalny kanał dostępności systemu Drupal. Społeczność wspierająca dostępność systemu Drupal. Rdzeń Twórcy platformy zapewniają, że wszystkie funkcje standardowej wersji systemu Drupal (znane jako "Drupal core") są zgodne z wytycznymi WCAG 2.0. FUNDAMENT Twórcy serwisów internetowych powinni mieć na uwadze, że pomimo dużej implementacji natywnych funkcjonalności rdzenia wspierających dostępność, system nie gwarantuje w każdym przypadku pełnej dostępności. To dobry początek TAG D#AX Autorzy modułów poszerzających zakres funkcjonalności systemu Drupal mogą dodać specjalny tag D#AX, którego obecność wskazuje użytkownikom, że tak oznaczone rozszerzania wspierają standardy dostępności. Szczegółowy opis zagadnień dostępności w języku angielskim. Wybrane moduły wspierające dostępność systemu Drupal CMS. SUPERFISH Integrując zewnętrzne biblioteki (jQuery Superfish plugin) uzyskujemy możliwość wygodnego tworzenia dostępnego, wielopoziomowego sytemu nawigacji wybranego regionu strony. System dostępnej wielopoziomowej nawigacji A11Y CHECKLIST Wtyczka zawiera listę kontrolną modułów i zadań związanych z zapewnieniem dostępności w platformie Drupal. Lista kontrolna: a11y_checklist TEXTSIZE Moduł dodaje blok kontrolek pozwalający na regulację wielkości czcionek w sekcji body. Pozwól użytkownikom powiększyć czcionkę: textsize ACCESSIBLE FORMS Dzięki funkcjonalności tego modułu poprawiamy znacząco dostępność pól formularzy serwisu opartego o system Drupal. Moduł poprawia również dostępność etykiet pól informujących o błędach wynikających z nieprawidłowej walidacji. JOOMLA Solidny fundament Filozofia twórców systemu opiera się na założeniu: „Dostarczamy podstawowe narzędzia zgodne z zasadami dostępności; pełna ich implementacja zależy od Ciebie”. Dostępność w systemie Joomla CMS – Forum dyskusyjne Wspólna odpowiedzialność Dostępność w systemie Joomla znacząco zależy więc od działań programistycznych twórców szablonów oraz ich działań administracyjnych. Dostępność w systemie Joomla CMS – Forum dyskusyjne Domyślny szablon Beez3 - szablon instalowany wraz z dystrybucją systemu Joomla, spełniający większość podstawowych założeń w kwestii zapewnienia dostępnej struktury. Uwaga! W standardzie szablon nie obsługuje wielopoziomowego menu. Beez3 Joomla dla wszystkich Joomla! FAP (Joomla For All) jest dostępną dystrybucją systemu Joomla opracowaną dla włoskiego rządu, wykorzystywaną przez setki gmin, stowarzyszeń i innych jednostek publicznych. Isis Dostępny szablon administracyjny Isis - następca motywu Hathor, jednego z pierwszych dostępnych szablonów przeznaczonych dla administracji systemu Joomla. Forum Dostępnej Cyberprzestrzeni FDC – Forum Dostępnej Cyberprzestrzeni Szablon jest znakomitą propozycją dostępnego oraz wolnego oprogramowania przeznaczonego dla szerokiego grona Odbiorców. Wolne oprogramowanie Komercyjne szablony https://www.joomla-monster.com/ Moduły Repozytorium rozszerzeń wspierających dostępność dla systemu Joomla. WORDPRESS ACCESSIBILITY READY Twórcy pakietu Wordpress ułatwiają tworzenie dostępnych stron. Wystarczy stworzyć skórkę w oparciu o wymagania zamieszczone pod tym adresem . Jeśli motyw przejdzie pozytywnie audyt dostępności, społeczność Word Press przyzna jej tag „accessibility-ready". https://wordpress.org/them es/tags/accessibility-ready Przykładowy szablon Dostępne szablony WP WordPress goes WCAG https://make.wordpress.org/accessibility/2016/03/21/wordpress-goeswcag/ ACCESSIBLE DROPDOWN MENUS Accessible Dropdown Menus (ADM) to skrypt przekształcający funkcjonalność nawigacji systemu Wordpress w strukturę menu reagującą na polecenia klawiatury. Funkcjonalność wtyczki dostępna jest tuż po procesie jej instalacji. ACCESS MONITOR Wtyczka Access Monitor umożliwia badanie oraz raportowanie dostępności stron opartych o silnik systemu WordPress.Instalacja wtyczki odbywa się w sposób standardowy. Ponieważ rozszerzenie korzysta z API aplikacji zewnętrznej Tenon.io niezbędna jest autoryzacja wszelkich danych oraz kluczy API Tenon.io „A11Y Check” WP ACCESSIBILITY Wtyczka autorstwa Joe Dolsona, jednego z czołowych developerów wspierających dostępność środowiska WordPressa. Prawdopodobnie jest to jedno z najlepszych rozszerzeń poprawiających funkcjonalność w zakresie dostępności dedykowane WordPress-owi. Pełna lista funkcjonalności wtyczki . Joe Dolson WCAG 2.0 FORM FIELDS Wtyczka Gravity Forms – WCAG 2.0 form fields jest zależna od zainstalowanego rozszerzenia z pakietu premium Gravity Forms Premium | pola walidacji etykiety Źródła • Web Content Accessibility Guidelines WCAG 2.0 • Web Content Accessibility Guidelines WCAG 2.0 Autoryzowane tłumaczenie na język polski • ZAŁĄCZNIK Nr 4 - WYMAGANIA Web Content Accessibility Guidelines (WCAG 2.0) DLA SYSTEMÓW TELEINFORMATYCZNYCH W ZAKRESIE DOSTĘPNOŚCI DLA OSÓB NIEPEŁNOSPRAWNYCH • • • • • Walidatory http://validator.w3.org http://jigsaw.w3.org/css-validator http://wave.webaim.org http://tenon.io Kontrast • http://webaim.org/resources/contrastchecker • Colour Contrast Analyser Drupal Accessibility • Drupal Accessibility Statement • Drupal group on accessibility • Accessibility tools and best practices for site builders • Drupal Modules that Improve Accessibility Joomla Accessibility • Joomla Accessibility Statement Word Press Accessibility • WordPress Accessibility Statement • Joe Dolson WordPress • Joe Dolson – presentation on WordPress Accessibility • WP Accessibility plugin • Make WordPress Accessible Team • Accessible WP themes WikiDos – wiki dostępności http://imm.home.pl/wiki Znajdziesz tu: • artykuły z poradami, jak wykonać dostępne elementy interfejsu użytkownika w środowiskach JScript, PHP, C++, C#, Java, Drupal, WordPress oraz wskazówki dotyczące bibliotek, z jakich należy skorzystać, • pokazowe desktopowe aplikacje C++ i C# do pobrania i zainstalowania, internetowe aplikacje PHP i Java, demonstrujące na swoich przykładach dostępne rozwiązania i ich kod źródłowy, • prezentacje poradnikowe o tworzeniu dostępnego kodu w CMS Drupal, WordPress i Joomla, • informacje o istniejących w środowiskach developerskich, brakach, powodujących kłopoty z utworzeniem dostępnego kodu i o metodach ich pokonywania.