Rôl ARIA sy'n gwrthdaro
Mae Silktide yn gwirio elfennau sy'n datgan rôl benodol yn erbyn yr ystyr sydd ganddynt eisoes yn HTML. Mae'n adrodd am rolau na chaniateir ar yr element honno, a rolau sy'n ailadrodd yn unig yr hyn y mae'r elfen eisoes yn ei olygu.
<!-- Problem: ni all elfen nav fod yn fotwm -->
<nav role="button">…</nav>
<!-- Problem: diangen, mae gan nav y rôl hon eisoes -->
<nav role="navigation">…</nav>
<!-- Trwsio: gadewch i'r elfen siarad drosti ei hun -->
<nav>…</nav>
Pam mae hyn yn bwysig
Mae ystyr adeiledig i bob elfen y mae yn dibynnu arni. Mae rôl sy'n gwrthdaro â'r ystyr honno yn creu element sy'n edrych fel un peth ond yn cyhoeddi ei hun fel peth arall - gallai glywed "botwm" ar yr hyn sydd mewn gwirionedd yn llywio'r safle, a cholli'r tirnod y mae'n ei ddefnyddio i ganfod ei ffordd o amgylch y dudalen. Mae rolau diangen yn llai niweidiol ond maent yn ychwanegu sŵn, yn gwahodd camgymeriadau yn y dyfodol, ac yn dynodi bod ARIA yn cael ei ddefnyddio lle nad oes ei angen.
Sut i'w drwsio
- Ar gyfer rôl sy'n gwrthdaro, naill ai tynnwch y rôl neu newidiwch i elfen
sydd wir yn cario'r ystyr rydych ei eisiau - os dylai weithredu fel
botwm, defnyddiwch
<button>. - Ar gyfer rôl ddiangen fel
<nav role="navigation">neu<button role="button">, dilëwch briodwedd y rôl. Mae'r elfen eisoes yn datgelu'r rôl honno ar ei phen ei hun.
Sut mae Silktide yn profi hyn
- Dewch o hyd i bob elfen ar y dudalen sydd â phriodwedd
role, gan hepgor rolau anhysbys neu haniaethol (caiff y rheini eu hadrodd gan Rôl ARIA annilys). - Cymharwch y rôl â'r cyfuniadau y mae manyleb ARIA in HTML yn eu caniatáu ar gyfer yr elfen honno, ac adroddwch am rolau nad yw'r elfen yn eu caniatáu.
- Adroddwch am rolau sy'n dyblygu rôl oblygedig yr elfen ei hun, ac eithrio
role="list"ar<ul>a<ol>(gweler isod). - Pan fydd priodwedd rôl yn rhestru sawl rôl, dim ond y rôl ARIA gyntaf a gydnabyddir sy'n cael ei hystyried, sef yr un a ddefnyddir gan borwyr. Caiff geiriau anhysbys o'i blaen eu hepgor.
Mae canfyddiadau'n gwahaniaethu rhwng y ddau achos, fel y gallwch flaenoriaethu gwrthdaro dros ailadrodd.
Datrys problemau
Mae'r rôl ddiangen yno ar gyfer porwyr hŷn
Ar un adeg, argymhellwyd rolau tirnod penodol fel role="navigation" fel
rhwyd ddiogelwch ar gyfer hen dechnoleg gynorthwyol. Mae cefnogaeth i'r elfennau brodorol
wedi bod yn gyffredinol ers blynyddoedd, ac mae'r rôl ddyblyg bellach yn costio mwy o ran
cynnal a chadw nag y mae'n ei ddychwelyd. Tynnwch hi, neu
y canfyddiad os yw eich polisi cymorth
yn gofyn am ei chadw.
Nid adroddir am role="list" ar restr
Mae Safari gyda VoiceOver yn rhoi'r gorau i gyhoeddi <ul> neu <ol> fel rhestr pan fydd ei
fwledi'n cael eu tynnu gyda list-style: none. Mae ychwanegu role="list" yn adfer
y rhestr, felly nid yw Silktide yn ei hadrodd fel rôl ddiangen ar yr elfennau hynny.