Siirry sisältöön
SilktideOhje

Puuttuva ARIA-lapsirooli

Silktide tarkistaa ARIA-rooleilla toteutetut säilöwidgetit, kuten välilehtirivit, valikot ja luetteloruutuja, ja varmistaa, että kukin niistä sisältää sellaisia kohteita, joita sen on tarkoitus sisältää. Välilehtirivi ilman välilehtiä tai valikko ilman valikkokohteita ilmoitetaan widgetinä, mutta se ei tarjoa mitään käytettävää.

<!-- Ongelma: tablistin on sisällettävä elementtejä, joiden role="tab" -->
<div role="tablist">
  <button>Yleiskatsaus</button>
</div>

<!-- Korjaus: anna lapsielementeille niiden vaadittu rooli -->
<div role="tablist">
  <button role="tab">Yleiskatsaus</button>
</div>

Miksi tämä on tärkeää

Yhdistetyt -roolit kuvaavat widgetiä kokonaisuutena: tablist lupaa välilehtiä, listbox vaihtoehtoja ja menu valikkokohteita. siirtyvät näille widgeteille erikoistuneeseen navigointiin ja odottavat luvattuja lapsielementtejä. Kun lapsielementeiltä puuttuvat niiden roolit, widget ilmoittaa itsestään ja käyttäytyy sitten tyhjänä kuorena – käyttäjät voivat siirtyä siihen, mutta eivät löydä sen sisältä mitään, kun taas näkevät käyttäjät näkevät täysin toimivan hallintaelementin.

Näin korjaat sen

  1. Lisää vaadittu rooli jokaiseen säilön sisällä olevaan kohteeseen – esimerkiksi role="tab" jokaiseen role="tablist"-elementin sisällä olevaan hallintaelementtiin.
  2. Jos kohteiden on oltava muualla koodissa, yhdistä ne säilöön käyttämällä säilössä aria-owns-attribuuttia.
  3. Jos säilö ei todellisuudessa ole kyseisenlainen widget, poista tai korjaa sen rooli.

Yleiset parit: tablist tarvitsee tab-elementin; listbox tarvitsee option-elementin; menu ja menubar tarvitsevat menuitem-elementin (tai sen valintaruutu- ja valintanappimuunnelmat); radiogroup tarvitsee radio-elementin; tree tarvitsee treeitem-elementin; grid ja table tarvitsevat row-elementin; row tarvitsee soluja tai otsikoita.

Näin Silktide testaa tämän

  1. Etsi jokainen elementti, jonka ARIA-rooli edellyttää tiettyjä lapsirooleja.
  2. Ohita säilöt, joissa on aria-busy="true", koska niiden kohteita ladataan yhä.
  3. Etsi jokaisen jäljellä olevan säilön jälkeläiselementeistä, mukaan lukien aria-owns-attribuutilla liitetyt elementit, vähintään yksi elementti, jolla on vaadittu lapsirooli. Natiivielementit huomioidaan niiden implisiittisen roolin mukaisesti: taulukkorivin (<tr>) vaatimukset täyttyvät sen <td>- ja <th>-soluilla.
  4. Raportoi säilöt, joista ei löydy yhtäkään tällaista elementtiä.

Vianmääritys

Kohteet ladataan myöhemmin komentosarjalla

Silktide testaa sivun sen latautuessa. Jos luetteloruutu tai valikko täytetään vain tarvittaessa, se ilmoitetaan siihen asti tyhjänä; renderöi mahdollisuuksien mukaan ainakin ensimmäiset kohteet sivun mukana. Kun säilön kohteita ladataan vielä, merkitse se aria-busy="true"-attribuutilla ja poista attribuutti, kun kohteet ovat paikoillaan. Silktide ei raportoi varatuksi merkittyä säilöä.

Lisätietoja

Viimeksi päivitetty

Oliko tästä sivusta apua?