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 powiem co nieco o językach będzie to bardzo ogólne wprowadzenie do
tego tematu no bo sieć jest bardzo dużym bytem który
jest przetłumaczony na wszystkie 40 ileś języków które mamy na świecie
w związku z czym zderzają się strony które mają sobie kilka języków na przykład
słowniki polsko-angielskie hiszpańsko angielskie polsko-hiszpańskie
czy nawet blogi techniczne na których używamy zapożyczeń z angielskiego czy
właściwości css-owych one też są po angielsku więc tak naprawdę nasze strony
są dwujęzyczne mówimy po polsku główna treść jest po polsku ale są fragmenty
treści które są nie w tym języku to co każdy element
każda strona tak naprawdę powinna mieć w sobie to jest określenie
języka w jakim jest napisana i możemy to zrobić ustawiając atrybut lang
na znacznik html no i w tym momencie będziemy
w stanie zadeklarować że nasza strona jest w języku angielskim no
i to jest akurat prawda bo to jest artykuł o przedrostkach hiszpańskich
w zależności od tego czy mówimy o rzeczy która jest zdefiniowana i znaną autorowi
czy też nie więc generalnie co się stanie jeżeli spróbujemy
odpalić screen readera na takim artykule no możemy spróbować włączymy chromevoxa
ciekawa sprawa że emoji też się czytają przez screen reader
zgodnie z ich oficjalną nazwą według specyfikacji emoji tak jest specyfikacja
emoji to nie jest wymysł apple i możemy czytać sobie tak stronę
no i to jest jakiś paragraf który zawiera w sobie zarówno treści po angielsku
jak i po hiszpańsku możemy go posłuchać
i tu już screen reader przeczytał to z akcentem angielskim definido
to nie jest słówko angielskie i nie powinno być czytane definido tylko definido
i tak samo indefinido tak bardzo po polsku a nie indefinido
to żeby screen reader czytał to w ten sposób możemy osiągnąć właśnie za pomocą zadeklarowania
języka poprzez atrybut lang możemy to zrobić
na wszystkich słówkach angielskich więc zrobimy to tutaj używając
po prostu semantycznie transparentnego spana już o tym wspomniałem że z spany
i divy są transparentne sematycznie czyli nie wnoszą żadnej informacji przez
co nie zostaną przeczytane w żaden specjalny sposób przez czytniki ekranowe natomiast
jeśli na spanie nadamy atrybut lang ustawione na s czyli
to jest akurat kod kraju dla hiszpanii i
zamkniemy go na końcu tego słowa no to de facto mówimy czytnikowi ekranowemu
że to słowo jest po hiszpańsku no i tak samo możemy zrobić z indefinido span
lang s no i zamykamy spana za
słowem no i tutaj możemy ustawić na całym blockquote
lang na hiszpański i lang
na hiszpański o przepraszam tutaj jest angielski
a tu jest drugi hiszpański zapiszemy
i zobaczmy jak teraz chromevox to czyta
jeśli nie umiecie mówić po hiszpańsku generalnie jest
to dalej przeczytane z angielskim akcentem ja też nie mówię za dobrze po hiszpańsku
ale powiedzmy że to powinno być disculpa fernando me passas
la sal por favor a nie
na pewno nie por favor w
związku z czym jaki tu jest wniosek no wniosek jest taki że niestety chromevox nie potrafi
w langa natomiast screen alternatywny dla mac os
już potrafi czyli voiceover więc tylko żeby
przedstawić jak to powinno działać włączę voiceover czyli klawisz
funkcyjny command f5
tak i to jest głos
daniela
i voiceover nam jeszcze
mówi jak nawigować się po stronie więc teraz możemy nacisnąć modyficator
voiceover z shiftem i strzałkę w dół żeby wejść do treści no i ta treść
zostanie przeczytana przez voiceover i teraz jeżeli przejdziemy do następnego elementu
nie coś nam jeszcze nie przeczytał jeszcze raz to spróbujmy
puścić
bardzo ciekawe wejdźmy tu
z jakiegoś powodu
voiceover tutaj nam tego też tego nie przeczytał pozwólcie mi tutaj zdebugować
na chwilę voiceover ok ja tutaj to szybko zdebugowałem
generalnie czasami jest tak że na mac się to zatnie i trzeba wejść w
ustawienia voiceover utility i po prostu przywrócić to do ustawień fabrycznych więc
generalnie jeżeli wrócimy tutaj do poprzedniego tekstu
tak przeczytało nam to z angielskim definitywnie akcentem no
i teraz wchodzimy na sekcję przetłumaczoną na hiszpański która tutaj ma lang
ustawiony na s
no i tu widać że wymowa jest zupełnie inna i tutaj akurat
nam przyłączyło na damski głos no i to znaczy po angielsku excuse me fernando
co po polsku
znaczy przepraszam fernando czy mógłbyś podać mi sól proszę no
i tak oczywiście możemy nawigować się po całej stronie aby sekcje które były
w języku angielskim były czytane po angielsku fragmenty tekstu które są w języku
hiszpańskim były czytane po hiszpańsku no i dowolny inny język też
powinien generalnie działać i działa na większości czytników ekranowych natomiast na chromvox
nie udało mi się tego skonfigurować tak aby działało chociaż raz więc podejrzewam że
chromevox nie ma takich uprawnień systemowych żeby dobrać się do innych głosów jeśli
wam się natomiast uda skonfigurować chromevox do tego dajcie mi proszę znać ja jestem bardzo ciekawy jak to
zrobić no i co możemy dalej z tym zrobić zamkniemy voiceover na pewno i
to jesteś też ważne że jeżeli mamy stronę w jakimś konkretnym języku no
może nam nie chcieć żeby niektóre rzeczy były translatowalne czyli google translate
może nam tłumaczyć część stron jeżeli wkleimy linka do google translate no
to wtedy faktycznie cała strona nam przetłumaczy się na język jaki chcemy ale możemy nie
chcieć żeby część rzeczy się tłumaczyła ponieważ w tym wypadku na przykład uczymy się języka
hiszpańskiego no to możemy dać atrybut translate ustawiony na no i
wtedy teoretycznie silniki które zajmują się tłumaczeniem
treści no powinny zignorować te słowa i zostawić je w języku jaki zadeklarowaliśmy
więc możemy zostawić tutaj lang s translate no i
tak samo lang s translate no nie powinniśmy dawać tego
tutaj do langa do en czyli dla całego html bo wtedy w ogóle
strona nam się nie przetłumaczy a to nie o to chodzi my chcemy po prostu mieć możliwość przetłumaczonego
artykułu który tłumaczy hiszpańskie zwroty w naszym
języku na hiszpański więc hiszpański w tym wypadku nie powinien być tłumaczony tak
samo jeżeli tworzymy blog o css no to nie chcemy tłumaczyć display
none na wyświetlacz żaden to nie ma żadnego sensu i nie będzie działał
w css więc możemy tam też dać translate no i english ustawić jako język w
atrybucie lang to jest o tyle też fajne że możemy teraz wykorzystać to w stylach
czyli możemy ostylować elementy po atrybucie ustawiając
lang na s czli wszystkie elementy które mają język hiszpański
możemy im zmieć kolor i ustawimy to na pomarańczowy
z tej palety barw którą ja wybrałem to są css custom properties zapisujemy
i widzimy już na pierwszy rzut oka które słówka są hiszpańskie i które powinny
być przeczytane w inny sposób to jest bardzo fajna rzecz polecam stylowanie
po atrybutach w ten sposób jest naprawdę super ostatnią rzeczą w kontekście języka
o której chciałem powiedzieć jest atrybut direction jak wiemy po polsku piszemy
od lewej do prawej z góry do dołu no i w większości krajów zachodnich
piszemy właśnie w ten sposób natomiast są języki które mają inny szyk
zdania na przykład arabski piszemy tam od prawej do lewej z góry na dół w chińskim
piszemy w chińskim tradycyjnym piszemy od góry do dołu z
lewej do prawej czli treści są najpierw wpisane w ten sposób później
tak później tak generalnie przeglądarka z reguły sobie z tym radzi ale
jeżeli chcemy jawnie zadeklarować w jakim języku pisana jest treść
a tak naprawdę z której strony czytać tą treść no to możemy
użyć atrybutu dir jak direction no i tutaj mamy trzy
możliwości jedna to jest auto czyli to jest ta automatyczna opcja ltr czyli left to right
czyli od lewej do prawej no i rtl
czyli od prawej do lewej dla hiszpańskiego i angielskiego będzie
to ltr ponieważ czytane od lewej do prawej i co ciekawe można tego
direction też użyć w css czyli nie musimy tego tutaj ustawiać możemy
też po prostu na o tutaj żeby nie było błędu możemy
ustawić po prostu na body direction już tutaj w pełnej
formie nie skróconej nie dir ltr no i efekt będzie generalnie
ten sam a możemy to kontrolować poziom css więc to jest naprawdę bardzo fajne co
jest ciekawe to w przypadku kiedy zmieniamy direction zmienia się też
położnie scroll bara czyli domyślnie dla języków które piszą od lewej do prawej
scroll bar znajduje się po prawej stronie natomiast jeżeli zmienimy to na rtl możemy to
podejrzeć w ogóle jak to wygląda o treść wygląda
teraz ten sposób i tutaj stylowanie nam się rozjechało ponieważ ustawiamy tutaj
border-left a tutaj już treść jest po prawej więc to też jest bardzo ciekawe
case w kontekście jakby naszych layoutów które musimy dostosowywać do takich
przypadków no i tutaj scroll bar znajdowałby się po lewej stronie nie po prawej ciekawa
sprawa polecam się tym zainteresować ale minimum które warto robić dla dostępności
w kontekście języka jest używanie atrybutu lang przede wszystkim dla całego
dokumentu no i jeśli mamy jakieś słówka które są w innym języku na
przykład te dekoracje css czy słowa które po prostu nie powinny być
tłumaczone wstawiamy tam lang z odpowiednią wartością i możemy dać
też translate na no i wtedy silniki mogą to respektować lub nie