0Pricing
HTML Academy · Lekcja

aria-label aria-labelledby i aria-describedby

Nadawanie elementom dostępnych nazw i opisów

aria-label aria-labelledby i aria-describedby to bezpłatna lekcja HTML Academy na CoddyKit. To lekcja 3 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.

Dlaczego dostępne nazwy mają znaczenie

Każdy element interaktywny potrzebuje dostępnej nazwy — ciągu tekstowego używanego przez technologię wspomagającą do jego identyfikacji. Bez dostępnej nazwy czytniki ekranu nie mogą poinformować użytkowników, do czego służy przycisk lub pole tekstowe.

aria-label

aria-label bezpośrednio przypisuje elementowi tekstową dostępną nazwę:

<button aria-label="Close dialog">×</button>
<!-- The × character has no accessible meaning
     aria-label provides the name: 'Close dialog, button' -->

<input type="search" aria-label="Search products">
<!-- No visible label — aria-label provides the accessible name -->

aria-labelledby

aria-labelledby wskazuje inny element jako dostępną nazwę:

<h2 id="section-title">Billing Information</h2>
<form aria-labelledby="section-title">
  <!-- Form's accessible name is 'Billing Information' -->
</form>

<!-- Multiple id references: -->
<button aria-labelledby="action-verb object-name">
  Delete
</button>
<span id="object-name" hidden>User Account</span>
<!-- Screen reader: 'Delete User Account, button' -->

aria-describedby

aria-describedby dostarcza rozszerzony opis (uzupełnienie nazwy):

<label for="pwd">Password</label>
<input
  type="password"
  id="pwd"
  aria-describedby="pwd-hint"
>
<p id="pwd-hint">Must be 8+ characters with one uppercase letter and one number.</p>
<!-- Screen reader: 'Password [input]' then reads the description on focus -->

Etykieta a opis

Różnica między dostępną nazwą a opisem:

  • Dostępna nazwa — identyfikuje element (aria-label, aria-labelledby lub element label)
  • Opis — uzupełnia nazwę o dodatkowy kontekst (aria-describedby)
  • Czytniki ekranu ogłaszają: nazwę, rolę, stan → a następnie opis

aria-label w punktach orientacyjnych

Używaj aria-label, aby rozróżniać wiele punktów orientacyjnych tego samego typu:

<nav aria-label="Primary">...</nav>
<nav aria-label="Breadcrumb">...</nav>

<!-- Screen reader landmark list:
     'Primary, navigation'
     'Breadcrumb, navigation' -->

<!-- When only one nav, aria-label is optional but still helpful -->

aria-labelledby w sekcjach

Powiąż sekcje z ich nagłówkami, aby zapewnić kontekst użytkownikom czytników ekranu:

<section aria-labelledby="about-heading">
  <h2 id="about-heading">About Our Team</h2>
  <p>We are a team of passionate developers...</p>
</section>
<!-- Screen reader: 'About Our Team, region' when entering section -->

aria-label a widoczny tekst

aria-label zastępuje widoczny tekst — zachowaj ostrożność:

<button aria-label="Delete account permanently">
  Delete
</button>
<!-- Screen reader hears: 'Delete account permanently'
     Sighted user reads: 'Delete' -->

<!-- Best practice: visible text and aria-label should agree
     If possible, include extra context in visible text too:
     <button>Delete account permanently</button> -->

<!-- aria-label should start with the visible text when possible
     for speech recognition users who use voice commands -->

aria-describedby dla błędów

Powiąż komunikaty o błędach z odpowiadającymi im polami:

<label for="email">Email</label>
<input
  type="email"
  id="email"
  aria-describedby="email-error"
  aria-invalid="true"
>
<span id="email-error" role="alert">
  Please enter a valid email address.
</span>
<!-- When input receives focus, screen reader reads:
     'Email [field], invalid. Please enter a valid email address.' -->

Wiele odwołań aria-describedby

aria-describedby może wskazywać wiele elementów:

<input
  type="password"
  aria-label="New password"
  aria-describedby="pwd-hint pwd-strength"
>
<p id="pwd-hint">Must be 8+ characters.</p>
<meter id="pwd-strength" aria-label="Password strength" value="2" max="4">Medium</meter>
<!-- Both elements are announced as the description -->

Widoczne i ukryte etykiety

Gdy nie można użyć widocznej etykiety, zastosuj klasę sr-only:

<label for="search" class="sr-only">Search</label>
<input type="search" id="search" placeholder="Search...">

/* Visually hidden but in accessibility tree: */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

Szybkie sprawdzenie

Jaka jest różnica między aria-label a aria-labelledby?

Podsumowanie: etykiety ARIA

Najważniejsze zasady nadawania dostępnych nazw:

  • aria-label — nazwa tekstowa umieszczona bezpośrednio w elemencie, używana bez widocznej etykiety
  • aria-labelledby — odwołuje się za pomocą identyfikatora id do istniejącego widocznego tekstu
  • aria-describedby — dodatkowy opis (odczytywany po nazwie)
  • Preferuj widoczne etykiety i natywne elementy label HTML
  • aria-label w punktach orientacyjnych pozwala rozróżniać wiele regionów tego samego typu

Często zadawane pytania

Czy lekcja „aria-label aria-labelledby i aria-describedby” jest bezpłatna?

Tak — pełny tekst „aria-label aria-labelledby i aria-describedby” 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 „aria-label aria-labelledby i aria-describedby”?

Nadawanie elementom dostępnych nazw i opisów Ć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 3 z 4.

Ile czasu zajmuje lekcja „aria-label aria-labelledby i aria-describedby”?

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. Kiedy używać ARIA zamiast natywnego HTML
  2. role button alert dialog i landmark
  3. aria-label aria-labelledby i aria-describedby
  4. aria-hidden i aria-live
← Powrót do HTML Academy