Audio
- Zbuduj swoje media z myślą o dostępności! O wiele łatwiej jest pracować z dostępnością na początku, niż próbować włączyć ją później. Odnosi się to do wszystkich komponentów, ale szczególnie do komponentów multimedialnych.
- Upewnij się, że twój odtwarzacz jest dostępny i zawiera kontrolki do wstrzymywania, zatrzymywania i odtwarzania mediów.
- Nie odtwarzaj automatycznie plików multimedialnych. Może to powodować zarówno zamieszanie, jak i irytację.
- Upewnij się, że media mają alternatywne metody dotarcia do treści. Na przykład, dodaj transkrypcje plików audio.
Nie bez powodu jest mnóstwo wytycznych WCAG dotyczących mediów na stronach internetowych... jest wiele czynników, które należy wziąć pod uwagę. Nie daj się jednak przestraszyć, jest też kilka łatwych zwycięstw. Samo uwzględnienie alternatyw dla prezentowanych mediów (np. transkrypcja filmu) to połowa sukcesu.
Zasoby
Wytyczne WCAG 2.1
1.1.1 Treść nietekstowa - Wszelkie treści nietekstowe przedstawione użytkownikowi posiadają swoją tekstową alternatywę, która pełni tę samą funkcję, z kilkoma wyjątkami. (Poziom A)
1.2.1 Tylko audio lub tylko wideo (nagranie) - Alternatywa dla audio: Zapewniona jest alternatywa tekstowa dla nagrań dźwiękowych przedstawiająca tę samą treść, co nagranie audio. (Poziom A)
1.2.2 Napisy rozszerzone - Do wszystkich nagrań audio w multimediach zsynchronizowanych (dźwięk i obraz), z wyjątkiem sytuacji, kiedy są one alternatywami dla tekstu i w taki sposób są oznaczone, zapewnione są napisy rozszerzone. (Poziom A)
1.2.3 Audiodeskrypcja lub alternatywa tekstowa dla mediów (nagranie) - Zapewniona jest alternatywa dla multimediów lub audiodeskrypcja dla nagrań wideo w multimediach zsynchronizowanych (dźwięk i obraz), z wyjątkiem sytuacji, kiedy są one alternatywami dla tekstu i w taki sposób są oznaczone. (Poziom A)
1.2.6 Język migowy (nagranie) - Zapewnione jest tłumaczenie w języku migowym wszystkich nagrań audio w multimediach zsynchronizowanych (dźwięk i obraz). (Poziom AAA)
<section class="audio-section">
<div class="audio">
<audio src="assets/test.mp3" controls>
<p>Twój program użytkownika nie obsługuje elementu HTML5 Audio.</p>
</audio>
</div>
</section>
Skopiowane!
Galeria obrazów
- Każdy
<img>
, który dodasz do swojej strony musi mieć atrybut alt. Jeśli obrazek jest informacyjny, wpisz walt
tekst z treścią równoważną obrazowi. - Unikaj używania ogólnych słów, takich jak „zdjęcie”, „obrazek” lub „ikona” jako fragmentu wartości
alt
, ponieważ nie przekazują one użytkownikowi cennych treści. Bądź możliwie jak najbardziej opisowy.
Uwaga: używamy losowo wygenerowanego wypełniacza obrazu, więc `alt` tekst nie jest tak opisowy, jak mógłby być... zrób swoje RZECZYWISTE obrazy bardziej opisowe!
Wytyczne WCAG 2.1
1.1.1 Treść nietekstowa - Wszelkie treści nietekstowe przedstawione użytkownikowi posiadają swoją tekstową alternatywę, która pełni tę samą funkcję, z kilkoma wyjątkami. (Poziom A)
Uwaga: Jeśli zawartość nietekstowa jest czystą dekoracją, jest używana tylko do formatowania wizualnego, lub nie jest prezentowana użytkownikom, to nie potrzebuje alternatyw tekstowych.
<section class="image-gallery-section">
<div class="image-gallery">
<div class="square"><img src="https://www.placecage.com/300/300" alt="losowo wygenerowany obraz słynnego Nic Cage"></div>
<div class="square"><img src="https://www.fillmurray.com/300/300" alt="losowo wygenerowany obraz Bill Murray"></div>
<div class="square"><img src="https://www.placecage.com/300/300" alt="losowo wygenerowany obraz słynnego Nic Cage"></div>
<div class="square"><img src="https://www.fillmurray.com/300/300" alt="losowo wygenerowany obraz bajecznego Bill Murray"></div>
<div class="square"><img src="https://www.placecage.com/300/300" alt="losowo wygenerowany obraz słynnego Nic Cage"></div>
<div class="square"><img src="https://www.fillmurray.com/300/300" alt="losowo wygenerowany obraz bajecznego Bill Murray"></div>
<div class="square"><img src="https://www.placecage.com/300/300" alt="losowo wygenerowany obraz słynnego Nic Cage"></div>
<div class="square"><img src="https://www.fillmurray.com/300/300" alt="losowo wygenerowany obraz bajecznego Bill Murray"></div>
<div class="square"><img src="https://www.placecage.com/300/300" alt="losowo wygenerowany obraz słynnego Nic Cage"></div>
<div class="square"><img src="https://www.fillmurray.com/300/300" alt="losowo wygenerowany obraz bajecznego Bill Murray"></div>
<div class="square"><img src="https://www.placecage.com/300/300" alt="losowo wygenerowany obraz słynnego Nic Cage"></div>
<div class="square"><img src="https://www.fillmurray.com/300/300" alt="losowo wygenerowany obraz bajecznego Bill Murray"></div>
</div>
</section>
Skopiowane!
Obrazy
- Każdy
<img>
, który dodasz do swojej strony musi mieć atrybut alt. Jeśli obrazek jest informacyjny, wpisz walt
tekst z treścią równoważną obrazowi. - Jeśli obrazek jest dekoracyjny lub lub zbędny w stosunku do ilustrowanego tekstu, ustaw
alt=""
, aby przekazać użytkownikom technologii wspomagającej, że obrazek nie jest potrzebny do zrozumienia strony. - Unikaj używania ogólnych słów, takich jak „zdjęcie”, „obrazek” lub „ikona” jako fragmentu wartości
alt
, ponieważ nie przekazują one użytkownikowi cennych treści. Bądź możliwie jak najbardziej opisowy. - Upewnij się, że każdy tekst na obrazkach z tekstem ma co najmniej 14 punktów i ma dobry kontrast z tłem.
Wytyczne WCAG 2.1
1.1.1 Treść nietekstowa - Wszelkie treści nietekstowe przedstawione użytkownikowi posiadają swoją tekstową alternatywę, która pełni tę samą funkcję, z kilkoma wyjątkami. (Poziom A)
Uwaga: Jeśli zawartość nietekstowa jest czystą dekoracją, jest używana tylko do formatowania wizualnego, lub nie jest prezentowana użytkownikom, to nie potrzebuje alternatyw tekstowych.
1.4.3 Kontrast (minimalny) - Wizualna prezentacja tekstu lub obrazu tekstu posiada współczynnik kontrastu wynoszący przynajmniej 4.5:1, poza kilkoma wyjątkami (Poziom AA)
1.4.5 Obrazy tekstu - Jeśli wykorzystywane technologie mogą przedstawiać treść wizualnie, do przekazywania informacji wykorzystuje się tekst, a nie obraz tekstu, z kilkoma wyjątkami (Poziom AA)
1.4.11 Kontrast elementów nietekstowych - Wizualna prezentacja następujących elementów ma współczynnik kontrastu co najmniej 3:1 względem sąsiednich kolorów (Poziom AA)
<section class="images-section">
<div class="images"><img src="assets/snail.jpg" alt="Mały, różowy ślimak spoczywający na szarym muszlimaku z zielonym mchem w tle">
</div>
</section>
Skopiowane!
Logo serwisu
- Każdy
<img>
, który dodasz do swojej strony musi mieć atrybut alt. Jeśli obrazek jest informacyjny, wpisz walt
tekst z treścią równoważną obrazowi. - Unikaj używania ogólnych słów, takich jak „zdjęcie”, „obrazek” lub „ikona” jako fragmentu wartości
alt
, ponieważ nie przekazują one użytkownikowi cennych treści. Bądź możliwie jak najbardziej opisowy. - Upewnij się, że każdy tekst na obrazkach z tekstem ma co najmniej 14 punktów i ma dobry kontrast z tłem.
- Używając obrazów jako łączy, zastanów się, w jaki sposób tekst
alt
zostanie odczytany użytkownikom technologii wspomagających. Poniższe przykłady przedstawiają odpowiedni tekstalt
dla logo, gdy jest używane jako łącze lub jako samodzielny zasób obrazu.
Zasoby
Wytyczne WCAG 2.1
1.1.1 Treść nietekstowa - Wszelkie treści nietekstowe przedstawione użytkownikowi posiadają swoją tekstową alternatywę, która pełni tę samą funkcję, z kilkoma wyjątkami. (Poziom A)
Uwaga: Jeśli zawartość nietekstowa jest czystą dekoracją, jest używana tylko do formatowania wizualnego, lub nie jest prezentowana użytkownikom, to nie potrzebuje alternatyw tekstowych.
1.4.3 Kontrast (minimalny) - Wizualna prezentacja tekstu lub obrazu tekstu posiada współczynnik kontrastu wynoszący przynajmniej 4.5:1, poza kilkoma wyjątkami (Poziom AA)
1.4.5 Obrazy tekstu - Jeśli wykorzystywane technologie mogą przedstawiać treść wizualnie, do przekazywania informacji wykorzystuje się tekst, a nie obraz tekstu, z kilkoma wyjątkami. (Poziom AA)
2.4.4 Cel łącza (w kontekście) - Cel każdego łącza może wynikać z samej treści łącza lub z treści tekstu powiązanego z kontekstem łącza określonym programowo, poza tymi przypadkami, kiedy cel łącza i tak byłby niejasny dla użytkowników. (Poziom A)
Przykład #1: Logo jako łącze
Przykład #2: Logo jako łącze z widocznym tekstem łącza
Przykład #3: Logo jako PNG
Przykład #4: Logo jako SVG
Przewodnik stylów dostępności
<section class="site-logo-section">
<h3>Przykład #1: Logo jako łącze</h3>
<div class="site-logo">
<a href="#">
<img src="assets/blueicon.jpg" alt="Projekt ikony dostępności">
</a>
</div>
<div class="break"></div>
<h3>Przykład #2: Logo jako łącze z widocznym tekstem łącza</h3>
<div class="site-logo">
<a href="#">
<img src="assets/a11ylogo.png" alt="">
<p>Projekt ikony dostępności</p>
</a>
</div>
<div class="break"></div>
<h3>Przykład #3: Logo jako PNG</h3>
<div class="site-logo">
<img src="assets/site-logo.png" alt="Logo Pracowni Dostępności Cyfrowej LepszyWeb.pl. Napis: Przewodnik po stylach">
</div>
<div class="break"></div>
<h3>Przykład #4: Logo jako SVG</h3>
<div class="site-logo">
<svg aria-labelledby="logo-title description" id="site_logo" data-name="site logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 841.89 595.28"><defs></defs><style id="style1840" type="text/css">.st0{fill:#7E4795;} .st1{fill:#F08319;}.st2{fill:#DF1465;}.st3{fill:#177784;}.st4{fill:#7E4796;}</style></defs><title id="logo-title">Poradnik stylu LepszyWeb</title><desc id="description">Logo Pracowni Dostępności Cyfrowej LepszyWeb.pl. Napis: Przewodnik po stylach</desc><style type="text/css">.st0{fill:#7E4795;}.st1{fill:#F08319;} .st2{fill:#DF1465;}.st3{fill:#177784;}.st4{fill:#7E4796;}</style><g transform="matrix(1.0491 0 0 1.0491 -40.217 -16.985)"><g transform="translate(15.587 -54.541)"><path class="st0" d="m454.1 178.48c6.09 1.28 12.16 2.65 17.97 4.96 23.65 9.39 40.51 25.82 50.53 49.16 5.73 13.35-2.95 27.59-17.41 28.99-8.55 0.83-16.97-4.31-20.64-12.82-3.64-8.43-9.01-15.45-16.48-20.8-28.53-20.46-68.6-4.76-75.78 29.67-5.63 27.01 13.28 53.84 40.56 57.54 22.36 3.03 42.58-8.48 51.7-29.43 5.84-13.4 22.38-17.14 33.1-7.48 6.62 5.96 8.68 15.43 4.86 23.95-13.39 29.81-36.08 48.13-68.36 53.64-48.11 8.21-94.12-24.54-102.76-72.61-1.35-7.5-1.57-15.04-1.28-22.62 0.08-0.29 0.2-0.57 0.22-0.86 0.44-6.42 1.76-12.67 3.61-18.82 2.57-8.6 6.6-16.49 11.39-24.02 0.27-0.16 0.39-0.39 0.3-0.7l-0.03 0.02c0.43-0.02 0.6-0.38 0.8-0.66 8.69-12.3 19.85-21.76 33.2-28.66 0.66-0.3 1.32-0.59 1.98-0.9 13.45-6.3 27.58-9.1 42.42-8.43 3.38 0.14 6.73 0.66 10.1 0.88z" fill="#7e4795"/><path class="st1" d="m454.1 178.48c-3.38-0.22-6.72-0.74-10.11-0.9-14.84-0.67-28.97 2.13-42.42 8.43-0.66 0.31-1.32 0.6-1.98 0.9 0.34-0.64 0.64-1.3 1.03-1.9 5.13-8.01 10.28-16.02 15.42-24.03 9.38-14.53 18.76-29.05 28.13-43.59 7.18-11.13 14.32-22.29 21.51-33.4 5.88-9.08 16.93-12.39 26.39-7.91 11.65 5.52 15.4 19.59 8.61 30.11-7.48 11.59-14.94 23.18-22.41 34.77-8.05 12.51-16.11 25.02-24.17 37.52z" fill="#f08319"/><path class="st2" d="m416.04 160.99c-5.14 8.01-10.29 16.02-15.42 24.03-0.39 0.6-0.68 1.27-1.03 1.9-13.36 6.9-24.51 16.35-33.2 28.66-0.2 0.28-0.36 0.64-0.8 0.66-0.15-2.13 0.45-4.18 0.77-6.25 1.38-9 2.82-17.99 4.21-26.98 0.7-4.53 1.32-9.07 1.97-13.6 0.84-5.13 1.72-10.25 2.52-15.38 2.01-12.78 3.98-25.56 5.98-38.34 1.29-8.24 2.63-16.48 3.86-24.73 1.5-10.1 10.11-17.71 20.32-17.85 10.05-0.14 18.95 7.28 20.68 17.22 0.7 4.03-0.16 7.96-0.77 11.9-2 12.97-4.04 25.92-6.05 38.89-1.03 6.6-2.03 13.23-3.04 19.87z" fill="#df1465"/><path class="st3" d="m372.54 169.4c-0.65 4.53-1.28 9.07-1.97 13.6-1.38 9-2.83 17.99-4.21 26.98-0.32 2.07-0.92 4.12-0.77 6.25l0.03-0.02c-0.52 0.05-0.27 0.44-0.3 0.7-4.79 7.53-8.82 15.43-11.39 24.02-1.84 6.16-3.16 12.4-3.61 18.82-0.02 0.29-0.15 0.57-0.22 0.86-2.86-13.04-5.71-26.08-8.59-39.11-4.68-21.23-9.38-42.46-14.05-63.7-1.26-5.72-2.73-11.41-3.64-17.19-1.71-10.86 5.52-20.97 16.22-23.19 10.77-2.23 21.48 4.26 24.14 15.03 2.52 10.2 4.6 20.5 6.89 30.76 0.47 2.08 0.98 4.13 1.47 6.19z" fill="#177784"/><path class="st4" d="m419.09 267.86c0-11.74 9.62-21.39 21.36-21.44 11.78-0.05 21.52 9.69 21.48 21.5-0.04 11.73-9.72 21.36-21.45 21.34s-21.39-9.69-21.39-21.4z" fill="#7e4796"/><path class="st2" d="m365.32 216.91c0.03-0.26-0.22-0.65 0.3-0.7 0.09 0.32-0.02 0.55-0.3 0.7z" fill="#df1465"/></g><g><text x="439.55728" y="497.38904" fill="#550055" font-family="'Source Sans Pro'" font-size="53.333px" font-weight="600" letter-spacing="0px" stroke-width="1px" text-align="center" text-anchor="middle" word-spacing="0px" style="font-feature-settings:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;line-height:125%" xml:space="preserve"><tspan x="439.55728" y="497.38904">PRZEWODNIK PO STYLACH</tspan></text><rect x="138.1" y="425.87" width="602.96" height="25.894" fill="#7e4795"/><rect x="138.1" y="510.95" width="602.96" height="9.8644" fill="#7e4795"/><path transform="matrix(.8727 0 0 .095238 34.977 479.8)" d="m463.63 1065.1-343.85-595.56 687.7-2e-5 -171.92 297.78z" fill="#505"/><g transform="matrix(1.163 0 0 1.163 -27.243 -328.98)" fill="#505"><polygon transform="translate(-38.898 166.83)" points="217.57 462.74 182.26 462.74 182.26 400.51 190.64 400.51 190.64 455.66 217.57 455.66"/><path d="m219.09 623.4c-0.96 1.16-2.1 2.16-3.43 3.02-1.34 0.85-2.76 1.56-4.28 2.11s-3.09 0.96-4.71 1.24-3.23 0.41-4.82 0.41c-3.04 0-5.84-0.52-8.4-1.54-2.56-1.03-4.78-2.53-6.64-4.52-1.87-1.98-3.32-4.44-4.36-7.36s-1.56-6.28-1.56-10.07c0-3.07 0.47-5.94 1.41-8.6s2.29-4.97 4.06-6.93c1.76-1.95 3.92-3.49 6.47-4.6s5.41-1.67 8.6-1.67c2.64 0 5.08 0.44 7.32 1.32 2.24 0.89 4.18 2.16 5.82 3.82 1.63 1.67 2.91 3.72 3.84 6.17s1.39 5.23 1.39 8.36c0 1.21-0.13 2.03-0.39 2.43-0.26 0.41-0.75 0.61-1.47 0.61h-29.4c0.09 2.78 0.47 5.2 1.15 7.25s1.63 3.77 2.84 5.15c1.21 1.37 2.67 2.4 4.34 3.08 1.68 0.68 3.56 1.02 5.64 1.02 1.94 0 3.61-0.22 5.01-0.67 1.41-0.45 2.61-0.94 3.63-1.45 1.01-0.52 1.86-1.01 2.54-1.45 0.68-0.45 1.27-0.68 1.76-0.68 0.64 0 1.13 0.25 1.48 0.74zm-6.25-20.62c0-1.79-0.25-3.44-0.76-4.93s-1.25-2.78-2.21-3.86c-0.97-1.09-2.15-1.93-3.54-2.52-1.39-0.6-2.96-0.89-4.73-0.89-3.71 0-6.64 1.08-8.79 3.23-2.16 2.16-3.49 5.15-4.01 8.97z"/><path d="m237.07 592.4c1.85-2.29 3.99-4.13 6.42-5.52s5.21-2.08 8.34-2.08c2.54 0 4.85 0.48 6.9 1.45 2.06 0.97 3.81 2.41 5.26 4.3 1.44 1.89 2.56 4.25 3.34 7.05 0.78 2.81 1.17 6.04 1.17 9.69 0 3.24-0.43 6.26-1.31 9.06-0.87 2.79-2.12 5.21-3.75 7.25-1.64 2.04-3.63 3.65-6 4.82-2.36 1.17-5.01 1.76-7.97 1.76-2.69 0-5-0.46-6.93-1.37-1.93-0.92-3.63-2.18-5.1-3.8v19.45h-7.77v-58.88h4.64c1.1 0 1.78 0.54 2.04 1.61zm0.39 26.57c1.42 1.91 2.97 3.26 4.65 4.04s3.56 1.17 5.64 1.17c4.11 0 7.27-1.46 9.47-4.39 2.2-2.92 3.3-7.09 3.3-12.51 0-2.86-0.26-5.33-0.76-7.38-0.5-2.06-1.24-3.74-2.19-5.06-0.96-1.32-2.13-2.28-3.52-2.88-1.39-0.61-2.97-0.92-4.74-0.92-2.52 0-4.73 0.58-6.62 1.74-1.9 1.15-3.64 2.79-5.23 4.91z"/><path d="m304.42 592.83c-0.35 0.64-0.89 0.96-1.61 0.96-0.43 0-0.93-0.16-1.47-0.48-0.55-0.32-1.22-0.67-2.02-1.06s-1.74-0.75-2.84-1.09c-1.1-0.33-2.4-0.5-3.91-0.5-1.3 0-2.48 0.17-3.52 0.5-1.04 0.34-1.94 0.79-2.67 1.37-0.74 0.58-1.3 1.25-1.69 2.02-0.39 0.76-0.59 1.6-0.59 2.5 0 1.13 0.33 2.07 0.98 2.82s1.51 1.4 2.58 1.95 2.29 1.04 3.65 1.46 2.76 0.86 4.19 1.34 2.83 1.01 4.19 1.59 2.57 1.3 3.65 2.17c1.07 0.87 1.93 1.93 2.58 3.19s0.98 2.78 0.98 4.54c0 2.03-0.36 3.9-1.08 5.62s-1.79 3.21-3.21 4.47-3.15 2.25-5.21 2.98c-2.06 0.72-4.43 1.08-7.12 1.08-3.07 0-5.85-0.5-8.34-1.49-2.49-1-4.6-2.28-6.34-3.85l1.82-2.95c0.23-0.38 0.5-0.67 0.82-0.87s0.72-0.3 1.21-0.3c0.52 0 1.07 0.2 1.65 0.61s1.28 0.85 2.11 1.35c0.82 0.49 1.83 0.94 3.02 1.34 1.18 0.41 2.66 0.61 4.43 0.61 1.5 0 2.82-0.2 3.95-0.59s2.07-0.92 2.82-1.59 1.31-1.43 1.67-2.3 0.54-1.8 0.54-2.78c0-1.21-0.33-2.22-0.98-3.02-0.65-0.79-1.51-1.48-2.59-2.04-1.07-0.56-2.29-1.05-3.66-1.47-1.38-0.42-2.78-0.86-4.21-1.33-1.43-0.46-2.84-0.99-4.21-1.58-1.38-0.6-2.6-1.34-3.67-2.24s-1.93-2-2.58-3.32-0.98-2.92-0.98-4.8c0-1.68 0.35-3.29 1.04-4.85 0.69-1.55 1.71-2.91 3.04-4.08s2.97-2.11 4.91-2.8 4.16-1.04 6.64-1.04c2.89 0 5.5 0.45 7.79 1.37 2.3 0.91 4.29 2.16 5.97 3.76z"/><path d="m347.19 588.88c0 0.55-0.09 1.08-0.28 1.61-0.19 0.52-0.44 0.97-0.76 1.34l-23.84 31.7h24.06v6.04h-33.13v-3.21c0-0.38 0.09-0.82 0.26-1.33 0.17-0.5 0.43-0.99 0.78-1.45l23.97-31.92h-23.67v-6.07h32.61z"/><path d="m394.48 585.58-24.53 56.97c-0.26 0.58-0.59 1.04-0.98 1.39s-0.99 0.52-1.8 0.52h-5.73l8.03-17.46-18.15-41.43h6.68c0.67 0 1.2 0.16 1.59 0.5 0.39 0.33 0.66 0.7 0.8 1.11l11.77 27.7c0.46 1.21 0.85 2.49 1.17 3.82 0.4-1.36 0.84-2.65 1.3-3.87l11.42-27.66c0.18-0.46 0.47-0.84 0.89-1.15 0.42-0.3 0.89-0.45 1.41-0.45h6.13z"/><path d="m483.03 567.34-19.41 62.23h-7.56l-15.76-47.46c-0.14-0.46-0.28-0.96-0.41-1.48s-0.27-1.07-0.41-1.65c-0.14 0.58-0.29 1.13-0.43 1.65s-0.29 1.02-0.43 1.48l-15.85 47.46h-7.56l-19.41-62.23h6.99c0.75 0 1.38 0.19 1.89 0.57 0.5 0.38 0.83 0.85 0.98 1.43l12.85 43.25c0.2 0.78 0.4 1.62 0.59 2.52s0.37 1.85 0.54 2.87c0.21-1.01 0.41-1.98 0.63-2.88 0.22-0.92 0.45-1.75 0.72-2.5l14.63-43.25c0.18-0.49 0.51-0.95 1.02-1.37 0.5-0.42 1.12-0.63 1.84-0.63h2.43c0.75 0 1.36 0.19 1.82 0.57s0.81 0.85 1.04 1.43l14.59 43.25c0.26 0.75 0.5 1.56 0.72 2.43s0.43 1.78 0.63 2.73c0.14-0.96 0.31-1.86 0.48-2.73s0.36-1.68 0.56-2.43l12.9-43.25c0.14-0.52 0.47-0.98 0.98-1.39 0.5-0.4 1.12-0.61 1.84-0.61h6.56z"/><path d="m521.72 623.4c-0.96 1.16-2.1 2.16-3.43 3.02-1.34 0.85-2.76 1.56-4.28 2.11s-3.09 0.96-4.71 1.24-3.23 0.41-4.82 0.41c-3.04 0-5.84-0.52-8.4-1.54-2.56-1.03-4.78-2.53-6.64-4.52-1.87-1.98-3.33-4.44-4.36-7.36-1.04-2.92-1.56-6.28-1.56-10.07 0-3.07 0.47-5.94 1.41-8.6s2.29-4.97 4.06-6.93c1.76-1.95 3.92-3.49 6.47-4.6s5.41-1.67 8.6-1.67c2.64 0 5.08 0.44 7.32 1.32 2.24 0.89 4.18 2.16 5.82 3.82 1.63 1.67 2.91 3.72 3.84 6.17s1.39 5.23 1.39 8.36c0 1.21-0.13 2.03-0.39 2.43-0.26 0.41-0.75 0.61-1.47 0.61h-29.4c0.09 2.78 0.47 5.2 1.15 7.25s1.63 3.77 2.84 5.15c1.21 1.37 2.67 2.4 4.34 3.08 1.68 0.68 3.56 1.02 5.64 1.02 1.94 0 3.61-0.22 5.01-0.67 1.41-0.45 2.61-0.94 3.63-1.45 1.01-0.52 1.86-1.01 2.54-1.45 0.68-0.45 1.27-0.68 1.76-0.68 0.64 0 1.13 0.25 1.48 0.74zm-6.26-20.62c0-1.79-0.25-3.44-0.76-4.93s-1.25-2.78-2.21-3.86c-0.97-1.09-2.15-1.93-3.54-2.52-1.39-0.6-2.96-0.89-4.73-0.89-3.71 0-6.64 1.08-8.79 3.23-2.16 2.16-3.49 5.15-4.02 8.97z"/><path d="m540.08 591.92c1.85-2.14 3.94-3.85 6.28-5.13 2.33-1.27 5.01-1.91 8.05-1.91 2.57 0 4.9 0.49 6.97 1.48s3.83 2.41 5.27 4.28c1.45 1.87 2.56 4.13 3.33 6.8 0.76 2.66 1.15 5.66 1.15 8.99 0 3.56-0.43 6.8-1.3 9.73-0.87 2.92-2.12 5.42-3.76 7.49s-3.62 3.68-5.97 4.82c-2.34 1.14-4.98 1.72-7.9 1.72-2.9 0-5.33-0.54-7.32-1.63-1.98-1.09-3.71-2.63-5.19-4.63l-0.39 3.99c-0.23 1.1-0.9 1.65-2 1.65h-5v-63.96h7.77v26.31zm0 27.05c1.42 1.91 2.97 3.26 4.67 4.04 1.69 0.78 3.55 1.17 5.58 1.17 4.14 0 7.31-1.46 9.51-4.39 2.2-2.92 3.3-7.28 3.3-13.07 0-5.38-0.98-9.34-2.93-11.88-1.95-2.53-4.74-3.8-8.36-3.8-2.52 0-4.71 0.58-6.58 1.74-1.87 1.15-3.59 2.79-5.19 4.91z"/><path d="m580.08 624.79c0-0.75 0.14-1.46 0.41-2.13 0.28-0.66 0.65-1.24 1.13-1.73s1.05-0.89 1.72-1.17c0.66-0.29 1.37-0.43 2.13-0.43 0.75 0 1.46 0.14 2.13 0.43s1.25 0.68 1.74 1.17 0.89 1.07 1.17 1.73c0.29 0.67 0.43 1.38 0.43 2.13 0 0.78-0.14 1.49-0.43 2.15-0.29 0.65-0.68 1.22-1.17 1.71s-1.07 0.88-1.74 1.15-1.38 0.41-2.13 0.41-1.46-0.14-2.13-0.41c-0.67-0.28-1.24-0.66-1.72-1.15s-0.85-1.06-1.13-1.71c-0.27-0.65-0.41-1.37-0.41-2.15"/><path d="m609.69 592.4c1.85-2.29 3.99-4.13 6.42-5.52s5.21-2.08 8.34-2.08c2.54 0 4.85 0.48 6.9 1.45 2.06 0.97 3.81 2.41 5.26 4.3 1.44 1.89 2.56 4.25 3.34 7.05 0.78 2.81 1.17 6.04 1.17 9.69 0 3.24-0.43 6.26-1.31 9.06-0.87 2.79-2.12 5.21-3.75 7.25-1.64 2.04-3.63 3.65-6 4.82-2.36 1.17-5.01 1.76-7.97 1.76-2.69 0-5-0.46-6.93-1.37-1.93-0.92-3.63-2.18-5.1-3.8v19.45h-7.77v-58.88h4.64c1.1 0 1.78 0.54 2.04 1.61zm0.39 26.57c1.42 1.91 2.97 3.26 4.65 4.04s3.56 1.17 5.64 1.17c4.11 0 7.27-1.46 9.47-4.39 2.2-2.92 3.3-7.09 3.3-12.51 0-2.86-0.26-5.33-0.76-7.38-0.5-2.06-1.24-3.74-2.19-5.06-0.96-1.32-2.13-2.28-3.52-2.88-1.39-0.61-2.97-0.92-4.74-0.92-2.52 0-4.73 0.58-6.62 1.74-1.9 1.15-3.64 2.79-5.23 4.91z"/><rect x="651.68" y="565.6" width="7.73" height="63.96"/></g></g></g></svg>
</div>
<p class="kss-doc-title visuallyhidden">Przewodnik stylów dostępności</p>
</section>
Skopiowane!
SVG
SVG są skalowalną grafiką wektorową i mogą być wykorzystywane do tworzenia ikon, obrazów, logotypów itp. Zawartość SVG jest skalowalna i skalowana bez obniżenia jakości wizualnej.
- Najlepszym sposobem na uczynienie SVG dostępnymi dla technologii wspomagajacych, takich jak czytniki ekranu i narzędzia do rozpoznawania mowy, jest umieszczenie ich bezpośrednio w HTML za pomocą znacznika
<svg>
- Unikaj używania elementów
<embed>
,<object>
, lub<img>
, ponieważ nie są one tak wspierane przez przeglądarki jak SVG śródliniowe. - Dodaj
<title>
i<description>
do znacznika SVG - Użyj
aria-labelledby=""
i odwołaj się do wartości id elementów tytułu i opisu - Daj swoim SVG-om pracę z atrybutem
role=""
- Aby „ukryć” elementy przed czytnikiem ekranu w SVG dodaj
role="presentation"
Zasoby
Wytyczne WCAG 2.1
1.1.1 Treść nietekstowa - Wszelkie treści nietekstowe przedstawione użytkownikowi posiadają swoją tekstową alternatywę, która pełni tę samą funkcję, z kilkoma wyjątkami. (Poziom A)
Uwaga: Jeśli zawartość nietekstowa jest czystą dekoracją, jest używana tylko do formatowania wizualnego, lub nie jest prezentowana użytkownikom, to nie potrzebuje alternatyw tekstowych.
1.4.3 Kontrast (minimalny) - Wizualna prezentacja tekstu lub obrazu tekstu posiada współczynnik kontrastu wynoszący przynajmniej 4.5:1, poza kilkoma wyjątkami (Poziom AA)
1.4.5 Obrazy tekstu - Jeśli wykorzystywane technologie mogą przedstawiać treść wizualnie, do przekazywania informacji wykorzystuje się tekst, a nie obraz tekstu, z kilkoma wyjątkami (Poziom AA)
1.4.11 Kontrast elementów nietekstowych - Wizualna prezentacja następujących elementów ma współczynnik kontrastu co najmniej 3:1 względem sąsiednich kolorów (Poziom AA)
Przykład #1: SVG z rolą obrazu (role=img)e
Przykład #2: SVG z rolą łącza (role=link)
<section class="svgs-section">
<div class="svgs">
<h3>Przykład #1: SVG z rolą obrazu (role=img)e</h3>
<svg version="1.1" width="32" height="32" viewBox="0 0 32 32" aria-labelledby="title" aria-describedby="description" role="img">
<title id="title">Kciuk w górę</title>
<desc id="description">Ręka z kciukiem skierowanym ku górze w geście aprobaty. Nazwij to kciukiem aprobaty.</desc>
<g>
<path d="M29.164 10.472c-1.25-0.328-4.189-0.324-8.488-0.438 0.203-0.938 0.25-1.784 0.25-3.286 0-3.588-2.614-6.748-4.926-6.748-1.633 0-2.979 1.335-3 2.977-0.022 2.014-0.645 5.492-4 7.256-0.246 0.13-0.95 0.477-1.053 0.522l0.053 0.045c-0.525-0.453-1.253-0.8-2-0.8h-3c-1.654 0-3 1.346-3 3v16c0 1.654 1.346 3 3 3h3c1.19 0 2.186-0.719 2.668-1.727 0.012 0.004 0.033 0.010 0.047 0.012 0.066 0.018 0.144 0.037 0.239 0.062 0.018 0.005 0.027 0.007 0.046 0.012 0.576 0.143 1.685 0.408 4.055 0.953 0.508 0.116 3.192 0.688 5.972 0.688h5.467c1.666 0 2.867-0.641 3.582-1.928 0.010-0.020 0.24-0.469 0.428-1.076 0.141-0.457 0.193-1.104 0.023-1.76 1.074-0.738 1.42-1.854 1.645-2.58 0.377-1.191 0.264-2.086 0.002-2.727 0.604-0.57 1.119-1.439 1.336-2.766 0.135-0.822-0.010-1.668-0.389-2.372 0.566-0.636 0.824-1.436 0.854-2.176l0.012-0.209c0.007-0.131 0.013-0.212 0.013-0.5 0-1.263-0.875-2.874-2.836-3.434zM7 29c0 0.553-0.447 1-1 1h-3c-0.553 0-1-0.447-1-1v-16c0-0.553 0.447-1 1-1h3c0.553 0 1 0.447 1 1v16zM29.977 14.535c-0.020 0.494-0.227 1.465-1.977 1.465-1.5 0-2 0-2 0-0.277 0-0.5 0.224-0.5 0.5s0.223 0.5 0.5 0.5c0 0 0.438 0 1.938 0s1.697 1.244 1.6 1.844c-0.124 0.746-0.474 2.156-2.163 2.156-1.687 0-2.375 0-2.375 0-0.277 0-0.5 0.223-0.5 0.5 0 0.275 0.223 0.5 0.5 0.5 0 0 1.188 0 1.969 0 1.688 0 1.539 1.287 1.297 2.055-0.319 1.009-0.514 1.945-2.641 1.945-0.719 0-1.631 0-1.631 0-0.277 0-0.5 0.223-0.5 0.5 0 0.275 0.223 0.5 0.5 0.5 0 0 0.693 0 1.568 0 1.094 0 1.145 1.035 1.031 1.406-0.125 0.406-0.273 0.707-0.279 0.721-0.302 0.545-0.789 0.873-1.82 0.873h-5.467c-2.746 0-5.47-0.623-5.54-0.639-4.154-0.957-4.373-1.031-4.634-1.105 0 0-0.846-0.143-0.846-0.881l-0.007-13.812c0-0.469 0.299-0.893 0.794-1.042 0.062-0.024 0.146-0.050 0.206-0.075 4.568-1.892 5.959-6.040 6-9.446 0.006-0.479 0.375-1 1-1 1.057 0 2.926 2.122 2.926 4.748 0 2.371-0.096 2.781-0.926 5.252 10 0 9.93 0.144 10.812 0.375 1.094 0.313 1.188 1.219 1.188 1.531 0 0.343-0.010 0.293-0.023 0.629zM4.5 26c-0.828 0-1.5 0.672-1.5 1.5s0.672 1.5 1.5 1.5 1.5-0.672 1.5-1.5-0.672-1.5-1.5-1.5zM4.5 28c-0.275 0-0.5-0.225-0.5-0.5s0.225-0.5 0.5-0.5 0.5 0.225 0.5 0.5-0.225 0.5-0.5 0.5z" fill="#000000" />
</g>
</svg>
<div class="break"></div>
<h3>Przykład #2: SVG z rolą łącza (role=link)</h3>
<svg version="1.1" width="300" height="60" aria-labelledby="title desc">
<title id="title">Niebieski prostokąt</title>
<desc id="desc">Ciemnoniebieski prostokąt z zaokrąglonymi rogami i ciemnoszarą obwódką.</desc>
<a xlink:href="https://www.google.com" tabindex="0" role="link">
<rect width="100" height="50" rx="20" ry="20" fill="#0a3055" stroke="#444444" stroke-fill="2" />
<text x="50" y="30" font-size="1rem" text-anchor="middle" fill="#ffffff">Google</text>
</a>
</svg>
</div>
</section>
Skopiowane!
Wideo
- Zbuduj swoje media z myślą o dostępności! O wiele łatwiej jest pracować z dostępnością na początku, niż próbować włączyć ją później. Odnosi się to do wszystkich komponentów, ale szczególnie do komponentów multimedialnych.
- Upewnij się, że twój odtwarzacz jest dostępny i zawiera kontrolki do wstrzymywania, zatrzymywania i odtwarzania mediów.
- Nie odtwarzaj automatycznie plików multimedialnych. Może to powodować zarówno zamieszanie, jak i irytację.
- Upewnij się, że Twoje media mają alternatywne metody dotarcia do treści. Na przykład, dodaj napisy do swoich filmów i/lub przygotuj transkrypcję do przeczytania przez użytkowników.
- Upewnij się, że twoje media nie powodują napadów chorobowych! Przed dodaniem mediów do witryny internetowej należy skorzystać z fotoczułego narzędzia do analizy padaczki (Photosensitive Epilepsy Analysis Tool - PEAT), aby sprawdzić media.
Nie bez powodu jest mnóstwo wytycznych WCAG dotyczących mediów na stronach internetowych... jest wiele czynników, które należy wziąć pod uwagę. Nie daj się jednak przestraszyć, jest też kilka łatwych zwycięstw. Samo uwzględnienie alternatyw dla prezentowanych mediów (np. transkrypcja filmu) to połowa sukcesu.
Zasoby
- 8 Steps to Creating Accessible Video
- Multimedia Accessibility FAQ
- Photosensitive Epilepsy Analysis Tool - tests your visual media to see if it will trigger seizures or other light disorder issues in viewers
Wytyczne WCAG 2.1
1.1.1 Treść nietekstowa - Wszelkie treści nietekstowe przedstawione użytkownikowi posiadają swoją tekstową alternatywę, która pełni tę samą funkcję, z kilkoma wyjątkami. (Poziom A)
1.2.1 Tylko audio lub tylko wideo (nagranie) - Alternatywa dla wideo: Zapewniona jest alternatywa tekstowa albo audiodeskrypcja dla nagrań zawierających tylko wideo przedstawiająca tę samą treść, co nagranie wideo. (Poziom A)
1.2.2 Napisy rozszerzone - Do wszystkich nagrań audio w multimediach zsynchronizowanych (dźwięk i obraz), z wyjątkiem sytuacji, kiedy są one alternatywami dla tekstu i w taki sposób są oznaczone, zapewnione są napisy rozszerzone. (Poziom A)
1.2.3 Audiodeskrypcja lub alternatywa tekstowa dla mediów (nagranie) - Zapewniona jest alternatywa dla multimediów lub audiodeskrypcja dla nagrań wideo w multimediach zsynchronizowanych (dźwięk i obraz), z wyjątkiem sytuacji, kiedy są one alternatywami dla tekstu i w taki sposób są oznaczone. (Poziom A)
1.2.5 Audiodeskrypcja (nagranie) - Zapewniona jest audiodeskrypcja dla wszystkich nagrań wideo w multimediach zsynchronizowanych (Poziom AA)
1.2.6 Język migowy (nagranie) - Zapewnione jest tłumaczenie w języku migowym wszystkich nagrań audio w multimediach zsynchronizowanych (dźwięk i obraz). (Poziom AAA)
1.2.8 Alternatywa dla mediów (nagranie) - Zapewniona jest alternatywa dla wszystkich — nagrań w multimediach zsynchronizowanych (dźwięk i obraz) oraz dla wszystkich nagrań tylko wideo (sam obraz). (Poziom AAA)
<section class="videos-section">
<figure class="videos">
<div class="px-video-container" id="myvid">
<div class="px-video-img-captions-container">
<div class="px-video-captions hide"></div>
<video width="640" height="360" poster="assets/videos/read-more.png" controls>
<!-- video files -->
<source src="assets/videos/read-more.mp4" type="video/mp4" />
<source src="assets/videos/read-more.webm" type="video/webm" />
<!-- text track file -->
<track kind="captions" label="Napisy angielskie" src="assets/videos/read-more.vtt" srclang="en" default />
<!-- fallback for browsers that don't support the video element -->
<div>
<a href="assets/videos/read-more.mp4">
<img src="assets/videos/read-more.png" width="640" height="360" alt="Pobierz wideo" />
</a>
</div>
</video>
</div><!-- end container for captions and video -->
<div class="px-video-controls"></div>
</div><!-- end video container -->
<p><a href="https://github.com/paypal/accessible-html5-video-player" target="_blank">Accessible HTML5 Video Player GitHub</a></p>
</div><!-- end page wrapper container -->
<script src="js/strings.js"></script>
<script src="js/px-video.js"></script>
<script>
// Initialize
new InitPxVideo({
"videoId": "myvid",
"captionsOnDefault": true,
"seekInterval": 20,
"videoTitle": "Demonstracyjny film wideo z sekcji Read More przy użyciu narzędzia Mac Voice Over",
"debug": true
});
</script>
<figcaption>
<p class="videos__transcript">
<a href="assets/videos/read-more.txt">Transkrypcja</a>
</p>
<p class="videos__alt-audio">
<a href="assets/videos/read-more.m4a">Alternatywna ścieżka dźwiękowa</a>
</p>
</figcaption>
</figure>
</section>
Skopiowane!