• Frontend i UX
  • Listy HTML bez zgadywania - kiedy użyć ul, ol i dl

Listy HTML bez zgadywania - kiedy użyć ul, ol i dl

Radosław Stępień • 27 października 2026
Laptop z kodem, w tym lista HTML, obok notatnika i telefonu.

Spis treści

Masz kilka etapów wdrożenia, ale kolejność jest ważna tylko w części z nich? W takim przypadku lista HTML zwykle powinna być numerowana, choć sam wygląd punktów nie zawsze podpowiada właściwy znacznik. Błędny wybór potrafi zmienić sposób, w jaki strukturę treści odczyta technologia asystująca.

Fragment kodu HTML z listą nawigacyjną. Widać znaczniki `<ul>` i `<li>`, tworzące strukturę listy.

Dobierz znacznik do relacji między elementami, nie do wyglądu listy

    • wybierz dla elementów, których kolejność nie tworzy instrukcji ani rankingu.
      1. stosuj, gdy numeracja lub kolejność ma sens, na przykład w przepisie wdrożeniowym.
      2. łączy nazwy z opisami lub wartościami, jak termin i jego definicja.
      3. oznacza pojedynczy element listy i powinien znajdować się w odpowiednim kontenerze.
      4. CSS zmienia wygląd, ale nie powinien zastępować semantycznego znacznika HTML.

      Wybierz ul albo ol według tego, czy kolejność zmienia sens

      Lista zakupów i instrukcja uruchomienia aplikacji mogą wyglądać podobnie, ale niosą inną informację. W pierwszej kolejność produktów zwykle jest obojętna, w drugiej pominięcie kroku albo zmiana kolejności może zepsuć cały proces.

      Do luźnego zestawu służy

        , a do sekwencji
          . W obu przypadkach każdy punkt zapisujesz w elemencie
        1. . Taką różnicę opisuje też poradnik dostępności cyfrowej na gov.pl.

          Prosta reguła: jeśli użytkownik może przestawić elementy bez zmiany znaczenia, wybierz

            ; jeśli kolejność prowadzi do wyniku, użyj
              . Ranking, kroki konfiguracji czy etapy migracji bazy danych są uporządkowane nawet wtedy, gdy projekt wizualny ukrywa cyfry.

              Lista numerowana przekazuje więcej niż widoczne cyfry

              Cyfry można schować w CSS, a kolejność nadal pozostaje częścią informacji. To właśnie tutaj łatwo pomylić prezentację z semantyką: użytkownik widzi styl, a przeglądarka i technologie asystujące korzystają ze struktury HTML.

              Element

                ma atrybuty, które pozwalają określić początkowy numer, kierunek numeracji lub typ oznaczeń. Specyfikacja HTML Living Standard opisuje między innymi atrybuty start, reversed i type. Przy liście zaczynającej się od dalszego etapu można użyć start, zamiast ręcznie wpisywać numery w treści.

                1. Uruchom testy integracyjne
                2. Wdróż zmianę na produkcję

                Wynikowa numeracja zacznie się od trzeciego kroku. Uważam, że to lepsze rozwiązanie niż wpisywanie numerów do tekstu punktów, bo po zmianie kolejności nie trzeba ręcznie poprawiać każdego numeru.

                Lista definicji pasuje do pary termin i objaśnienie

                Gdy w dokumentacji technicznej obok nazwy pojawia się jej opis,

                może oddać tę relację czytelniej niż zwykłe wypunktowanie. Wewnątrz umieszczasz
                dla terminu i
                dla jego opisu lub wartości.

                DOM
                Model dokumentu reprezentujący strukturę strony.
                ARIA
                Zestaw atrybutów opisujących role i stany elementów interfejsu.

                Ten wariant sprawdza się w słowniczku pojęć, panelu parametrów albo opisie skrótów. Nie używaj go automatycznie do każdej listy „etykieta: wartość”: gdy elementy są po prostu punktami zestawienia,

                  może lepiej oddawać ich rolę.

                  Zagnieżdżaj listę tylko wtedy, gdy punkt ma własne podpunkty

                  W strukturze projektu jeden element może zawierać kilka zadań podrzędnych. Wtedy zagnieżdżenie pokazuje relację między nimi, ale dodatkowy poziom bez takiej relacji tylko utrudnia skanowanie treści.

                  • Panel użytkownika
                    • Widok profilu
                    • Ustawienia powiadomień
                  • Panel administracyjny

                  Lista podrzędna należy do konkretnego elementu nadrzędnego, dlatego umieść ją wewnątrz jego

                • . Standard HTML opisuje elementy listy jako dzieci
                    lub
                      , a zagnieżdżoną strukturę można budować naprzemiennie z różnych typów list. Zasady te znajdziesz w specyfikacji elementów grupujących HTML.

                      Ukrycie punktorów w CSS może zmienić odbiór listy

                      Projekt może wymagać listy bez kropek, na przykład w menu lub poziomym zestawie linków. Zmiana wyglądu nie oznacza jednak, że trzeba zamienić listę na serię elementów

                      albo ręcznie wstawionych znaków.

                      Jest tu mniej oczywisty haczyk: dokumentacja MDN ostrzega, że w Safari listy ze stylem list-style: none mogą nie być rozpoznawane jako listy w drzewie dostępności, jeśli nie znajdują się w elemencie

                      . To nie znaczy, że taki styl zawsze jest błędem, ale przy usuwaniu punktorów sprawdź efekt w technologii asystującej, zamiast zakładać, że wizualna zmiana jest obojętna.

                      Dokumentacja właściwości CSS list-style na MDN opisuje to ograniczenie Safari. Gdy tworzysz niestandardową listę, zachowaj natywne znaczniki, przetestuj nawigację klawiaturą i sprawdź, czy odbiorca nadal otrzymuje informację o liczbie oraz strukturze punktów.

                      Przed stylowaniem sprawdź, co naprawdę oznacza zestaw punktów

                      Najczęstszy błąd zaczyna się od pytania „jakie punkty chcę zobaczyć?”, a kończy na dobraniu znacznika wyłącznie pod wygląd. Zacznij od relacji między treściami: swobodny zestaw to

                        , kolejność kroków to
                          , a para termin i opis może pasować do
                          .

                          Jeśli po ukryciu punktorów lista nadal zachowuje swoje znaczenie, semantyczna decyzja jest dobra. Właśnie ten test pomaga uniknąć sytuacji, w której kod wygląda poprawnie, ale przestaje przekazywać strukturę osobom korzystającym z czytnika ekranu.

                        1. FAQ - Najczęstsze pytania

                          Użyj <ol>, gdy kolejność elementów wpływa na wynik, na przykład przy instrukcji wdrożenia, rankingu lub etapach migracji bazy danych. <ul> pasuje do zestawów, których elementy można przestawiać bez zmiany znaczenia. Ukrycie numeracji w CSS nie zmienia semantycznej roli listy.

                          Użyj atrybutu start, na przykład <ol start="3">, aby rozpocząć numerację od trzeciego kroku. Element <ol> obsługuje także atrybuty reversed i type. Dzięki temu zmiana kolejności nie wymaga ręcznej korekty numerów wpisanych w tekst punktów.

                          <dl> sprawdza się wtedy, gdy treść tworzy relację nazwa i opis lub termin i wartość, na przykład w słowniczku pojęć albo panelu parametrów. Wewnątrz używa się <dt> dla terminu oraz <dd> dla jego objaśnienia. Nie każda para etykieta i wartość wymaga jednak <dl>; jeśli elementy są po prostu punktami zestawienia, właściwsze może być <ul>.

                          Listę podrzędną umieść wewnątrz elementu <li>, do którego należy. Dzięki temu podpunkty są powiązane z konkretnym elementem nadrzędnym. Zagnieżdżenie stosuj tylko wtedy, gdy rzeczywiście istnieje relacja nadrzędny element i jego podpunkty.

                          Nie zamieniaj wtedy listy na elementy <div> ani ręcznie wpisane znaki, ponieważ CSS powinien zmieniać wygląd, a nie zastępować semantykę HTML. W Safari lista z list-style: none może nie być rozpoznana w drzewie dostępności, jeśli nie znajduje się w <nav>. Sprawdź więc nawigację klawiaturą oraz odbiór listy przez technologię asystującą.

                          Oceń artykuł

                          Ocena: 4.57 Liczba głosów: 7

                          Tagi

                          html
                          semantyka
                          css
                          dostępność cyfrowa
                          listy
                          Autor Radosław Stępień
                          Radosław Stępień
                          Dziedzina programowania i technologii rozwija się w zawrotnym tempie, co sprawia, że ciągłe śledzenie nowinek i głębokie zrozumienie procesów są kluczowe. Nazywam się Radosław Stępień i od 13 lat aktywnie działam w branży IT, dzieląc się swoją wiedzą i doświadczeniem. Moje zainteresowania skupiają się na praktycznych aspektach tworzenia oprogramowania, analizie trendów technologicznych oraz budowaniu satysfakcjonującej ścieżki kariery w tym dynamicznym sektorze. Staram się przedstawiać złożone zagadnienia w sposób przystępny, opierając się na sprawdzonych informacjach i własnych obserwacjach z wieloletniej pracy. Zależy mi na tym, aby treści, które tworzę, były nie tylko merytoryczne i aktualne, ale przede wszystkim pomocne dla każdego, kto chce zgłębić tajniki IT lub rozwijać się zawodowo.

                          Udostępnij artykuł

                          Napisz komentarz