aria-setsize
Det samlede antal elementer i et sæt, når DOM'en ikke indeholder dem alle. Parres med aria-posinset, så en skærmlæser kan annoncere "element 14 af 5.000" selv om kun fem er renderet. Brug -1 hvis totalen er ukendt.
Hvornår bruges det
Når du bruger aria-posinset. De to attributter er et par: positionen er meningsløs uden totalen. Typiske tilfælde er virtualiserede lister, paginerede grids, filtrerede comboboxe og feeds med uendelig scroll — overalt hvor DOM’en kun indeholder et vindue ind i en større samling.
Gyldig på elementer inde i beholdere, der i sagens natur er sætlignende: option, menuitem, treeitem, tab, row, article inde i et feed. Attributten sættes på elementerne, ikke på beholderen.
Sådan fungerer det
Værdien er et heltal. Brug den sande total når du kender den. Brug -1 når totalen er reelt ubegrænset eller ukendt — et live-søgefeed der løbende indlæser flere resultater, for eksempel. Nogle skærmlæsere annoncerer -1 som “mange” eller udelader blot antallet; andre falder lydløst tilbage til søskendeantallet.
Opdater aria-setsize når det underliggende sæt ændres: et nyt filter, en sortering, en slettet række. Hvert element i det synlige vindue skal bære den samme aria-setsize-værdi; uensartede værdier på tværs af søskende producerer forvirrende annonceringer som “1 af 10” efterfulgt af “2 af 9”.
Typiske fejl
- At sætte
aria-setsizepå beholderen i stedet for på hvert element. Attributten er per element. - At glemme at opdatere værdien efter et filter eller en sortering, så brugeren hører den ufiltrerede total selvom mange resultater ikke længere er tilgængelige.
- Inkonsistent
aria-setsizepå tværs af søskende — ét element siger100, det næste siger99. - At bruge
aria-setsizepå elementer, hvis beholder allerede indeholder alle elementer i DOM-rækkefølge. Hjælpeteknologien talte korrekt; tilføjelse af attributten introducerer drift. - Nul- eller negative værdier ud over
-1. Kun positive heltal og-1er meningsfulde. - At glemme
aria-posinset.aria-setsizealene fortæller brugeren hvor mange elementer der findes, men ikke hvor de befinder sig.
Eksempel
<!-- Tree where lazy-loaded children are added as the user expands branches -->
<ul role="tree" aria-label="Files">
<li
role="treeitem"
aria-level="2"
aria-posinset="1"
aria-setsize="248"
>
invoice-001.pdf
</li>
<li
role="treeitem"
aria-level="2"
aria-posinset="2"
aria-setsize="248"
>
invoice-002.pdf
</li>
<!-- 246 more, lazy-loaded as user scrolls -->
</ul>