Tworzenie dostępnych zasobów: Fragmenty/kod HTML
Podczas dodawania niestandardowego kodu HTML lub fragmentów do Twojej witryny, dostępność powinna być kluczowym czynnikiem. Źle skonstruowany kod może tworzyć bariery dla użytkowników korzystających z technologii wspomagających. W tym artykule wyjaśniono, jak pisać czysty, semantyczny kod HTML, który obsługuje dostępność. Obejmuje takie elementy, jak role ARIA, prawidłowe użycie tagów i przyjazny dla klawiatury projekt, aby zapewnić, że Twój niestandardowy kod będzie działał dla wszystkich odwiedzających.
Aby upewnić się, że Twoja witryna, strona docelowa, formularz lub wiadomość spełniają wymogi dostępności, skorzystaj z listy kontrolnej dostępnej tutaj.
Pamiętaj, że nie oferujemy dalszej pomocy w zakresie HTML. Upewnij się, że czujesz się komfortowo z kodowaniem lub masz programistę, z którym możesz się skonsultować.
Wymagania
Ramki iframe
- Atrybut title ramki iframe (na stronie nadrzędnej) musi być dokładny i opisowy.
- Strona źródłowa ramki iframe (strona osadzona w ramce iframe) musi mieć prawidłowy i znaczący
<title>.
Punkty orientacyjne
- Czytniki ekranu umożliwiają użytkownikom nawigację za pomocą punktów orientacyjnych, więc punkty orientacyjne są skutecznym sposobem na ominięcie bloków treści, zgodnie z wymaganiami WCAG 2.4.1.
- Punkty orientacyjne mogą być oznaczone znacznikami HTML lub równoważnymi rolami ARIA (np.
<header>
lub role="banner"
,<nav>
lubrole="navigation"
,<main>
lubrole="main"
,<footer>
lubrole="contentinfo"
itp.)
Język
- Podstawowy język strony musi być dokładnie określony za pomocą standardowego kodu języka na elemencie, np:
<html lang="en">,
<html lang="fr">.
- Inline zmiany języka MUSZĄ być identyfikowane za pomocą poprawnego atrybutu lang.
Listy
- Listy muszą być konstruowane przy użyciu odpowiednich znaczników semantycznych, tj:
<ul>
lub<ol>
z elementami podrzędnymi<li>,
- lub
<dl>
z elementami podrzędnymi<dt>
i<dd>
.
Tabele
- Nagłówki tabel muszą być oznaczone
<th>.
- Tekst nagłówka tabeli danych musi dokładnie opisywać kategorię odpowiednich komórek danych.
- Komórki danych tabeli muszą być powiązane z odpowiadającymi im komórkami nagłówka.
- Korzystanie z zakresu
(<th
scope="
col
">
i<th scope="row">)
jest wysoce zalecane, choć nie zawsze konieczne. Jeśli wszystkie komórki w pierwszym wierszu są oznaczone jako<th>
bez zakresu, większość nowoczesnych czytników ekranu wywnioskuje, że zakresem jest kolumna poniżej każdej komórki nagłówka.
- Korzystanie z zakresu
- Nagłówki grup danych tabeli (jeśli istnieją) muszą być powiązane z odpowiadającymi im grupami komórek danych (np. poprzez
scope="rowgroup"
lub scope="colgroup"
). - Asocjacje nagłówka/danych, które nie mogą być oznaczone za pomocą
<th>
i scope, muszą być oznaczone atrybutami header i id. - Nagłówki tabel danych i asocjacje danych nie mogą być przywoływane w zagnieżdżonych, połączonych lub oddzielnych tabelach.
Wyjątki
Inline zmiany językowe
Wyjątki są dozwolone dla:
- nazw własnych,
- terminów technicznych,
- słów o nieokreślonym języku,
- oraz słów lub wyrażeń, które stały się częścią języka bezpośrednio otaczającego tekstu.
Przykłady
![]() | TAK: Tytuł dodany do ramki iframe wyjaśnia cel treści. |
![]() | TAK: Prawidłowo oznaczone punkty orientacyjne, które umożliwiają użytkownikom nawigację za ich pośrednictwem. |
![]() | TAK: Poniższy fragment kodu ilustruje kod typowy dla użycia wpisu /Lang w celu zastąpienia domyślnego języka dokumentu poprzez określenie sekwencji oznaczonej treści w strumieniu treści strony. |
![]() | TAK: Prawidłowo oznaczona lista elementów. |
![]() | NIE: W tym przykładzie użyto zagnieżdżonych nagłówków, ale komórki zawartości są nieprawidłowo powiązane za pomocą atrybutów id i headers. Wszystkie komórki odwołują się do nagłówka najwyższego poziomu “Egzaminy”(id="e" ) – nie jest to poprawne dla ostatnich trzech kolumn, które powinny odwoływać się do nagłówka “Projekty”. Przypadkowo zamieniono również odniesienia do nagłówków kolumn drugiego poziomu, chociaż w tym przykładzie nie ma to znaczenia, ponieważ zawartość (1, 2, Final) jest powtarzana. |