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.
Cześć w poprzednich lekcjach omówiliśmy już w jaki sposób
stylować wskaźnik fokusu i jakie są różne tego techniki chciałem
teraz powiedzieć jakie są pseudoklasy których możesz używać już teraz albo
których będziesz mógł używać w przyszłości gdy przeglądarki zaimplementują faktyczny algorytm
chodzi mi tutaj o focus-within i focus-visible focus-visible
niestety nie jest jeszcze wspierany w przeglądarkach mogę tylko ci powiedzieć jak on
docelowo ma działać natomiast co do focus-within możemy faktycznie zakodować
jakiś przykład z tym generalnie zostaliśmy
tutaj na tym etapie że mamy podkreślenie zrobione przez box-shadow no
i po zaznaczeniu elementu on się też świeci na zielono co możemy zrobić więcej
to dać użytkownikowi klawiatury znać bądź użytkownikowi wizualnemu
tak naprawdę na jakim elemencie obecnie się znajdujemy w jakiej sekcji
czyli jeżeli będziemy wybierali ciasto no to podświetli nam się że tutaj
robimy ciasto jeżeli robimy tutaj składniki no to będą się podświetlały składniki
i można to zrobić właśnie dzięki focus-within zrobimy
sobie tutaj dodatkowy div div o klasie
no powiedzmy container i tutaj
całą tą sekcje z toppingsami i
topping pickerem tak
dobrze zamkniemy w tym divie no
i na klasie container możemy użyć klasy focus-within
pseudoklasy focus-within focus-within działa
w ten sposób że jeżeli element wewnątrz tego kontenera będzie
miał focus czyli na przykład jeżeli sfokusujemy tutaj ten
input no to ten container możemy w tym momencie ostylować czyli
jeśli damy na container focus-within nie visible ustawimy
background na black
darker wydaje mi się że zrobiłem taką zmienną w css-ie no
to faktycznie widać że ten element się podświetlił jest teraz ciemniejszy
niż był wcześniej tak oczywiście tutaj się nam ten box-shadow zapala
poniżej ponieważ label before ma z-index na minus 1
moglibyśmy to prawdopodobnie naprawić robiąc na
pojedynczym inputcie z-index 1 zobaczmy
czy to zadziałało zadziałało nie do końca zróbmy tutaj
może na 0 na razie zobaczmy co z tego będzie ok
i działa w porządku po prostu trzeba troszkę to dostosować no i faktycznie widzimy
że jeżeli jesteśmy wewnątrz tej sekcji no to ona jest ciemniejsza niż cała reszta strony
oczywiście mogli byśmy ją innym kolorem podświetlić natomiast żeby nie było tutaj tego szumu informacyjnego
możemy to zrobić po prostu lekko ciemniejszym kolorem no i możemy taki
container oczywiście też zrobić dla pozostałych elementów czyli tutaj
do wyboru pizzy choose your dough też zrobimy
tego diva zamykamy
emoji też możemy zamknąć w ten container dlaczego nie zapisujemy
no tutaj się nam style troszkę rozjechały po
prostu podejrzewam że musielibyśmy tutaj zrobić container
text-align center no
i w tym momencie jest już taka sama sytuacja mamy tylko jednego diva więcej
co semantycznie nie wpływa zupełnie na odczyt tych informacji przez
czytnik ekranowy no i jeżeli wejdziemy do takiego diva no to on się nam podświetli możemy
nawet na kontenerze zrobić sobie jakiś padding żeby było ładniej
powiedzmy 0.5 rema no i border-radius
powiedzmy na 0.2 rema zobaczmy jak to będzie wyglądało może
troszkę ostrzejszy i może troszkę więcej tego paddingu damy jedynka i
tutaj możemy dać pół i teraz gdy wchodzimy w tą sekcje no to
faktycznie widzimy w której sekcji się znajdujemy jest to po
prostu dodatkowy wskaźnik dla użytkownika który faktycznie widzi ale
nawiguje się klawiaturą którą sekcję w tym momencie wypełniamy oczywiście jeżeli jesteśmy
na sekcji z inputami typu radio no to tutaj musimy się strzałkami nawigować
po tym jezeli jesteśmy na checkboxach no to się przez nie po prostu tabujemy więc
to jest focus-within focus-visible niestety nie jest dobrze wspierany można
go co prawda używać na mozilli z przedrostkiem moz-focusring natomiast
jest to bardzo specyficzne dla tej jednej przeglądarki ideą focus-visible
jest to że wskaźnik skupienia będzie pojawiał się tylko i wyłącznie
jeśli ktoś nawiguje się klawiaturą czyli jeśli ja bym tutaj myszką
wybrał to pepperoni no to używając klasy focus-visible
nie podświetliło by mi się tutaj to na zielono nie miałbym tego oznaczenia ponieważ
czasami nasze designy są skonstruowane w taki sposób że to się nie powinno po prostu dziać
natomiast jeżeli ktoś poruszałby się faktycznie za pomocą klawiatury no to
ten wskaźnik statusu dla fokusu byłby
zreprezentowany w tym momencie są polyfille na focus-visible
można też to zrobić własnoręcznie wykrywając po prostu w javascripcie nawigację
tabulacją ustawiając sobie na przykład klasę na body
i z keyboard navigation no i na podstawie tej klasy włączać bądź
wyłączać wskaźnik focusu focus-within natomiast jest bardzo dobrze wspierany
i generalnie nawet jeżeli nie będzie wspierany na danej przeglądarce to jest to tylko
dodatek bez tego tak czy siak nasze interfejsy
będą dostępne ponieważ możemy się nawigować i mamy zwykły wskaźnik
fokusu tak czy siak to co chciałbym żebyście wynieśli z tej lekcji jest to
że w css-ie ciągle powstają nowe standardy nowe pseudoklasy
pseudoelementy które też mają duży wpływ na accessibility i na przykład jak focus-within
czy focus-visible focus-within możecie używać już dzisiaj focus-visible być może
w przyszłości bądź za pomocą polyfilli w przeglądarce