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 tej lekcji przejdziemy do omawiania wskaźnika fokusu
wskaźnika skupienia czyli outlineu generalnie w naszym przykładzie mamy
jakąś pizzerię gdzie wybieramy sobie rodzaj ciasta składniki no i możemy kupić
sobie pizzę w poprzednich przykładach nawigowaliśmy się już za pomocą klawiatury za pomocą
taba mieliśmy tutaj taki wskaźnik niebieski który pokazywał na
którym konkretnie elemencie obecnie się znajdujemy i tym właśnie znacznikiem
jest outline on domyślnie nie jest najlepszy
jeśli chodzi o kontrast natomiast jest natywnym elementem który jest zawsze
dostępny w przeglądarkach chyba że go jawnie wyłączymy no i co się stanie
jeżeli ten outline wyłączymy outline wyłącza się za pomocą reguły
outline none jest nawet taka sławna strona która pokazuje
dlaczego nie powinno się tego robić ja to zrobię tylko na potrzebę przykładu
czyli na wszystkim co jest sfocusowane usuwamy outline none
jaki to ma wpływ na dostępność i nawigację po naszej
stronie ja zaczynam się tabować i tutaj
nie widzę co się dzieje nie widzę co się dzieje ponieważ outline jest usunięty i
jak teraz nacisnę spację to coś
tutaj o tutaj się onions zaznacza niestety
checkbox też nie jest za duży więc ja tak naprawdę na ślepo troszkę mogę
wybierać jakie składniki chcę na mojej pizzy jeżeli nie korzystam
z myszki no bo oczywiście jeżeli mam myszkę no to mogę sobie klikać natomiast dla użytkowników
którzy korzystają z klawiatury no outline none jest totalnie niedostępnym
rozwiązaniem i po prostu nie da się nawigować po stronie w ten sposób outline oczywiście
możemy customizować i czasami jest sens wyłączania outlineu natomiast
jeżeli nie dajemy jakby alternatywnego stylowania dla wskaźnika
fokusu no to to jest już błąd dostępności i często
właśnie ta reguła że usuwamy outline ze wszystkiego co ma focus jest
by default włączona w różnych css resetach czy innych arkuszach
styli które pozwalają na unifikacje tego jak przeglądarki renderują
strony to było bardzo popularne w latach 2007
kiedy faktycznie przeglądarki miały duże różnice między sobą
w kontekście renderowania internet explorer wczesne wersję firefoxa wczesne wersje
chromea bardzo różniły się od siebie oczywiście safari również no
i tego typu arkusze styli miały sens bo ujednolicały to i front-end
developerzy mogli faktycznie pracować z tym że jeżeli byśmy zobaczyli w źródła takiego
arkusza styli no to okazuje się że autor mówi że koniecznym jest
zaimplementowanie alternatywy bo to domyślnie jest
wyłączone ale nie powinno być wyłączone jeżeli faktycznie już dajemy to na produkcję
dlaczego to nie było włączane no z wielu przyczyn podejrzewam że między innymi dlatego
bo nikt nie sprawdzał jak faktycznie te css resety działają albo
po prostu jakby junior deweloperzy nie wiedzieli że coś takiego jest
i dlaczego to istnieje więc zostało to wyłączane część może być też winy
na designerach z lat właśnie 2007 którzy nie bardzo chcieli żeby
był jakiś dziwny wtedy niekoniecznie niebieski ring obramowanie
nad przyciskiem kiedy klikamy na coś myszką bo no dlaczego to tam
jest nie powinno tam tego być nie pasuje to designu zwłaszcza w czasach kiedy coś miało
być pixel perfect to bardzo mogło być tego wynikiem generalnie
domyślnie outline tak czy siak nie jest najlepszy jeżeli chodzi o dostępność
bo na wielu stronach które mają na przykład niebieskie
tło no to ten outline nie będzie widoczny ja jestem zwolennikiem aby dostosować outline
do potrzeb naszej witryny czyli możemy to teraz sobie tutaj zrobić na zasadzie
takiej że ustawimy że jeżeli input ma
na sobie focus czyli ten na przykład element no to złapiemy
następny element który jest obok niego w tym wypadku jest to label no
i możemy go w tym momencie ostylować tak dla testów możemy nie wiem zmienić mu kolor
powiedzmy na niebieski zapisujemy
no i jak tutaj sfokusujemy ten element mu to faktycznie widać że
wszystko na czym mamy focus teraz ma niebieski tekst czyli
niekoniecznie musimy stylować wskaźnik skupienia tylko i wyłącznie
na elemencie który ma ten focus tylko możemy się odnosić do innych elementów
które są obok niego no i zamiast robić tutaj kolor możemy zrobić po prostu outline
outline powiedzmy ustawione na 3
piksele styl solid stylujemy to tak samo jak stylujemy border
no i na zwykłym inputcie możemy
ten outline usunąć bo już mamy go na labelce nie
jest to do końca idealne no bo ja bym chciał żeby tutaj ten checkbox
też był zawarty w tej labelce możemy to oczywiście ostylować robimy
to na zasadzie że stylujemy każde li jako position relative
no i każdą labelkę jako
position absolute ustawione na width
100% height 100%
zobaczmy co się stanie no oczywiście to tam się nam troszkę rozjechało
ze względu na to że wtedy element nie ma już jakby
rodzic z tej labelki i tego checkboxa czyli li nie ma
już tej treści pepperoni no i to się troszkę tutaj rozjeżdża więc zamiast robić label
można zrobić label before czyli pseudo element i
w tym momencie jak będziemy coś fokusować no to musimy jeszcze oczywiście dać tutaj
content czyli treść tego pseudo elementu żeby on się w ogóle mógł pokazać i
display inline-block i w tym momencie jest
już troszkę lepiej on jest dalej trochę przesunięty więc możemy tutaj jeszcze ustawić left
na 0 no i w tym momencie jest już naprawdę całkiem nieźle możemy
oczywiście zrobić jeszcze top na 0 i wtedy mamy ładny kwadrat
który łapie nam zarówno checkbox jak i labelkę więc jest jakby lepszym
outlinem niż ten domyślny tylko i wyłącznie na checkbox no
i też nie mamy standardowego koloru tylko właśnie nasz niebieski
który będzie na pewno miał dobry kontrast w odniesieniu do tego jaki jest design
naszej strony jaką mamy paletę barw i jakie jest jego tło jeśli
chodzi o outline none nie jest to reguła której powinniście unikać jak ognia
jeżeli dajecie alternatywne stylowanie jeżeli
nie zamierzacie dawać alternatywnego stylowania zostawcie outline tak jak jest natomiast
w samym sobie outline none nie ma nic złego jeżeli faktycznie
troszczymy sie o użytkownika i damy alternatywę według specyfikacji nie
powinniśmy stylować po niczym innymi niż po outline ponieważ czytniki ekranowe
czy inne narzędzia systemowe mogą zmieniać kolor outlineu wedle
preferencji użytkownika z tym że nie ma jako takich implementacji
z tego co wiem które by korzystały z tego rozwiązania a nawet jeżeli użytkownik
mógłby zdefiniować sobie kolor który chce mieć na outline no to tak czy siak
na niektórych stronach będzie spotykał się z problemem kontrastu ponieważ będzie jedno
generyczne rozwiązanie zamiast dostosowanego do pojedynczej strony www outline
jest tylko jednym z możliwości stylowania wskaźnika fokusu
w następnych lekcjach opowiem ci troszkę o innych opowiem ci też o wadach
tego rozwiązania a póki co proszę cię tylko abyś pamiętał aby
zawsze jakikolwiek wskaźnik stylowania dostarczać na swoich dostępnych
stronach www