Standardit · ARIA

Rooli Yhdistelmäwidget

tree

Merkitsee elementin hierarkkiseksi treeitem-kohteiden säilöksi — tiedostoselain, sisäkkäiset kategoriat tai organisaatiokaavio. Yksi sarkainpysähdys, nuolinäppäinnavigointi, laajennus ja kutistus. Natiiveja HTML-vastineita ei ole.

Milloin käyttää

Todelliseen hierarkkiseen selaimeen: tiedostojärjestelmä, organisaatiokaavio, syvästi sisäkkäinen taksonomia. Lapset ovat role="treeitem" -elementtejä, ryhmiteltyinä tarvittaessa välitason role="group" -koontielementtien sisään.

Jos “puusi” on todellisuudessa kahden tai kolmen tason linkeistä koostuva navigointivalikko, älä käytä role="tree". Käytä sen sijaan <nav>-elementtiä sisäkkäisten <ul>- ja <a>-elementtien kanssa — käyttäjät odottavat navigoinnissa Sarkain + Enter -toimintoa; nuolinäppäinpuunavigointi sivustovalikossa on vierasta ja hidasta.

Puulla TÄYTYY olla saavutettava nimi. Aseta aria-multiselectable="true", jos useita treeitem-kohteita voidaan valita samanaikaisesti.

Näppäimistö- ja kohdistussopimus

APG treeview -mallin mukaan:

  • Sarkain siirtää kohdistuksen puuhun, kohdistuneen (tai ensimmäisen) treeitem-kohteen päälle; Sarkain siirtää kohdistuksen ulos.
  • Ylös/Alas-nuolet siirtävät kohdistusta näkyvien solmujen välillä, ohittaen kutistetut lapset.
  • Oikea nuoli: jos kutistettu, laajenna; jos laajennettu, siirry ensimmäiseen lapseen.
  • Vasen nuoli: jos laajennettu, kutista; jos kutistettu, siirry vanhempaan.
  • Home / End siirtää ensimmäiseen / viimeiseen näkyvään solmuun.
  • Enter tai Välilyönti valitsee nykyisen treeitem-kohteen.
  • Pikakirjoitus: kirjainten kirjoittaminen hyppää vastaaviin näkyviin solmuihin.
  • Monivalintapuissa: Shift+nuoli laajentaa yhtenäistä valintaa; Ctrl/Cmd+napsautus vaihtaa yksittäistä valintaa.

Käytä kiertävää tabindex-arvoa: vain nykyisellä kohdistuneella treeitem-kohteella on tabindex="0".

Yleiset virheet

  • Jokaisella treeitem-kohteella on tabindex="0". Malli on yksi sarkainpysähdys.
  • Puulla ei ole saavutettavaa nimeä. Ruudunlukuohjelman maamerkkinavigoinnilla ei ole mitään ilmoitettavaa.
  • Lapsi-treeitem-kohteet ovat vanhemmassa ilman koostavaa role="group" -elementtiä. Ruudunlukuohjelmat eivät voi ilmoittaa ryhmää kokonaisuutena.
  • aria-expanded="false" lehti-treeitem-kohteilla — ilmoittaa tyhjän kutistettavan tilan.
  • Oikea/Vasen nuoli käytetään seuraavaan/edelliseen sisareen siirtymiseen laajentamisen/kutistamisen sijaan.

Esimerkki

<ul role="tree" aria-label="Project files">
  <li role="treeitem" aria-expanded="true" tabindex="0">
    src
    <ul role="group">
      <li role="treeitem" tabindex="-1">index.ts</li>
      <li role="treeitem" aria-expanded="false" tabindex="-1">
        components
        <ul role="group">
          <li role="treeitem" tabindex="-1">Button.tsx</li>
        </ul>
      </li>
    </ul>
  </li>
  <li role="treeitem" tabindex="-1">README.md</li>
</ul>