aria-hidden ja aria-live
Piilota koristeelliset elementit ja ilmoita muuttuvasta sisällöstä ruudunlukijoille
aria-hidden ja aria-live on ilmainen HTML Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu HTML Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. HTML Academy-kurssilla on yhteensä 4 oppituntia.
aria-hidden
aria-hidden="true" poistaa elementin saavutettavuuspuusta — ruudunlukijat ohittavat sen kokonaan:
<!-- 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! -->aria-hiddenin käyttötapaukset
Sopivia aria-hiddenin käyttötapoja:
<!-- 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>aria-hiddenin sudenkuoppa
aria-hidden-määritettä ei pidä koskaan käyttää kohdistettaviin elementteihin:
<!-- 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 muuttaa alueen live-alueeksi — muutoksista ilmoitetaan automaattisesti:
<!-- 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>aria-live-arvot
Kolme aria-live-arvoa:
off— oletus: muutoksista ei ilmoitetapolite— ilmoitetaan, kun käyttäjä pitää tauon; kiireettömiin päivityksiinassertive— ilmoitetaan heti ja keskeyttää nykyisen puheen; virheisiin ja kriittisiin hälytyksiin
aria-atomic
aria-atomic määrittää, ilmoitetaanko koko alueesta vai vain muuttuneista osista:
<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 määrittää, minkä tyyppisistä muutoksista ilmoitetaan:
<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 -->Live-alueiden parhaat käytännöt
Live-alueita koskevat ohjeet:
- Käyttäkää yhtä pysyvää live-aluetta kutakin ilmoitustyyppiä varten (älkää luoko ja poistako sitä)
- Aloittakaa tyhjästä sisällöstä; lisätkää tekstiä ilmoituksen käynnistämiseksi
- Pitäkää ilmoitukset tiiviinä — ruudunlukijat keskeyttävät puheen tai jäävät jälkeen
- Lataustiloissa: käyttäkää polite-arvoa
- Lomakevirheissä: käyttäkää assertive-arvoa tai role="alert"-roolia
Toast-ilmoitusten toteutusmallit
Toast-ilmoituksista ilmoittaminen live-alueilla:
<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" osoittaa, että sisältöä päivitetään:
<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>Pikakysymys
Milloin pitäisi käyttää aria-live="assertive"-arvoa ja milloin "polite"-arvoa?
Kertaus: aria-hidden ja aria-live
Piilottamisen ja live-alueiden perusteet:
aria-hidden="true"— poistaa kohteen saavutettavuuspuusta (ei kohdistettaville elementeille!)aria-live="polite"— ilmoittaa muutoksista, kun käyttäjä pitää tauonaria-live="assertive"— ilmoittaa heti (virheitä varten)aria-atomic="true"— ilmoittaa koko alueesta sen muuttuessaaria-busy— vaimentaa ilmoitukset latauksen aikana
Opi HTML tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 40
- Oppitunnit
- 159
Usein kysytyt kysymykset
Onko oppitunti ”aria-hidden ja aria-live” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa HTML Academy-oppimispolun 3 oppituntia, myös oppitunnin “aria-hidden ja aria-live”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. HTML Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”aria-hidden ja aria-live”?
Piilota koristeelliset elementit ja ilmoita muuttuvasta sisällöstä ruudunlukijoille Harjoittelet HTML Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni HTML Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin HTML Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.
Kuinka kauan ”aria-hidden ja aria-live”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä HTML Academy-oppitunnilla?
Kyllä. Jokainen HTML Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Milloin käytät ARIAa ja milloin natiivia HTML:ää
- role, button, alert, dialog ja landmark
- aria-label, aria-labelledby ja aria-describedby
- aria-hidden ja aria-live