1.3.1 Nápovedy k vstupným poliam sú priradené iba atribútom aria-details a čítač obrazovky ich pri zameraní neprečíta
Porušenie sa týka celého webového sídla.
Popis problému:
Komponent Input (src/components/FormComponents.tsx) priraďuje k poľu jeho nápovedu atribútom aria-details namiesto aria-describedby, napríklad pole „Príjmy“ v prvom kroku sprievodcu:
<span class="govuk-hint" id="t1r10_prijmy-hint">Vaše celkové príjmy prijaté na účet (zaplatené faktúry) alebo v hotovosti (napr. cez pokladňu) v roku 2025. Uvádzajte iba príjmy zo živnosti.</span> <input id="t1r10_prijmy" aria-details="t1r10_prijmy-hint" …>
Pri chybe dostane pole aria-describedby s chybovým hlásením, nápoveda však zostane iba v aria-details. Týka sa to všetkých polí s nápovedou — napríklad „Sociálne poistenie“, „Zdravotné poistenie“, „Zaplatené preddavky“, polí v krokoch „Zamestnanie“ a „Dohody“, „IBAN“ a polí manžela alebo manželky.
Overené čítačom obrazovky NVDA 2026.2 vo Firefoxe 158 a v Chrome 154 (3. 10. 2026): pri zameraní poľa NVDA oznámi vo Firefoxe „Príjmy, edit, has auto complete, has details, blank“ a v Chrome „Príjmy, edit, has details, blank“. Vo Firefoxe text nápovedy prečíta až na samostatný príkaz NVDA+D.
Dopad:
Nápovedy obsahujú pokyny, bez ktorých sa pole nedá správne vyplniť (čo sa do sumy započítava, za ktoré obdobie, kedy uviesť 0). Vidiaci používateľ ich vidí pri poli, používateľ čítača obrazovky pri prechode formulárom počuje iba „has details“ a text nápovedy dostane, len ak pozná a použije osobitný príkaz čítača. Vzťah medzi poľom a jeho pokynom tak nie je sprístupnený tak, ako ho asistenčné technológie bežne čítajú. Postihnutí sú nevidiaci a ťažko slabozrakí používatelia čítačov obrazovky.
Závažnosť: stredná — pokyny sú dostupné iba náhradnou cestou, ktorú väčšina používateľov nepozná.
Efektívne riešenie:
Pre splnenie kritéria úspešnosti je potrebné nápovedu priradiť atribútom aria-describedby a pri chybe uviesť obe identifikátory — chybové hlásenie aj nápovedu:
aria-describedby={[meta.error && `${name}-error`, hint && `${name}-hint`].filter(Boolean).join(' ') || undefined}Atribút aria-details je určený pre rozsiahle popisy (napríklad komentáre alebo poznámky pod čiarou), nie pre krátke pokyny k poľu. Prázdny element <span class="govuk-hint"> pri poliach bez nápovedy je vhodné nevykresľovať.