Rôl plentyn ARIA ar goll
Mae Silktide yn gwirio teclynnau cynhwysydd a grëwyd â rolau ARIA, megis stribedi tabiau, dewislenni a blychau rhestr, ac yn cadarnhau bod pob un yn cynnwys y math o eitemau y dylai eu cynnwys. Caiff stribed tabiau heb dabiau, neu ddewislen heb eitemau dewislen, ei gyhoeddi fel teclyn ond nid yw'n cynnig dim i'w weithredu.
<!-- Problem: a tablist must contain elements with role="tab" -->
<div role="tablist">
<button>Overview</button>
</div>
<!-- Fix: give the children their required role -->
<div role="tablist">
<button role="tab">Overview</button>
</div>
Pam mae hyn yn bwysig
Mae rolau cyfansawdd yn disgrifio teclyn yn ei gyfanrwydd:
mae tablist yn addo tabiau, mae listbox yn addo opsiynau, mae menu yn addo
eitemau dewislen. Mae yn newid i
lywio arbenigol ar gyfer y teclynnau hyn, gan ddisgwyl y plant a addawyd.
Pan nad oes gan y plant eu rolau, mae'r teclyn yn cyhoeddi ei hun ac yna'n
gweithredu fel cragen wag — gall defnyddwyr ei gyrraedd ond ni chânt ddim y tu mewn,
tra bod defnyddwyr sy'n gallu gweld yn gweld rheolydd sy'n gweithio'n llawn.
Sut i'w drwsio
- Ychwanegwch y rôl ofynnol at bob eitem y tu mewn i'r cynhwysydd — er enghraifft,
role="tab"ar bob rheolydd y tu mewn irole="tablist". - Os oes rhaid i'r eitemau fyw mewn man arall yn y cod, cysylltwch hwy gan ddefnyddio
aria-ownsar y cynhwysydd. - Os nad yw'r cynhwysydd yn declyn o'r fath mewn gwirionedd, tynnwch ei rôl neu cywirwch hi yn lle hynny.
Parau cyffredin: mae tablist angen tab; mae listbox angen option; mae menu
a menubar angen menuitem (neu ei amrywiadau blwch ticio a botwm radio);
mae radiogroup angen radio; mae tree angen treeitem; mae grid a table
angen row; mae row angen celloedd neu benawdau.
Sut mae Silktide yn profi hyn
- Canfyddwch bob elfen y mae ei rôl ARIA yn gofyn am rolau plentyn penodol.
- Hepgorwch gynwysyddion sydd wedi'u marcio â
aria-busy="true", sy'n dal i lwytho eu heitemau. - Chwiliwch ddisgynyddion pob cynhwysydd sy'n weddill, gan gynnwys unrhyw elfennau
a fabwysiadwyd gyda
aria-owns, am o leiaf un elfen â rôl plentyn ofynnol. Mae elfennau brodorol yn cyfrif gyda'r rôl sydd ganddynt yn ymhlyg: caiff rhes tabl (<tr>) ei bodloni gan ei gelloedd<td>a<th>. - Rhowch wybod am gynwysyddion lle na cheir yr un ohonynt.
Datrys problemau
Caiff yr eitemau eu llwytho'n ddiweddarach gan sgript
Mae Silktide yn profi'r dudalen wrth iddi lwytho. Os caiff blwch rhestr neu ddewislen ei llenwi
ar alw yn unig, caiff ei chyhoeddi'n wag tan hynny; lle bo modd, rendrwch
yr eitemau cychwynnol o leiaf gyda'r dudalen. Tra bod cynhwysydd yn dal i lwytho
ei eitemau, marciwch ef â aria-busy="true" a thynnwch y briodwedd unwaith y bydd yr
eitemau yn eu lle. Nid yw Silktide yn rhoi gwybod am gynhwysydd sydd wedi'i farcio'n brysur.