od Podstaw
4 godz. 7 min · HTML i CSS · Full-stack i Programowanie
Wojciech PołowniakSr. Fullstack EngineerFlexbox nie jest trudny - pod warunkiem, że rozumiemy dlaczego elementy renderują się w konkretny sposób. Do tego potrzebna jest szczegółowa wiedza o osiach flexboxa, o tym jak ustalane są ich kierunki i jak elementy będą układać się wzdłuż nich.Dopiero wtedy dobrze można zrozumieć jak działa rozszerzanie i kurczenie elementów, jak elementy będą zachowywać się przy zmianie rozmiaru okna przeglądarki czy przy przełączaniu wyświetlania z układu wierszy na kolumnowy. To wszystko oraz kilka innych mechanizmów ukrytych we Flexboxie znajdziesz dokładnie wyjaśnione w tym kursie - podgląd przykładów czy dodatkowe quizy po zakończeniu kursu pomogą w utrwaleniu zdobytej wiedzy.
Wielu developerów nie jest świadomych, że korzystanie z niektórych właściwości Flexboxa wpływa na dostępność naszych stron WWW - dostosowywanie naszych witryn pod czytniki ekranowe oraz użytkowników korzystających z witryn w sposób niestandardowy to temat który zyskuje na coraz większej popularności (zwłaszcza, jeśli planujesz kiedyś tworzyć strony rządowe - te są zobligowane do tworzenia stron dostępnych dla osób niepełnosprawnych).W tym kursie, dowiesz się jakie problemy może nieść za sobą używanie flexboxa i jak ich unikać.
Kurs ten jest dla wszystkich osób, które dobrze czują się z CSS - wystarczy podstawowa umiejętność pisania selektorów. Nie ma żadnych wymagań dotyczących JavaScript, czy znajomości konkretnych frameworków. Natomiast jeśli do tej pory korzystałeś/aś z innych, starszych technologii do pozycjonowania elementów i chcesz nauczyć się prostszej, dobrze wspieranej współczesnej technologii - nie trać czasu! Flexbox to idealne wprowadzenie do kolejnych sposobów pozycjonowania jak np. CSS Grid.
Cześć witam cię w kolejnej lekcji z kursu flexbox od
podstaw i w końcu opowiem ci troszkę o tych problemach związanych z dostępnością
o których wspominałem niejednokrotnie w poprzednich lekcjach ale
zanim przejdę do faktycznego przedstawiania problemów i zaproponowania ci
rozwiązania jak ich uniknąć chciałbym ci powiedzieć o
co w tej dostępności tak naprawdę chodzi pojęcie dostępność najczęściej odnosi się do
użytkowników czytników ekranowych czyli zarówno osób
niewidomych jak i osób które znajdują się w spektrum niedowidzenia
które korzystają z dodatkowego oprogramowanie które przedstawia to
co użytkownik mógłby zobaczyć na ekranie natomiast nie
tylko osoby niewidome korzystają z czytników ekranowych korzystają z nich również osoby
które mają różne problemy poznawcze i screen reader
po prostu uzupełnia te informacje poprzez informacje głosowe lecz poza
czytnikami ekranowymi pojęcie dostępności można uprościć do
dostosowywania naszych stron tak aby były dostępne dla
jak najszerszej grupy odbiorców włączając to na przykład użytkowników
którzy korzystają z klawiatury by nawigować się po stronach
nawet bez wsparcia się czytnikami ekranowymi ja
tutaj zmodyfikowałem troszkę nasz przykład i w tym momencie wszystkie
nasze karty są zarówno minkami mają odnośniki
do konkretnych nagłówków poprzez używanie tak zwanych
kotwiczek po polsku no i mają dodatkową informacje dla czytników ekranowych
atrybuty area jest to bardzo szeroki temat i tego nie
będę w tej konkretnej lekcji poruszał natomiast jeśli chciałbyś się dowiedzieć
jak uzupełniać swój markup stron www to
atrybuty area to jest słowo kluczowe po którym powinieneś szukać dodatkowych informacji no
i jako że to są już te linki to my będziemy mogli się po nich nawigować
oczywiście jako użytkownicy którzy widzą stronę www
możemy po prostu w odnośnik kliknąć najczęściej widzimy
że dany element html jest odnośnikiem poprzez fakt
że widzimy że nasz kursor zmienił styl i w tym momencie jest
wskaźnikiem czyli ma kursor pointer ustawiony no i dodatkowo niektóre przeglądarki
tak jak tutaj google chrome na samym dole viewport'u
w lewym dolnym rogu pokazuje nam adres tego odnośnika oczywiście
jeśli klikniemy teraz w te odnośniki to nie zobaczymy żadnej różnicy ponieważ są to kotwiczki te linki
nas faktycznie nie nawigują nigdzie bo nie mamy żadnych nagłówków na tej stronie
ale jako że już są to linki to my możemy się po
nich nawigować również za pomocą klawiatury aby nawigować się po elementach formularzy
nawigacyjnych polach tekstowych możemy używać klawisza tab i
jak widzisz tutaj nam się ustawiło coś co nazywa się outline
i po prostu to wskazuje który element ma obecnie
focus na którym elemencie się znajdujemy jeżeli nawigujemy się klawiaturą no
i możemy sobie tabować po naszych kartach shift tab pozwoli cofnąć
się do poprzedniego odnośnika tab pozwoli nawigować się do następnego no
i teraz jak użytkownik który posługuje się klawiaturą będzie widział
naszą stronę jeśli będziemy korzystali z flexboxa w sposób
nierozważny bądź używali jego feature'ów na siłę to znaczy tam gdzie nie ma
potrzeby ich używania ale chcemy go użyć bo flexbox takie możliwości nam daje
więc ja tutaj zmienię jedną rzecz w naszych
regułach powiązanych z flexboxem zmienię flex-direction na row-reverse i jak
widzisz w tym momencie karty ułożone są od
prawej do lewej ponieważ tak ustawiły nam się osie flexboxa
i my jako użytkownicy widzący spodziewamy się że
ewentualna nawigacja o takich odnośnikach
będzie dalej odbywała się z lewej do prawej czyli najpierw możemy sobie
kliknąć odnośnik numer 3 później w odnośnik numer 2 itd ponieważ
tak myślimy kiedy widzimy tego typu layout natomiast jeśli teraz
spróbujemy nawigować się za pomocą klawiatury ja naciskam
w tym momencie tab więc nawiguje
się do kolejnego linku nawigacyjnego to zobacz że nie zaznaczyła się
karta numer 2 tylko karta numer 4 dlaczego tak się stało ponieważ
nawigacja klawiaturą bądź generalnie zarządzanie focusem
w przeglądarce odbywa się na podstawie markup'u a
nie tego jak dany element jest wizualnie reprezentowany za pomocą
css'a i w tym przypadku flexboxa czyli my
tabując się po stronie będziemy dalej tabowali
się od jedynki czyli teraz naciskam tab idę do przodu jest dwójka naciskam tab
idę do przodu jest trójka i tak dalej mamy rozbieżność
między tym co jest zadeklarowane w naszym kodzie
html a tym jak jest to prezentowane dla użytkownika i my jako użytkownicy widzący
bądź widzący w jakimkolwiek stopniu możemy się mocno zdziwić jeżeli
zaczynając nawigację po stronie zaczniemy nie od lewej górnej krawędzi
ekranu tylko od prawej górnej skomplikujmy jeszcze troszkę
nasz przykład i zamiast flex-direction row-reverse
ustawimy colonumn reverse dodatkowo
ja usunę w tym momencie numery tych kart które ustawiliśmy za pomocą css counters
po prostu nadpiszę je pustym stringiem i teraz jak
spodziewalibyśmy się że nawigacja po tej stronie będzie się odbywać ja
teraz robię nawigację do przodu i pojawiamy się na
karcie zielonej można byłoby się spodziewać że focus przeskoczy
nam na kartę czerwoną bądź żółtą a my w tym w przeskoczyliśmy na
kartę zieloną jeśli będziemy tabować dalej no to już w
tym momencie widać dlaczego tak to wygląda ponieważ ma ustawione column reverse
czyli elementy układają się od góry do dołu i
domyślne zawijanie jest w kierunku prawym więc tak naprawdę tak
będzie wyglądała ta nawigacja przy pomocy klawiatury natomiast
użytkownik który nie spróbuje nie będzie tego
wiedział czyli nasi użytkownicy mogą być w lekkim szoku zanim
zorientują się o co w danej stronie chodzi a w przypadku jeżeli tworzymy sklepy
internetowe i uwaga użytkownika jest krytyczna aby
zarabiać faktycznie pieniądze może to nam doprowadzić do naprawdę wielu strat
według raportu z 2016 roku ponad 1800 tysięcy
osób w polsce zadeklarowało jakiś
stopień niedowidzenia to znaczy że ignorując aspekt
dostępności stron www ignorujemy w samej polsce miasto
rozmiarów warszawy gdzie są to nasi potencjalni klienci w tym
kursie na pewno znajdziesz odpowiednie linki dzięki którym będziesz mógł poszerzyć
dane zagadnienie jeżeli cię faktycznie zainteresują to wszystko w tej lekcji
do usłyszenia