aria-setsize
Totalt antal objekt i en uppsättning när DOM:en inte innehåller dem alla. Paras med aria-posinset så att en skärmläsare kan annonsera "objekt 14 av 5 000" även om bara fem är renderade. Använd -1 om totalen är okänd.
När du ska använda det
Alltid när du använder aria-posinset. De två attributen är ett par: position är meningslös utan totalen. Vanliga fall är virtualiserade listor, sidnumrerade rutnät, filtrerade comboboxar och oändliga flöden — var som helst där DOM:en bara innehåller ett fönster in i en större samling.
Giltigt på objekt inuti behållare som är inherent uppsättningsliknande: option, menuitem, treeitem, tab, row, article inuti ett feed. Attributet sätts på objekten, inte behållaren.
Hur det fungerar
Värdet är ett heltal. Använd det verkliga totalet när du känner till det. Använd -1 när totalet är genuint obegränsat eller okänt — ett livesökflöde som kontinuerligt laddar fler resultat, till exempel. Vissa skärmläsare annonserar -1 som “många” eller utelämnar antalet; andra faller tyst tillbaka till antalet syskon.
Uppdatera aria-setsize när den underliggande uppsättningen förändras: ett nytt filter, en sortering, en borttagen rad. Varje objekt i det synliga fönstret måste bära samma aria-setsize-värde; felmatchade värden mellan syskon ger förvirrande annonseringar som “1 av 10” följt av “2 av 9”.
Vanliga fel
- Att sätta
aria-setsizepå behållaren i stället för på varje objekt. Attributet är per objekt. - Att glömma att uppdatera värdet efter ett filter eller en sortering, så att användaren hör det ofiltrerade totalet trots att många resultat inte längre är nåbara.
- Inkonsekventa
aria-setsize-värden mellan syskon — ett objekt säger100, nästa säger99. - Att använda
aria-setsizepå objekt vars behållare redan innehåller alla objekt i DOM-ordning. Hjälpmedlet räknade korrekt; att lägga till attributet introducerar avvikelse. - Noll eller negativa värden annat än
-1. Enbart positiva heltal och-1är meningsfulla. - Att glömma
aria-posinset.aria-setsizeensamt talar om hur många objekt som finns men inte var användaren befinner sig.
Exempel
<!-- 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>