0Pricing
HTML Academy · Lekcja

Atrybut hidden

Przełączać widoczność elementu za pomocą logicznego atrybutu hidden.

Atrybut hidden to bezpłatna lekcja HTML Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej HTML Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs HTML Academy zawiera 4 lekcji w sumie.

Czym jest hidden?

Atrybut hidden sprawia, że element staje się niewidoczny i zostaje usunięty z drzewa dostępności:

<p hidden>This paragraph is hidden.</p>
<!-- Equivalent to: display: none in CSS -->
<!-- The element is in the DOM but not rendered -->
<!-- Screen readers do not announce hidden elements -->

hidden jako atrybut logiczny

Atrybuty logiczne są albo obecne (prawda), albo nieobecne (fałsz) — nie wymagają wartości:

<!-- All of these are equivalent: -->
<div hidden>Content</div>
<div hidden="">Content</div>
<div hidden="hidden">Content</div>

<!-- Remove with JavaScript: -->
element.removeAttribute('hidden');

<!-- Or set: -->
element.setAttribute('hidden', '');

hidden a display:none i visibility:hidden

Trzy sposoby ukrywania elementów:

/* hidden attribute = display:none */
/* Element is removed from flow, invisible to AT */

/* visibility: hidden */
/* Element occupies space but is invisible */
/* Still read by some screen readers */

/* opacity: 0 */
/* Element occupies space, invisible, still interactive */
/* Still read by screen readers */

/* Hidden attribute is the simplest for fully hiding content */

Przełączanie widoczności za pomocą JavaScript

Widocznością można sterować przez dodawanie i usuwanie atrybutu hidden:

const modal = document.getElementById('modal');

// Show:
modal.removeAttribute('hidden');
// or:
modal.hidden = false;

// Hide:
modal.setAttribute('hidden', '');
// or:
modal.hidden = true;

// Toggle:
modal.toggleAttribute('hidden');

CSS może nadpisać hidden

Właściwość display CSS może nadpisać atrybut hidden — należy zachować ostrożność:

/* This makes hidden elements visible again: */
[hidden] {
  display: block !important;
}

/* Do not do this unless you have a very specific reason */

/* The hidden attribute should be trusted as the source of truth for visibility */

hidden a aria-hidden

Dwa różne rodzaje ukrywania:

  • hidden — element jest niewidoczny i usunięty z drzewa dostępności
  • aria-hidden="true" — element jest ukryty tylko przed drzewem dostępności, ale nadal jest renderowany wizualnie
<!-- hidden: nothing sees it -->
<div hidden>Completely hidden</div>

<!-- aria-hidden: visual users see it, screen readers skip it -->
<span aria-hidden="true">★★★★☆</span>
<span class="sr-only">4 out of 5 stars</span>

Wzorzec pokazywania i ukrywania

Klasyczny przełącznik pokazywania i ukrywania z użyciem hidden:

<button
  aria-expanded="false"
  aria-controls="menu"
  id="menu-btn"
>Menu</button>

<ul id="menu" hidden>
  <li><a href="/">Home</a></li>
  <li><a href="/about">About</a></li>
</ul>

<script>
document.getElementById('menu-btn').addEventListener('click', function() {
  const menu = document.getElementById('menu');
  const expanded = this.getAttribute('aria-expanded') === 'true';
  menu.hidden = expanded;
  this.setAttribute('aria-expanded', !expanded);
});
</script>

Wartość until-found (nowość)

HTML 5.1+ wprowadził hidden="until-found" do oznaczania treści, którą można wyszukiwać, ale która jest domyślnie zwinięta:

<details>
  <summary>Read More</summary>
  <div hidden="until-found" id="more-content">
    <p>This content is collapsed but findable by Ctrl+F.</p>
  </div>
</details>
<!-- hidden="until-found" hides visually but allows browser Ctrl+F to find and reveal it -->
<!-- Only supported in Chromium-based browsers currently -->

Zachowanie czytników ekranu

Atrybut hidden całkowicie ukrywa treść przed technologiami asystującymi:

  • Czytniki ekranu pomijają ukryte elementy
  • Przeniesienie fokusu klawiszem Tab nie obejmuje ukrytych elementów
  • Jest to właściwe rozwiązanie w przypadku okien modalnych, menu wysuwanych poza ekran i warunkowych paneli, których nie należy przeglądać, gdy są ukryte

Typowe zastosowania

Kiedy używać atrybutu hidden:

  • Okna modalne przed ich otwarciem
  • Zawartość paneli kart (pokazywanie panelu aktywnej karty i ukrywanie pozostałych)
  • Kreatory podzielone na kroki (pokazywanie bieżącego kroku)
  • Stopniowe ujawnianie treści (pokazywanie dodatkowych informacji po kliknięciu)
  • Stany ładowania (zastępowanie wskaźnika ładowania treścią)

Zapisywanie stanu ukrycia

Użyj localStorage, aby pamiętać stan widoczności między kolejnymi wczytaniami strony:

const panel = document.getElementById('info-panel');
const key = 'info-panel-visible';

// Restore state:
if (localStorage.getItem(key) === 'false') {
  panel.hidden = true;
}

// On toggle:
document.getElementById('toggle-btn').addEventListener('click', () => {
  panel.hidden = !panel.hidden;
  localStorage.setItem(key, !panel.hidden);
});

Szybkie sprawdzenie

Czym różni się atrybut hidden od aria-hidden?

Podsumowanie: atrybut hidden

Najważniejsze informacje o atrybucie hidden:

  • hidden — odpowiednik display: none
  • Atrybut logiczny: obecność oznacza ukrycie, a brak oznacza widoczność
  • Element zostaje usunięty z drzewa dostępności (w przeciwieństwie do visibility: hidden)
  • Przełączanie za pomocą element.hidden = true/false
  • aria-hidden="true" ukrywa element tylko przed technologiami asystującymi, ale zachowuje jego renderowanie wizualne

Często zadawane pytania

Czy lekcja „Atrybut hidden” jest bezpłatna?

Tak — pełny tekst „Atrybut hidden” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu HTML Academy, przejdź na CoddyKit PRO. Kurs HTML Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Atrybut hidden”?

Przełączać widoczność elementu za pomocą logicznego atrybutu hidden. Ćwiczysz HTML Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć HTML Academy?

Nie wymagamy żadnego doświadczenia. HTML Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Atrybut hidden”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji HTML Academy?

Tak. Każda lekcja HTML Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. id, class, style i title
  2. Atrybut hidden
  3. tabindex i accesskey
  4. Własne atrybuty danych data-*
← Powrót do HTML Academy