Desain · Pasal DSN-13
Kendali isian lahir dari UiField, label dan kendalinya tidak pernah terpisah
Label dan kendali satu komponen.
Sudah dipakai project lain.
Isian teks, pilihan, dan area teks memakai UiField. Elemen <input>,
<select>, dan <textarea> telanjang hanya sah di dalam berkas yang
mendefinisikan primitif itu.
Kenapa: label dan kendali disatukan dalam satu komponen karena
memisahkannya adalah cara paling umum kehilangan kaitan for/id — dan label
tanpa kaitan terlihat benar sepenuhnya sampai ada yang mencoba memakainya
dengan pembaca layar. Ini kelas cacat yang tak pernah tertangkap peninjauan
visual, sama seperti aturan :focus-visible yang pernah mati diam-diam
(DSN-09).
Cara menerapkan: UiField menerima satu id dan menurunkan for, name,
serta aria-describedby darinya. error merangkap hint: saat ia terisi,
pesannya yang tampil dan kendalinya sekaligus ditandai aria-invalid. Satu
tempat, satu keadaan — bukan dua prop yang bisa bertentangan.
Utang saat ini: 56.