Target fokus adalah elemen UI yang dapat difokuskan oleh keyboard. Pengguna dapat memindahkan fokus keyboard dengan tombol Tab atau tombol arah (panah):
- Tab atau Shift+Tab — Memindahkan fokus maju atau mundur dalam urutan tampilan satu dimensi.
- Tombol arah — Memindahkan fokus secara dua dimensi (Atas, Bawah, Kiri, dan Kanan).
Elemen UI interaktif adalah target fokus secara default
Komponen interaktif adalah target fokus secara default. Dengan kata lain, elemen UI adalah target fokus jika pengguna dapat mengetuk atau mengkliknya.
Misalnya, pertimbangkan tiga komponen Card. Jika kartu pertama dan ketiga bersifat
interaktif (menentukan callback onClick), tetapi kartu kedua murni
informatif (tidak memiliki penanganan klik), menekan tombol Tab pada kartu pertama
akan melewati kartu kedua dan langsung berpindah ke kartu ketiga.
Card(onClick = { /* First card action */ }) { Text("Card 1 (Interactive)") } Card { Text("Card 2 (Informational - not focusable)") } Card(onClick = { /* Third card action */ }) { Text("Card 3 (Interactive)") }
Anda dapat menjadikan kartu kedua sebagai target fokus dengan memberikan parameter onClick:
Card(onClick = { /* Second card action */ }) { Text("Card 2 (Now interactive and focusable)") }
Pengubah clickable juga mengubah elemen UI kustom atau standar menjadi
target fokus. Lihat Ketuk dan tekan untuk mengetahui detailnya.
Box( modifier = Modifier .clickable { /* Handle click */ } ) { Text("Custom interactive element") }
Menjadikan composable sebagai target fokus yang tidak dapat diklik
Pengubah focusable membuat composable menjadi target fokus tanpa memerlukan semantik klik. Pengguna dapat memindahkan fokus keyboard ke composable yang diubah (misalnya, untuk memeriksa konten dengan alat aksesibilitas atau men-scroll area tampilan),
tetapi menekan tombol Enter atau Space
tidak memicu tindakan klik:
Box( modifier = Modifier .focusable() ) { Text("Non-clickable focus target") }
Membuat composable tidak dapat difokuskan
Dalam beberapa skenario, Anda mungkin ingin mengecualikan elemen interaktif dari navigasi
keyboard tanpa menonaktifkan peristiwa klik atau penunjuk. Anda dapat mencegah
komponen menerima fokus dengan menyetel canFocus = false di dalam
pengubah focusProperties:
var checked by remember { mutableStateOf(false) } Switch( checked = checked, onCheckedChange = { checked = it }, // Prevent component from being focused modifier = Modifier .focusProperties { canFocus = false } )
Direkomendasikan untuk Anda
- Catatan: teks link ditampilkan saat JavaScript nonaktif
- Urutan traversal fokus
- Fokus di kolom teks
- Mengelompokkan target fokus
- Menunjukkan status fokus
- Menguji navigasi fokus