Prompt aksesibilitas untuk review UI React dan Flutter
Prompt aksesibilitas untuk review UI React dan Flutter: prompt siap-salin dan langkah review sederhana untuk keyboard, urutan fokus, label, kontras, dan pembaca layar.

Hal yang sering terlewat saat orang mencoba membuat UI yang aksesibel
Kebanyakan masalah aksesibilitas bukan soal “desain ulang besar”. Mereka adalah detail kecil yang menentukan apakah seseorang bisa menggunakan UI Anda sama sekali.
Yang biasanya rusak duluan cukup konsisten. Halaman bisa terlihat baik, lolos pengecekan visual cepat, tetapi tetap sulit digunakan dengan hanya keyboard atau pembaca layar.
Berikut adalah tempat pertama yang sering gagal pada UI:
- Akses keyboard: kontrol penting tidak bisa dijangkau, atau Anda terjebak di dalam modal
- Urutan fokus dan status fokus: fokus melompat-lompat, atau Anda tidak bisa melihat di mana posisi Anda
- Label dan nama: input dan tombol memiliki nama aksesibel yang tidak jelas atau hilang
- Pengumuman: pembaruan dinamis terjadi tetapi pembaca layar tidak diberitahu
- Kontras dan keterbacaan: teks, ikon, dan status error sulit dilihat
Yang membuatnya rumit adalah betapa mudahnya regresi terjadi. Perubahan “kecil” seperti mengganti tombol dengan ikon, membungkus kartu dengan gesture handler, atau menambahkan dropdown kustom bisa menghapus dukungan keyboard, merusak urutan fokus, atau menghilangkan label tanpa ada yang menyadari.
Skenario umum: sebuah form React mendapat ikon “clear” baru di dalam input. Ikon itu tampak membantu, tetapi tidak bisa difokuskan, tidak punya nama, dan menghalangi event klik. Sekarang pengguna keyboard tidak bisa mengaktifkannya, dan pengguna pembaca layar mendengar kontrol tanpa label.
Posting ini memberi Anda dua hal: prompt yang bisa disalin untuk digunakan pada kode UI (React dan Flutter), dan alur review berulang yang bisa dijalankan dalam beberapa menit. Tujuannya bukan kesempurnaan hari pertama, melainkan menemukan masalah yang memblokir pengguna nyata.
Jika Anda membuat layar produk tetapi bukan spesialis aksesibilitas, ini untuk Anda. Ini juga cocok untuk tim yang memakai alat vibe-coding seperti Koder.ai, di mana perubahan UI bisa terjadi cepat dan Anda butuh pemeriksaan cepat dan konsisten. Jika Anda mau titik awal yang praktis, prompt aksesibilitas untuk review UI React dan Flutter ini dirancang agar bisa dipakai ulang setiap kali Anda mengirim UI.
5 pemeriksaan yang cepat menemukan sebagian besar masalah
Jika Anda hanya punya 15 menit untuk meninjau sebuah layar, pemeriksaan ini akan menemukan masalah yang paling sering memblokir orang. Mereka bekerja untuk React dan Flutter, dan cocok dimasukkan ke daftar prompt aksesibilitas Anda.
1) Bisa digunakan hanya dengan keyboard?
Coba navigasi halaman tanpa mouse. Gunakan Tab dan Shift+Tab untuk pindah, Enter dan Space untuk mengaktifkan, dan panah jika sebuah widget terlihat seperti menu, tabs, atau daftar.
Tanda cepat: jika Anda terjebak di dalam modal, atau tidak bisa mencapai kontrol penting (mis. “Close”), ada yang salah.
2) Apakah urutan fokus masuk akal dan fokus terlihat?
Saat Anda menekan Tab, fokus harus mengikuti tata letak visual (atas ke bawah, kiri ke kanan) dan tidak pernah melompat ke area tersembunyi. Fokus juga harus jelas terlihat. Jika desain menggunakan garis tepi halus, pastikan tetap terlihat pada latar terang dan gelap.
3) Apakah kontrol punya nama yang jelas?
Pembaca layar harus mengumumkan nama yang berguna untuk setiap elemen interaktif. “Button” tidak cukup. Ikon perlu label aksesibel, dan field form perlu label yang tetap terhubung bahkan saat placeholder menghilang.
4) Apakah kontras dan ukuran teks OK?
Periksa teks kecil, teks disabled, dan teks pada tombol berwarna. Juga uji zoom: besarkan ukuran font dan pastikan layout tidak saling menumpuk atau memotong konten penting.
5) Apakah perubahan diumumkan dengan jelas?
Saat sesuatu berubah (error, loading, sukses), pengguna tidak boleh menebak-nebak. Gunakan teks error inline dekat field, umumkan error form, dan buat status loading jelas.
Jika Anda membuat layar di Koder.ai, minta: “verifikasi alur keyboard-only, urutan fokus, dan label pembaca layar untuk halaman ini,” lalu tinjau hasilnya dengan langkah di atas.
Tetapkan ruang lingkup review sebelum mulai mengubah UI
Pekerjaan aksesibilitas berjalan lebih cepat ketika Anda memutuskan apa yang akan ditinjau dan apa arti “cukup baik” sebelum menyentuh komponen. Ruang lingkup yang jelas juga membuat prompt aksesibilitas untuk review UI React dan Flutter lebih berguna, karena model bisa fokus pada layar dan interaksi nyata.
Pilih jalur pengguna yang penting
Mulailah dengan 2–4 perjalanan pengguna kritis, bukan seluruh produk. Pilihan bagus adalah proses yang harus diselesaikan pengguna untuk mendapatkan nilai, atau yang bisa mengunci pengguna jika gagal.
Untuk sebagian besar aplikasi, itu seperti login, alur utama “membuat atau membeli” (checkout, booking, submit), dan satu area akun seperti pengaturan atau profil.
Tuliskan layar tepat di setiap perjalanan (meskipun hanya 5–8 layar). Sertakan juga state “di antaranya”: pesan error, empty state, loading state, dan dialog konfirmasi. Bagian-bagian itu sering tempat urutan fokus dan output pembaca layar rusak.
Contoh konkret: jika Anda membuat layar CRM kecil di Koder.ai, beri ruang lingkup “sign in -> buka Contacts -> tambah contact -> simpan -> lihat pesan sukses.” Alur tunggal itu menyentuh form, validasi, dialog, dan pengumuman.
Tentukan apa arti “lulus”
Jaga supaya praktis. Bidik ekspektasi ala WCAG AA, tapi terjemahkan ke pengecekan sederhana yang bisa Anda terapkan cepat: keyboard bekerja end-to-end, fokus terlihat dan logis, nama dan label masuk akal, dan kontras terbaca.
Gunakan format catatan pass/fail sederhana supaya Anda tidak menghabiskan waktu berdebat. Untuk setiap layar, catat:
- Check: (keyboard, urutan fokus, label, kontras, pengumuman)
- Hasil: Pass atau Fail
- Bukti: satu kalimat menggambarkan apa yang terjadi
- Tebakan perbaikan: apa yang perlu diubah (komponen, prop, styling)
- Retest: apa yang harus dicoba setelah perbaikan
Ini menjaga review konsisten untuk React dan Flutter, dan memudahkan menyerahkan masalah ke orang lain tanpa menjelaskan ulang.
Prompt salin-tempel untuk komponen React (keyboard, label, role)
Saat Anda minta review aksesibilitas, kemenangan cepat datang dari permintaan yang spesifik: komponen apa, aksi pengguna apa, dan seperti apa kondisi “baik”. Prompt ini bekerja paling baik jika Anda menempelkan kode komponen plus deskripsi singkat tentang apa yang seharusnya dilakukan UI.
Jika Anda menggunakan builder berbasis chat seperti Koder.ai, tambahkan prompt ini segera setelah Anda menghasilkan layar atau komponen sehingga masalah diperbaiki sebelum menyebar ke seluruh aplikasi.
Review this React component for keyboard navigation issues.
- Can every interactive element be reached with Tab and activated with Enter/Space?
- List the exact problems you see in the code.
- Propose fixes with small code edits.
Check focus order and focus visibility.
- Describe the expected focus order for a keyboard-only user.
- Point out where focus could get lost (modals, menus, drawers).
- Tell me exactly where to add :focus-visible styles (which elements, which CSS).
Find missing accessible names.
- Identify inputs, buttons, and icons without clear labels.
- Suggest label + htmlFor, aria-label, aria-labelledby, or visible text.
- If there is helper/error text, connect it with aria-describedby.
Identify interactive elements that are not buttons/links.
- Find div/span with onClick, custom dropdowns, and clickable cards.
- Suggest correct semantics (button/a) or add role, tabIndex, and keyboard handlers.
List screen reader announcements that will be confusing.
- Predict what a screen reader will announce for key controls.
- Rewrite UI text to be shorter and clearer.
- Suggest aria-live usage for status changes (loading, errors, saved).
Sebelum mengirim prompt, sertakan detail ini supaya Anda mendapatkan perbaikan yang dapat dipakai, bukan saran generik:
- Apa komponen itu (mis. “login form”, “pricing toggle”, “settings modal”).
- Jalur keyboard yang seharusnya diikuti pengguna (titik mulai dan akhir).
- Library UI yang dipakai (MUI, Chakra, Radix, komponen kustom).
- State yang harus diuji (loading, error, disabled, empty results).
- Satu tujuan pengguna konkret (mis. “ganti paket dan konfirmasi”).
Prompt salin-tempel untuk widget Flutter (Semantics, fokus, gesture)
Jika Anda ingin hasil konsisten, tempelkan snippet widget (atau seluruh layar) dan minta pemeriksaan spesifik. Prompt ini bekerja paling baik jika Anda menyertakan: tree widget, bagaimana layar dicapai, dan gesture kustom apa pun.
Prompt yang bisa Anda tempel ke review
Review this Flutter widget tree for keyboard navigation and focus traversal.
Call out focus traps, missing focus order, and places where Tab/Shift+Tab will feel confusing.
Suggest exact widget changes (Focus, FocusTraversalGroup, Shortcuts, Actions).
Check this screen for missing Semantics labels, hints, and tap targets.
Point to the exact widgets that need Semantics(label/hint), tooltip, or exclusion.
Also flag controls under 48x48 logical pixels and suggest fixes.
Find custom gestures that break accessibility (GestureDetector/Listener).
Replace them with accessible widgets or add keyboard + semantics support.
If a gesture is required, describe how a keyboard user triggers the same action.
Audit error messages and validation on this form.
What should be announced to a screen reader, and when?
Suggest how to expose errors via Semantics and focus movement after submit.
Propose a consistent focus highlight style across screens.
It should be obvious on dark/light themes and work with keyboard navigation.
Show a small code example using FocusTheme/ThemeData.
Perbaikan cepat yang harus disarankan oleh assistant
Harapkan jawaban yang menyebut beberapa pola konkret:
- Bungkus konten utama dengan
FocusTraversalGroupdan aturFocusTraversalOrderhanya jika perlu. - Gunakan
Semantics(atauMergeSemantics) untuk kontrol komposit, dan hindari label ganda. - Pilih
InkWell,IconButton,ListTile,SwitchListTiledaripadaGestureDetectormentah bila memungkinkan. - Tambahkan
Shortcuts+Actionsuntuk input non-teks (mis. Enter untuk aktivasi, Escape untuk menutup).
Contoh minimal agar kartu kustom berperilaku seperti tombol:
Semantics(
button: true,
label: 'Add payment method',
hint: 'Opens the add card screen',
child: Focus(
child: InkWell(
onTap: onPressed,
child: Card(child: child),
),
),
)
Langkah demi langkah: alur review keyboard dan fokus sederhana
Review keyboard dan fokus yang cepat menemukan masalah yang juga memengaruhi pembaca layar dan perangkat switch. Lakukan pada alur halaman nyata (bukan satu tombol), dan catat saat Anda berjalan supaya bisa mengecek ulang jalur yang sama nanti.
Alur 5 langkah
Mulai dengan memilih satu “happy path” yang biasa dilakukan pengguna, mis. sign in, buka layar pengaturan, dan simpan.
- Lakukan seluruh alur hanya dengan keyboard. Singkirkan mouse. Gunakan Tab dan Shift+Tab untuk pindah, Enter dan Space untuk mengaktifkan, dan panah saat relevan (menu, radio group, tabs). Tandai apa pun yang memerlukan klik atau swipe.
- Pastikan fokus selalu jelas. Setiap kali fokus berpindah, Anda harus langsung melihat di mana posisi fokus. Waspadai garis tepi tipis yang hilang di latar gelap, ring fokus yang dihapus oleh CSS, atau widget Flutter yang terlihat “aktif” tapi tidak menunjukkan fokus.
- Periksa apakah urutan cocok dengan apa yang Anda lihat. Fokus harus mengikuti tata letak visual dan urutan baca. Tanda bahaya umum: melompat ke footer, terjebak di sidebar, atau melewatkan field karena tidak bisa difokuskan.
- Uji overlay secara intensif. Buka menu, dialog, dan drawer. Fokus harus pindah ke overlay, tetap di dalam saat terbuka, dan kembali ke tempat yang masuk akal saat ditutup. Escape harus menutup overlay bila sesuai.
- Uji ulang setelah setiap perubahan. Perbaiki satu masalah, lalu jalankan ulang jalur yang sama. Catat apa yang membaik dan apa yang memburuk, terutama perubahan urutan fokus dan “jalan buntu” baru.
Apa yang harus direkam saat berjalan
Sederhana saja: nama halaman, tombol yang Anda tekan, apa yang terjadi, dan apa yang Anda harapkan. Log kecil itu memudahkan konfirmasi bahwa refactor React atau penggantian widget Flutter tidak diam-diam merusak akses keyboard.
Nama, label, dan pengumuman yang ramah pembaca layar
Pembaca layar tidak “melihat” UI Anda. Mereka bergantung pada nama, peran, dan pesan singkat yang menjelaskan apa yang berubah. Jika nama hilang atau samar, aplikasi jadi menebak-nebak.
Mulailah dengan field form. Setiap input butuh label nyata yang tetap ada saat field terisi. Placeholder adalah petunjuk, bukan label, dan sering menghilang begitu pengguna mengetik.
Aksi berupa ikon saja sering terlewat. Ikon tempat sampah, pensil, atau menu tiga titik butuh nama bermakna yang mencerminkan hasilnya, bukan bentuknya. “Hapus proyek” lebih baik daripada “Button” atau “Trash”.
Judul dan label seksi penting karena menjadi outline halaman. Gunakan heading untuk mencerminkan struktur, bukan styling. Pengguna pembaca layar akan melompat berdasarkan heading untuk menemukan “Billing” atau “Team members”, jadi label itu harus sesuai isi seksi.
Pesan error harus spesifik dan dapat ditindaklanjuti. “Invalid input” tidak cukup. Jelaskan apa yang salah dan apa yang harus dilakukan selanjutnya, mis. “Password harus minimal 12 karakter” atau “Alamat email kurang tanda @”.
Prompt review yang bisa disalin (React dan Flutter)
Gunakan prompt ini saat meninjau layar atau meminta alat seperti Koder.ai memperbarui komponen:
- “Jalankan layar ini dan pastikan setiap input teks punya label terlihat, dan nama aksesibelnya cocok (React: label + htmlFor, aria-labelledby; Flutter: InputDecoration.labelText).”
- “Temukan tombol ikon saja dan beri setiap tombol nama aksesibel yang menjelaskan aksi (React: aria-label; Flutter: Tooltip atau Semantics(label: ...)).”
- “Periksa heading: gunakan level heading yang tepat di React, dan judul seksi yang jelas di Flutter agar struktur terbaca dengan benar.”
- “Tulis ulang pesan validasi agar menyatakan apa yang terjadi dan cara memperbaikinya, dan pastikan error diumumkan saat muncul.”
Pengumuman untuk pembaruan dinamis
Banyak layar berubah tanpa reload: menyimpan profil, menambah item, memuat hasil. Pastikan pembaruan itu diumumkan.
Untuk React, gunakan region aria-live (polite untuk “Tersimpan”, assertive untuk error kritis). Untuk Flutter, gunakan Semantics dan buat pesan status terlihat (mis. banner atau SnackBar) sehingga dibaca, bukan hanya ditampilkan. Cek cepat: tekan “Save” dan pastikan Anda mendengar pesan singkat seperti “Perubahan tersimpan” tanpa memindahkan fokus dari tombol.
Pemeriksaan kontras dan kejernihan visual yang tidak makan waktu lama
Anda bisa menemukan sebagian besar masalah kontras dan kejernihan dalam beberapa menit jika fokus pada tempat yang benar-benar menyulitkan orang: teks kecil, ikon, ring fokus, dan warna status. Ini bagian praktis dari prompt aksesibilitas untuk review UI React dan Flutter karena mudah diverifikasi dan mudah diperbaiki.
Pemeriksaan kontras 10 menit
Mulai dengan memindai satu layar pada zoom 100% lalu 200%. Jika sesuatu jadi sulit dibaca, biasanya itu masalah kontras, bobot, atau spasi, bukan “kesalahan pengguna”.
Periksa lima titik ini terlebih dulu:
- Teks tubuh, caption, dan helper text (khususnya abu-abu terang di atas putih)
- State disabled (disabled harus terlihat tidak aktif, tapi masih terbaca)
- Ikon tanpa label (ikon samar pada dasarnya tak terlihat bagi banyak pengguna)
- Indikator fokus (ring/garis tepi harus menonjol dari latar)
- Pesan error dan sukses (teks dan ikon, jangan hanya mengandalkan warna)
Aturan praktis: jika Anda harus menyipitkan mata, pengguna Anda juga akan begitu. Jika ragu tentang pasangan warna, ubah teks sementara menjadi hitam murni atau putih murni. Jika keterbacaan meningkat drastis, berarti kontras terlalu rendah.
Visibilitas fokus sering terlewat. Pastikan ring fokus cukup tebal untuk terlihat, dan bukan warna yang sama dengan latar. Jika ada state “selected” di daftar, harus terlihat berbeda bahkan dalam skema grayscale, mis. dengan menambahkan ikon, underline, atau border yang jelas.
Kejernihan di mobile: target dan tema
Di mobile, kejernihan visual juga soal sentuhan. Tombol dan aksi ikon saja harus punya area tap yang lapang dan jarak yang cukup agar pengguna tidak menyentuh kontrol yang salah.
Lakukan sweep tema cepat: ubah ke dark mode, dan jika aplikasi mendukung, pengaturan kontras tinggi. Periksa ulang teks pada permukaan, divider, dan ring fokus. Bug umum: ring fokus hilang di dark mode atau ikon “tidak aktif” menjadi hampir sama warna dengan latarnya.
Jika Anda menghasilkan UI cepat dengan alat seperti Koder.ai, tambahkan satu langkah review ekstra: minta “pass kontras dan ring fokus” setelah layout pertama, sebelum memoles visual.
Kesalahan umum yang terus muncul
Sebagian besar bug aksesibilitas berulang karena terasa seperti tweak UI kecil, bukan perilaku produk. Saat Anda menjalankan prompt aksesibilitas untuk review UI React dan Flutter, perhatikan pola ini terlebih dulu.
Placeholder bukan label. Placeholder hilang saat seseorang mengetik, dan banyak pembaca layar tidak memperlakukannya sebagai nama field. Gunakan label nyata yang terlihat (atau nama aksesibel eksplisit) sehingga input dapat dimengerti saat kosong, terisi, dan saat error muncul.
Style fokus dihapus karena “nampak jelek.” Itu biasanya membuat pengguna keyboard bingung. Jika Anda mengubah outline default, ganti dengan sesuatu yang sama jelasnya: ring tebal, perubahan latar, dan kontras cukup terhadap halaman.
Penjahat berulang lain adalah tombol palsu. Di React mudah tergoda menggunakan div dengan onClick, dan di Flutter memakai Container dengan GestureDetector. Tanpa semantik yang tepat, dukungan keyboard dan pembaca layar terganggu. Kontrol asli (button, a, TextButton, ElevatedButton) memberi Anda fokus, role, state disabled, dan perilaku aktivasi secara default.
Bug fokus dialog dan form halus tapi menyebalkan. Setelah menutup modal atau menyimpan form, fokus sering meloncat ke atas halaman atau hilang. Itu terjadi saat fokus tidak dikembalikan ke kontrol yang membuka dialog, atau saat aksi simpan merender ulang layar dan menjatuhkan fokus. Pengguna lalu harus memulai ulang untuk menemukan posisi mereka.
Penggunaan ARIA (atau Semantics di Flutter) yang berlebihan juga bisa merusak. Menambahkan role dan label di mana-mana dapat bertabrakan dengan apa yang sudah disediakan elemen native, menyebabkan pengumuman ganda atau nama yang salah.
Pengecekan cepat pola berulang yang bisa Anda minta saat meninjau layar:
- Konfirmasi setiap input punya label persisten, bukan hanya placeholder
- Konfirmasi setiap elemen interaktif adalah kontrol nyata dengan role yang benar
- Konfirmasi fokus selalu terlihat dan tidak dihapus tanpa pengganti
- Konfirmasi fokus kembali ke pemicu setelah dialog, toast, dan simpan
- Konfirmasi ARIA/Semantics hanya menambah apa yang tidak bisa diberikan kontrol native
Jika Anda menghasilkan UI dari chat (mis. di Koder.ai), sertakan ini sebagai kriteria penerimaan di prompt sehingga draf pertama sudah menghindari jebakan umum.
Contoh walk-through: satu layar, end-to-end
Bayangkan layar Settings sederhana: form profil (Name, Email), dua toggle (Email notifications, Dark mode), tombol “Save changes”, dan toast yang muncul setelah menyimpan.
Mulai dengan keyboard. Urutan fokus yang diharapkan harus cocok dengan tata letak visual, dari atas ke bawah, kiri ke kanan. Menekan Tab tidak boleh melompat ke area toast, footer, atau menu tersembunyi.
Lintasan pemeriksaan cepat yang bekerja untuk sebagian besar prompt aksesibilitas React dan Flutter:
- Tekan Tab dari atas: fokus mendarat pada Name, lalu Email, lalu toggle Email notifications, lalu toggle Dark mode, lalu Save changes.
- Gunakan Shift+Tab untuk kembali dan pastikan urutan kebalikan berjalan mulus.
- Pada toggle, Space harus mengganti nilai. Panah tidak boleh membuat fokus terperangkap.
- Pada Save changes, Enter harus submit, dan fokus tidak hilang setelah submit.
- Saat toast muncul, fokus harus tetap di tempat semula kecuali toast memerlukan aksi (mis. “Undo”).
Sekarang periksa apa yang diumumkan pembaca layar. Setiap kontrol butuh nama, role, dan state yang jelas. Contoh: “Name, text field, required” dan “Email notifications, switch, on”. Jika field Email punya error, itu harus diumumkan saat fokus masuk ke field dan saat error muncul (mis. “Email, text field, invalid, Masukkan alamat email yang valid”). Tombol Save harus dibaca “Save changes, button” dan hanya dinyatakan disabled jika alasan dinyatakan.
Untuk kontras, periksa teks normal, placeholder, dan pesan error. Juga cek ring fokus: harus mudah dilihat pada latar terang dan gelap. State error tidak boleh hanya mengandalkan warna merah. Tambahkan ikon, teks jelas, atau keduanya.
Ubah temuan Anda menjadi daftar perbaikan singkat:
- Perbaiki urutan fokus agar sesuai tata letak.
- Tambahkan nama aksesibel yang hilang untuk toggle dan ikon.
- Umumkan error bersama field (jangan hanya sebagai banner).
- Perbaiki style fokus dan teks placeholder/error yang kontrasnya rendah.
- Buat toast tidak memblokir, atau hanya bisa difokuskan jika ada aksi.
Jika Anda membangun di Koder.ai, tempelkan deskripsi layar dan temuan Anda ke chat dan minta agar Koder.ai memperbarui UI React atau Flutter agar sesuai perilaku keyboard dan pembaca layar yang diharapkan.
Langkah berikutnya: pakai ulang checklist ini dan benamkan ke alur kerja Anda
Agar prompt aksesibilitas untuk review UI React dan Flutter memberi hasil jangka panjang, perlakukan sebagai kebiasaan berulang, bukan pembersihan sekali saja. Tujuannya adalah menjalankan set pemeriksaan kecil yang sama setiap kali Anda menambahkan layar atau komponen baru.
Simpan satu “definition of done” untuk perubahan UI. Sebelum apa pun dikirim, lakukan pass cepat yang mencakup keyboard, fokus, nama, dan kontras. Ini memakan waktu beberapa menit jika dilakukan sering.
Berikut checklist cepat yang bisa Anda jalankan di hampir semua UI:
- Keyboard: bisa menjangkau setiap elemen interaktif dan menggunakannya tanpa mouse?
- Fokus: fokus terlihat, dan bergerak dalam urutan logis?
- Label: setiap field dan tombol punya nama yang jelas (termasuk ikon)?
- Pengumuman: perubahan state diumumkan (error, loading, sukses)?
- Kontras: teks terbaca dan state disabled masih dapat dipahami?
Simpan prompt terbaik Anda sebagai template. Cara sederhana adalah menyimpan satu “prompt review React” dan satu “prompt review Flutter” yang Anda tempel di akhir setiap permintaan perubahan. Lalu tambahkan satu baris singkat yang menjelaskan komponen baru dan perilaku khusus (modal, stepper, daftar dengan infinite scroll).
Jalankan pengecekan yang sama pada setiap komponen baru sebelum rilis, walau terasa repetitif. Masalah aksesibilitas sering diperkenalkan oleh edit kecil: tombol ikon baru, dropdown kustom, pesan toast, atau perangkap fokus di dialog.
Jika Anda membangun dengan Koder.ai, tempel prompt ke chat dan minta perbaikan spesifik, bukan perbaikan umum. Lalu pakai mode perencanaan untuk meninjau dampak sebelum menerapkan perubahan. Ambil snapshot sebelum pass aksesibilitas, dan gunakan rollback bila perbaikan merusak layout atau perilaku. Itu membuat iterasi urutan fokus dan semantik lebih aman.
Setelah pass aksesibilitas Anda, perlakukan itu sebagai gerbang rilis: ekspor source code untuk workflow repo Anda, atau deploy dan host aplikasi dan sambungkan domain kustom saat Anda puas dengan hasilnya.
Pertanyaan umum
Layar mana yang sebaiknya saya tinjau terlebih dahulu untuk aksesibilitas?
Mulailah dengan alur yang harus diselesaikan pengguna, seperti masuk, mengirim formulir, atau mengubah pengaturan. Uji seluruh alur dengan keyboard sebelum meninjau detail visual yang lebih kecil.
Bagaimana cara menguji UI hanya dengan keyboard?
Gunakan Tab dan Shift+Tab untuk berpindah, Enter dan Space untuk mengaktifkan kontrol, serta tombol panah untuk widget seperti menu, tab, dan grup tombol radio. Jika Anda tidak dapat menyelesaikan tugas tanpa mouse, catat bagian alur yang gagal.
Apa yang membuat urutan fokus menjadi logis?
Fokus harus berpindah dalam urutan yang sama seperti cara orang membaca layar, biasanya dari atas ke bawah dan dari kiri ke kanan. Fokus tidak boleh melompat ke konten tersembunyi, footer, atau sidebar yang tidak terkait.
Bagaimana sebaiknya saya memberi label pada tombol dan kolom formulir?
Berikan setiap kontrol label yang jelas dan terlihat jika memungkinkan. Untuk tindakan yang hanya memakai ikon, gunakan nama aksesibel yang menjelaskan hasilnya, seperti "Hapus proyek" alih-alih menyebut nama ikonnya.
Apakah teks placeholder dapat menggantikan label formulir?
Teks placeholder menghilang ketika seseorang mulai mengetik dan sering tidak memberikan nama kolom yang andal. Tetap gunakan label nyata yang terhubung ke input, lalu gunakan teks placeholder hanya untuk contoh atau petunjuk.
Apa yang seharusnya terjadi pada fokus di modal atau dialog?
Pindahkan fokus ke dalam dialog yang terbuka, pertahankan fokus keyboard di dalamnya selama dialog terbuka, lalu kembalikan fokus ke pemicu saat dialog ditutup. Biarkan Escape menutup dialog jika sesuai dengan interaksinya.
Kapan aplikasi saya harus mengumumkan perubahan kepada pembaca layar?
Umumkan pembaruan penting seperti kesalahan validasi, status pemuatan, dan perubahan yang tersimpan. Di React, gunakan wilayah aria-live untuk pesan status singkat; di Flutter, tampilkan teks status yang terlihat melalui Semantics dan uji apakah pembaca layar membacanya.
Apa cara tercepat untuk memeriksa kontras dan kejelasan visual?
Periksa teks kecil, teks bantuan, status nonaktif, ikon, pesan kesalahan, dan ring fokus pada tema terang maupun gelap. Perbesar juga hingga 200% dan cari konten yang terpotong, tumpang tindih, atau kontrol yang menjadi sulit digunakan.
Bagaimana cara menghindari tombol dan gestur kustom yang tidak aksesibel?
Utamakan kontrol bawaan. Di React, pilih elemen button dan link daripada div yang dapat diklik. Di Flutter, pilih widget seperti IconButton, InkWell, ListTile, dan SwitchListTile daripada GestureDetector mentah jika sesuai dengan tindakannya.
Apa yang sebaiknya saya sertakan dalam prompt untuk tinjauan aksesibilitas?
Tempelkan pohon komponen atau widget, jelaskan tujuan pengguna dan jalur keyboard, lalu minta masalah yang spesifik serta perubahan kode kecil. Sertakan status memuat, kesalahan, nonaktif, dialog, dan kosong agar tinjauan mencakup momen ketika aksesibilitas sering bermasalah.