aria-selected
Wskazuje, że element wewnątrz kontenera z modelem jednokrotnego lub wielokrotnego wyboru jest aktualnie zaznaczony. Używany na rolach tab, option, gridcell, treeitem i podobnych. Różni się od aria-checked (pole wyboru/przycisk radiowy) i aria-pressed (przycisk przełączający).
Kiedy stosować
Na elementach należących do kontenera z modelem zaznaczenia:
role="tab"wewnątrztablist(dokładnie jeden zaznaczony).role="option"wewnątrzlistbox(jeden lub wiele, w zależności odaria-multiselectable).role="treeitem"wewnątrztree.role="gridcell",role="row",role="columnheader",role="rowheader"wewnątrzgrid.
Stan opisuje relację między elementem a zaznaczeniem jego kontenera — nie jest to samodzielne włączenie/wyłączenie jak w przypadku pola wyboru. Należy wybrać odpowiedni stan dla danego wzorca:
aria-selected— elementy w kontekście zakładki, opcji, drzewa lub siatki.aria-checked— pola wyboru i przyciski radiowe (niezależne wybory).aria-pressed— przyciski przełączające (sam przycisk jest włączony lub wyłączony).
Częstym błędem jest umieszczanie aria-selected="true" na elemencie <button>, by oznaczać „użytkownik kliknął mnie jako ostatni”. Jeśli element nie jest częścią widżetu w stylu select, należy zamiast tego użyć aria-pressed lub aria-current.
Jak utrzymywać synchronizację
Prawidłowe wartości to "true" i "false". Należy renderować "false" na niezaznaczonych elementach zamiast pomijać atrybut — technologia wspomagająca ogłasza wtedy poprawnie informacje o pozycji w stylu „1 z 5”. W widżecie z pojedynczym wyborem (tablist, listbox z pojedynczym wyborem) dokładnie jeden element powinien mieć wartość "true" w danym momencie.
Atrybut musi zmieniać się równocześnie ze wskaźnikiem wizualnym i zarządzaniem fokusem. W tablist przeniesienie zaznaczenia zwykle przenosi też tabindex="0" na zaznaczoną zakładkę i ustawia tabindex="-1" na pozostałe.
Typowe błędy
- Używanie
aria-selectedna przycisku lub łączu poza jakimkolwiek kontenerem w stylu select. - Wiele elementów z
aria-selected="true"w tablist z pojedynczym wyborem lub listbox. - Zapominanie o ustawieniu
aria-selected="false"na poprzednio zaznaczonym elemencie przy przeniesieniu zaznaczenia. - Stylowanie wyglądu „zaznaczony” za pomocą CSS bez przełączania atrybutu.
- Mylenie
aria-selectedzaria-checkedna opcjach listbox (zawszeselected) lub zaria-currentna łączu nawigacyjnym (current, nieselected). - Ustawianie
aria-selectednarole="menuitem"— elementy menu tego nie obsługują; należy używaćaria-checkeddla pól wyboru/przycisków radiowych w menu.
Przykład
<div role="tablist" aria-label="Sections">
<button role="tab" id="tab-1" aria-selected="true" tabindex="0" aria-controls="panel-1">Overview</button>
<button role="tab" id="tab-2" aria-selected="false" tabindex="-1" aria-controls="panel-2">Details</button>
<button role="tab" id="tab-3" aria-selected="false" tabindex="-1" aria-controls="panel-3">Reviews</button>
</div>