Dostępność stron WWW
3 godz. 32 min · HTML i CSS · Full-stack i Programowanie
Wojciech PołowniakSr. Fullstack EngineerHTML został wynaleziony już w 1989 roku i jest on podstawą tworzenia stron internetowych do dziś. W ciągu ponad 30 lat społeczność programistów tworzących strony internetowe odkrywała coraz to nowe problemy w tworzeniu treści pod unikalne medium jakim jest internet. Jednak na przełomie dekad społeczność zdaje się zapominać o pierwotnych założeniach sieci - treści dostępnych dla każdego. W czasach gdy nowe JavaScriptowe frameworki stawiają... developer experience ponad user experience, paradoksalnie - jest coraz mniej stron internetowych, które są szybkie oraz dostępne dla szerokiej grupy odbiorców.
Dostępność w tym kontekście to tworzenie rozwiązań, z których korzystać może każdy - niezależnie od tego czy zapomniał słuchawek, niedowidzi, zepsuła mu się myszka czy mówi w innym języku. To także troska o użytkownika bez względu na jego potencjalne ograniczenia. Przekłada się to bezpośrednio na ilość osób, które mogą skorzystać z Twojej strony WWW. To właśnie przedstawimy Ci w tym kursie - poznasz techniki tworzenia stron internetowych, które z założenia dbają o użytkownika i pozostawiają kontrolę w jego rękach. Dowiesz się też jaki ma to wpływ dla biznesu czy Ciebie - jako użytkownika sieci.
Troska o użytkownika to dobry User Experience - co z kolei tworzy przywiązanie do produktu. Ale mniej oczywistymi aspektami dostępności jest wpływ na pozycjonowanie stron internetowych. Poprzez korzystanie z semantycznych znaczników i jawne wyrażanie treści poprzez markup możemy - jako przyjemny efekt uboczny - wpłynąć na silniki wyszukiwarek internetowych, by pojawiać się w wynikach wyżej niż dotychczas.
Niestety, łatwo jest tworzyć strony niedostępne - głównie ze względu na niewiedzę. W kursie zrozumiesz najczęściej popełniane błędy dostępności, przez które Twoje treści mogą nie docierać do Twoich potencjalnych użytkowników, oraz dowiesz się jak tworzyć te same rozwiązania w sposób dostępny.
Jesteś znudzony tym, co oferuje Front-End? Każdy framework brzmi jak koło wynajdywane na nowo? Wątek dostępności to zupełnie nowy poziom postrzegania produktu i pracy na rzecz użytkownika. Ilość potencjalnych przypadków do rozwiązania, jeśli chodzi o formę konsumpcji treści przez użytkownika, jest ogromna - możesz ponownie rozpalić swoje zainteresowanie web developmentem!
Aby móc efektywnie skorzystać z tego kursu, potrzebujesz podstawowej wiedzy na temat HTML i CSS. Przyda się również znajomość języka angielskiego, ale nie jest to obowiązkowe, pojedyncze zwroty są tłumaczone na bieżąco.
W tej lekcji opowiem troszkę o ikonkach no
i jak stworzyć je w sposób dostępny ikony są świetne jako
wymowny przekaźnik informacji który nie
wymaga jakby dużo tekstu i może być rozumiany w
wielu językach ze względu na to że są to ikony są to
znaki graficzne no i jesteśmy w stanie je zrozumieć w większości przypadków
bez większego problemu natomiast zdarzają się sytuację że zostawienie
ikonki samej w sobie jako interaktywny element będzie
niewystarczające w kontekście accessibility ponieważ nie będziemy pewni co
konkretnie te elementy mają robić i jaka jest ich funkcja na
przykład tutaj w tym przykładzie mamy jakiś domek więc podejrzewam że jest to homepage
strona domowa jakiś znak nie wiem może to jest odświeżenie
strony może to jest synchronizacja danych jeżeli to jest aplikacja mamy
księżyc co może być trybem nie przeszkadzać w
systemie operacyjnym albo może być trybem nocnym ciężko
powiedzieć no i telefon który może być albo jakby
czymś co faktycznie wybierze nam numer telefonu bądź po
prostu sekcją do kontaktu no i w takich sytuacjach jeżeli mamy moment
że faktycznie użytkownik nie jest zapoznany z naszym produktem no
to dobrze jest zaproponować również etykiety dla ikon
o etykietach już troszkę mówiłem natomiast etykiety dla ikon jest
to coś co robi się dosyć rzadko a szkoda bo jest to bardzo dobra funkcja dostępności
i tak naprawdę jest na nią miejsce jeżeli się o tym pomyśli
wcześniej to na etapie projektowania mockup design można
znaleźć spokojnie miejsce pod każdą ikonkę jeżeli chcemy być bardziej dostępni więc no
możemy zerknąć sobie w markup i dowiedzieć się co te elementy
powinny tak naprawdę robić widzimy że to jest faktycznie strona główna ta ikonka
jest to strona główna jeśli chodzi o tutaj
no to widać że jest to js-reload więc prawdopodobnie jest to po prostu refresh
naszej aplikacji być może z jakiegoś powodu link do
roota nie działa i musimy to zrobić jako tego typu button może to
być też odświerzenie sekcji konkretnej nie musi to być całej strony no zależy
no i widzimy że tutaj jest js-invert więc
ja podejrzewam że to jest dark mode a nie tryb nie przeszkadzać no
i widzimy że tutaj jest telefon numer telefonu na który możemy zadzwonić
więc jest to faktycznie link więc to jest nie tyle contact
us co faktycznie call us prawdopodobnie więc spróbujmy stworzyć
tego typu labelki co ciekawe akurat w tym przypadku jesteśmy
w stanie ominąć element label ponieważ wszystkie ikonki
mają jakby swój element niektóre to linki niektóre to buttony i
wewnątrz nich możemy napisać tekst który odpowiada za opis
tego co się dzieje za nimi jaka jest za nimi akcja więc wpiszmy sobie tutaj po
prostu homepage zapiszemy i oczywiście to jest już wszystko
ostylowane jeżeli jesteście zainteresowani jak to jest ostylowanie możecie tutaj wejść
w base.css tutaj są też custom properties css
generalnie do każdego przykładu są tego typu pliki
więc możemy stworzyć sobie homepage wiemy że tutaj jest
reload więc możemy dać reload data powiedzmy
i wszystko ładnie się układa może to reload data nie więc zostawimy
samo reload oczywiście moglibyśmy to po prostu zaadresować w css tutaj
wpiszemy dark mode i tutaj wpiszemy call us
no i w porównaniu do tego co było przed chwilą czyli
takiego stanu że możemy sobie tutaj teraz to podejrzeć no
to fakt że mamy te etykietki jest o wiele
bardziej wymowne ja na pierwszy rzut oka wiem o co tutaj chodzi w przypadku
gdy były tutaj same ikony nie byłem tego pewien więc polecam to robić zwłaszcza
że jest na to miejsce możemy nawet zrobić to naprawdę malutkim tekstem który niekoniecznie
musi już spełniać wszystkie wymogi dotyczące rozmiaru
tekstu bo jest to dodatkowa informacja której wcześniej nie mielibyśmy tam więc
warto to w ten sposób zainwestować a w międzyczasie możemy tak dla sportu zaimplementować
prosty dark mode w kilku linijkach css
i javascript ponieważ możliwość przełączania motywu między jasnym a
ciemnym jest też bardzo ważnym aspektem accessibility ponieważ to że jeżeli
wchodzimy w przeglądarkę wieczorem i dostajemy białym światłem
na naszą twarz nie jest dobre dla naszego snu i generalnie
dla naszego wzroku jest dużo badań na ten temat ja te linki
zostawię w odpowiedniej sekcji pod kursem więc zaimplementujemy to na szybko
i stworzymy sobie po prostu queryselector pobierzemy
sobie tutaj tą klasę js-invert i na nim dodamy addeventlistener
oczywiście moglibyśmy zrobić tutaj jakiś eventdelegation czy inne
techniki jeżeli chodzi o performance i optymalizację javascriptu natomiast
nie jest o tym ten kurs no i zrobimy po prostu tutaj na tym
elemencie na eventtarget classlist
toggle czyli przełączamy obecność pewnej
klasy tylko może nie na samym targecie czyli nie na klikniętym elemencie
tylko na dokument body i
możemy dać klasę inverted domyślnie jej nie ma więc
tak nawet gdy będziemy klikać ten dark mood to nic się nie będzie działo konkretnego
ale jeśli damy tutaj klasę inverted no
to możemy zrobić filter invert
podając w parametrze jedynkę czyli 100% czyli cały kolor zostanie odwrócony
zapiszemy zobaczmy co się stanie i faktycznie coś
się odwróciło ale to tło niekoniecznie ponieważ ustawiamy
to na body no to możemy tutaj wstawić jeszcze background na
kolor białe ja tutaj użyję właśnie tych custom properties o których
wcześniej mówiłem mam zadeklarowaną zmienną white i
ona odpowiada po prostu kolorowi white w css zapisujemy no
i teraz przy kliknięciu dark mode faktycznie przełącza nam się
motyw strony jest to jak widzicie trzy
linijki javascriptu można byłoby to zciśnić w jeszcze mniejsze ilości jedna
klasa i mamy bardzo prymitywny bo prymitywny ale
dark mode na naszej stronie ostatnią rzeczą którą warto tutaj nadnienić jest to że
jeżeli mamy elementy nawigacyjne bądź interaktywne które
coś przełączają to warto byłoby tutaj zmieniać tą treść czyli
jeżeli mamy teraz tryb jasny no to mogłoby się tutaj zrobić tu
mógłby być księżyc i napis dark mode natomiast jak jesteśmy w trybie dark mode
to mogłoby być tutaj słoneczko i napisane light mode więc etykiety
dla ikonek jak najbardziej fajna acccessibility praktyka dark
mode też fajna rzecz no i oczywiście korzystanie z odpowiednich
atrybutów i znaczników semantycznych aby to wszystko było
dobrze czytane przez czytniki ekranowe