HTML Academy · leksjon

aria-hidden og aria-live

Skjul dekorative elementer og annonser dynamisk innhold til skjermlesere

Leksjon 4 av 412 trinn

aria-hidden og aria-live er en gratis leksjon i HTML Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i HTML Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i HTML Academy inneholder totalt 4 leksjoner.

aria-hidden

aria-hidden="true" fjerner et element fra tilgjengelighetstreet — skjermlesere hopper helt over det:

<!-- Decorative icon: visible but skip by screen readers -->
<span aria-hidden="true">★★★★☆</span>
<span class="sr-only">4 out of 5 stars</span>

<!-- Decorative separator -->
<img src="divider.svg" alt="" aria-hidden="true">

<!-- Note: aria-hidden does NOT affect visibility or tab focus
     A button with aria-hidden is still tabbable! -->

Bruksområder for aria-hidden

Passende bruksområder for aria-hidden:

<!-- 1. Icons next to descriptive text -->
<button>
  <svg aria-hidden="true"><!-- icon --></svg>
  Save Document
</button>

<!-- 2. Repeated text in a card link -->
<a href="/blog/post-1">
  <span aria-hidden="true">Read more</span>
  <span class="sr-only">Read more: HTML5 Forms Guide</span>
</a>

<!-- 3. UI decoration (dots, decorative borders) -->
<span aria-hidden="true">•••</span>

Fallgruve ved aria-hidden

Bruk aldri aria-hidden på fokuserbare elementer:

<!-- BAD: button is in tab order but invisible to screen readers -->
<button aria-hidden="true">Close</button>

<!-- Users reach this via Tab but hear nothing
     They cannot tell if they're on a button or lost focus -->

<!-- If you want to hide from both: use hidden attribute -->
<button hidden>Close</button>

<!-- Or: disabled (but disabled removes from tab order) -->
<button disabled aria-hidden="true">Close</button>

aria-live

aria-live gjør et område til et live-område — endringer kunngjøres automatisk:

<!-- polite: announce when user is idle -->
<div aria-live="polite" id="status"></div>

<!-- assertive: announce immediately, interrupting current speech -->
<div aria-live="assertive" id="errors"></div>

<script>
// Inject text to trigger announcement:
document.getElementById('status').textContent = 'File saved successfully.';
// Screen reader announces this without user moving focus
</script>

Verdier for aria-live

De tre aria-live-verdiene:

  • off — standard: endringer kunngjøres ikke
  • polite — kunngjøres når brukeren tar en pause; for ikke-hastende oppdateringer
  • assertive — kunngjøres umiddelbart og avbryter; for feil og kritiske varsler

aria-atomic

aria-atomic styrer om hele området eller bare de endrede delene kunngjøres:

<div aria-live="polite" aria-atomic="true" id="timer">
  Time remaining: 05:00
</div>
<!-- aria-atomic="true": announce the whole div each update -->
<!-- Without it: only the changed text node is announced
     'Time remaining: 05:00' vs just '05:00' -->

<script>
setInterval(() => {
  document.getElementById('timer').textContent = `Time remaining: ${getTime()}`;
}, 1000);
</script>

aria-relevant

aria-relevant angir hvilke typer endringer som kunngjøres:

<div
  aria-live="polite"
  aria-relevant="additions text"   <!-- announce added content and text changes -->
  id="feed"
>
  <!-- New items added here -->
</div>
<!-- Values: additions, removals, text, all
     Default: additions text
     aria-relevant="removals" needed to announce deleted items -->

Beste praksis for live-områder

Retningslinjer for live-områder:

  • Bruk ett vedvarende live-område per type kunngjøring (ikke opprett og fjern det)
  • Start med tomt innhold; sett inn tekst for å utløse kunngjøringen
  • Hold kunngjøringene korte — skjermlesere avbryter dem eller kommer på etterskudd
  • For lastetilstander: bruk polite
  • For skjemafeil: bruk assertive eller role="alert"

Mønstre for toast-varsler

Kunngjøring av toast-varsler med live-områder:

<div
  role="status"
  aria-live="polite"
  aria-atomic="true"
  id="toast-container"
  class="sr-only"
></div>

<script>
function showToast(message) {
  const container = document.getElementById('toast-container');
  container.textContent = '';
  // Force rerender for re-announcement:
  requestAnimationFrame(() => {
    container.textContent = message;
  });
}
</script>

aria-busy

aria-busy="true" angir at innholdet oppdateres:

<div id="feed" aria-live="polite" aria-busy="false">
  <!-- content -->
</div>

<script>
const feed = document.getElementById('feed');
feed.setAttribute('aria-busy', 'true');

await loadContent();
feed.innerHTML = newContent;

feed.setAttribute('aria-busy', 'false');
// Only now does the live region announce the update
</script>

Hurtigsjekk

Når bør du bruke aria-live="assertive» sammenlignet med «polite»?

Oppsummering: aria-hidden og aria-live

Det viktigste om skjuling og live-områder:

  • aria-hidden="true" — fjerner elementet fra tilgjengelighetstreet (ikke fokuserbare elementer!)
  • aria-live="polite" — kunngjør endringer når brukeren er inaktiv
  • aria-live="assertive" — kunngjør umiddelbart (for feil)
  • aria-atomic="true" — kunngjør hele området når det endres
  • aria-busy — undertrykker kunngjøringer under lasting
Gratis å komme i gang

Lær deg HTML med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
40
Leksjoner
159

Ofte stilte spørsmål

Er leksjonen «aria-hidden og aria-live» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien HTML Academy, inkludert «aria-hidden og aria-live», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i HTML Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «aria-hidden og aria-live»?

Skjul dekorative elementer og annonser dynamisk innhold til skjermlesere Du øver på HTML Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med HTML Academy?

Ingen tidligere erfaring er nødvendig. HTML Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «aria-hidden og aria-live»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne HTML Academy-leksjonen?

Ja. Alle HTML Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Når De bør bruke ARIA fremfor innebygd HTML
  2. role button alert dialog og landmark
  3. aria-label aria-labelledby og aria-describedby
  4. aria-hidden og aria-live
← Tilbake til HTML Academy