aria-setsize
Número total de elementos de un conjunto cuando el DOM no los contiene todos. Se usa junto con aria-posinset para que un lector de pantalla pueda anunciar «elemento 14 de 5.000» aunque solo se rendericen cinco. Se debe usar -1 si el total es desconocido.
Cuándo se debe usar
Siempre que se use aria-posinset. Los dos atributos forman un par: la posición carece de significado sin el total. Los casos más habituales son listas virtualizadas, cuadrículas paginadas, cuadros combinados filtrados y feeds de desplazamiento infinito — en cualquier situación donde el DOM contiene únicamente una ventana de una colección más amplia.
Es válido en elementos dentro de contenedores que son inherentemente tipo conjunto: option, menuitem, treeitem, tab, row, article dentro de un feed. El atributo se aplica a los elementos, no al contenedor.
Comportamiento
El valor es un entero. Se debe usar el total real cuando se conoce. Se debe usar -1 cuando el total es genuinamente ilimitado o desconocido — por ejemplo, un feed de búsqueda en vivo que continúa cargando más resultados. Algunos lectores de pantalla anuncian -1 como «muchos» u omiten el recuento; otros recurren silenciosamente al número de elementos hermanos.
Se debe actualizar aria-setsize siempre que cambie el conjunto subyacente: un nuevo filtro, una ordenación o una fila eliminada. Cada elemento de la ventana visible debe llevar el mismo valor de aria-setsize; los valores inconsistentes entre elementos hermanos producen anuncios confusos como «1 de 10» seguido de «2 de 9».
Errores frecuentes
- Establecer
aria-setsizeen el contenedor en lugar de en cada elemento. El atributo es por elemento. - Olvidar actualizar el valor tras un filtrado o una ordenación, de modo que el usuario escucha el total sin filtrar aunque muchos resultados ya no estén disponibles.
aria-setsizeinconsistente entre elementos hermanos — un elemento indica100y el siguiente indica99.- Usar
aria-setsizeen elementos cuyo contenedor ya incluye todos los elementos en orden DOM. La tecnología de apoyo contaba correctamente; añadir el atributo introduce desviaciones. - Valores cero o negativos distintos de
-1. Solo los enteros positivos y-1son significativos. - Omitir
aria-posinset.aria-setsizepor sí solo indica al usuario cuántos elementos existen, pero no dónde se encuentra.
Ejemplo
<!-- Árbol donde los hijos se cargan de forma diferida al expandir las ramas -->
<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 más, cargados de forma diferida al desplazarse el usuario -->
</ul>