Vertical Grid: Accessibility
Nazaj: predstavitveni pregled
1. Pregled in namen
Stanje: osnova [Live], konsolidira obstoječa dejstva (načelo enotnega vira, tako kot pri DataGrid → Accessibility).
2. Predpogoji
osnovna pogodba propertyGrid() že razumljena.
3. Pojmi
Dostopnost tu večinoma nastane brezplačno prek nativnih HTML-elementov
(<details>, <label for>) namesto ročno nastavljenih
atributov ARIA — enako stališče „najprej nativno„ kot v celotni knjižnici.
4. Prvi koraki
Se ne uporablja — konsolidirana referenčna stran.
5. Uporaba
Za potrditev dostopnosti: primerjati tabelo v odseku 6 z dejansko
nastavljenimi ključi vrstice (required/section/controlId).
6. API referenca: pregled atributov ARIA
| Atribut | Kdaj je nastavljen | Vir |
|---|---|---|
| Besedilo za bralnik zaslona na zvezdici obveznega polja | vedno pri required (prek razreda DokuWiki .a11y, ne le vizualna zvezdica) | osnove → validacija in required |
| Naslov odseka, ki se razširi/strne | nativen <details> — brezplačna semantika ARIA, ročni aria-expanded ni potreben | osnove → skupine/odseki |
| Vrstica napake/opozorila | [Live]: z nastavljenim ključem vrstice controlId oznaka dobi for="<controlId>", vrstica stateText dobi ID <controlId>__statetext, kontrolnik pa konservativno vrinjeno povezavo aria-describedby (le pri natanko enem ujemanju id="<controlId>" brez obstoječega aria-describedby-ja — sicer HTML klicatelja ostane nedotaknjen). Brez controlId-ja se vrstica izriše nespremenjeno, kot prej | osnove → $rows (ključ controlId) |
7. Parametri, možnosti in stanja
| Ključ | Učinek na dostopnost |
|---|---|
controlId | omogoči povezavo for/aria-describedby, glej odsek 6 |
required | zvezdica + besedilo za bralnik zaslona |
8. Popolni primeri
echo $widgets->propertyGrid([ ['label' => 'Gostitelj', 'controlId' => 'host-input', 'controlHtml' => '<input type="text" id="host-input" name="host">', 'state' => 'error', 'stateText' => 'Obvezno polje.'], ]);
9. Omejitve in robni primeri
Povezava controlId učinkuje le pri natanko enem ujemanju v
controlHtml-ju — več elementov z istim ID-jem ali že obstoječ
aria-describedby preprečita samodejno vrivanje (glej odsek 6).
10. Dostopnost in združljivost
Ta stran je pregled dostopnosti.
11. Odpravljanje težav
Simptom: aria-describedby manjka kljub nastavljenemu controlId-ju.
Vzrok: controlHtml vsebuje bodisi nobenega ujemanja
id="<controlId>" bodisi več kot eno, ali pa že ima lasten
aria-describedby.
Rešitev: preveriti, da ima controlHtml natanko en element z
ustreznim ID-jem in brez obstoječega aria-describedby-ja.
12. Sorodne teme
- predstavitveni pregled — vsaka kategorija
- Polja obrazca: Accessibility — enako verižanje
aria-describedby, vgrajeno v osnovno pogodbo polj (tam trdno vgrajeno prekfieldAttrs()) - DataGrid: accessibility — vzorec konsolidacije