Bicara aksesibilitas sering dianggap bicara fitur untuk “orang lain” — pengguna tunanetra atau mobilitas terbatas. Kenyataannya fitur ini kita pakai sendiri lebih sering daripada yang dikira: layar yang silau di matahari, satu tangan sibuk memegang kopi, lingkungan yang tidak bisa bersuara. Chapter penutup section ini memetakan fitur aksesibilitas desktop Linux — screen reader Orca, kaca pembesar, high contrast, hingga keyboard yang ramah — beserta cara mengaturnya lewat gsettings, supaya komputer ini benar-benar bisa dipakai siapa pun dalam kondisi apa pun.
Aksesibilitas untuk Semua Situasi #
Kerangka berpikir terbaik soal aksesibilitas adalah memandangnya sebagai spektrum situasi, bukan kategori pengguna. Kebutuhan yang sama datang dari kondisi permanen (gangguan penglihatan), sementara (tangan cedera), atau situasional (cangkang matahari di teras kafe). Dari sudut itu, fitur-fiturnya terpetakan rapi per kebutuhan:
| Situasi | Fitur yang membantu |
|---|---|
| Penglihatan menurun, layar silau, mata lelah | screen reader, kaca pembesar, teks besar, high contrast |
| Tangan cedera, tremor, satu tangan terpakai | sticky keys, slow keys, bounce keys, klik sekunder simulasi |
| Tidak bisa atau tidak boleh bersuara | visual alerts, notifikasi yang berkedip |
| Mouse rusak atau meja sempit | navigasi keyboard penuh, mouse keys |
Semua fitur ini di GNOME terkumpul di panel Accessibility pusat pengaturan, dan ikonnya bisa dipakukan di panel atas agar selalu satu klik. Perbandingan antar desktop serta daftar alat lengkapnya ada di wiki Accessibility .
Screen Reader: Orca #
Orca adalah screen reader dunia GNOME (dan MATE) — program yang membacakan antarmuka: nama tombol, isi dialog, teks di bawah kursor. Suaranya disintesis lewat speech-dispatcher, dan bagi pengguna braille, keluaran braille-nya dilayani BRLTTY. Di sesi GNOME, pintasan Super+Alt+S menyalakan dan mematikannya seketika; Orca juga bisa dimunculkan dari terminal dengan perintah orca — berguna saat desktop gagal naik tapi kita masih punya sesi. Pengenalan perintahnya ada di Orca(1)
dan panduan khusus GNOME di wiki GNOME/Accessibility
.
Zoom, High Contrast, dan Large Text #
Tiga setelan penolong penglihatan bekerja di lapisan berbeda dan bisa dipakai bersamaan. Kaca pembesar (screen magnifier) memperbesar area di sekitar pointer, dikendalikan dari panel aksesibilitas. Teks besar ditala lewat gsettings set org.gnome.desktop.interface text-scaling-factor 1.25 — semua teks membesar 25% tanpa mengubah resolusi. High contrast menukar tema ke varian kontras tinggi lewat gsettings set org.gnome.desktop.interface color-scheme 'prefer-high-contrast', menggantikan abu-abu halus dengan hitam-putih tegas. Satu lagi yang sering dilupakan: kursor besar punya setelannya sendiri di org.gnome.desktop.interface cursor-size.
Topik font menyinggung bab sebelah: font ramah disleksia seperti Atkinson Hyperlegible dipasang sebagai font user persis seperti di Chapter Font Management , lalu dipilih sebagai font antarmuka — kombinasi huruf yang bentuknya sulit tertukar mengurangi beban membaca.
Keyboard yang Ramah: Sticky, Slow, dan Bounce Keys #
Bagian keyboard di org.gnome.desktop.a11y.keyboard menampung tiga fitur yang sering bercampur di kepala orang padahal beda mekanisme:
| Fitur | Mekanisme | Membantu siapa |
|---|---|---|
| Sticky keys | modifier (Shift, Ctrl) ditekan sekali lalu “menempel” | kombinasi tombol dengan satu tangan |
| Slow keys | ketukan lebih pendek dari ambang waktu diabaikan | ketukan tak sengaja saat tremor |
| Bounce keys | ketukan berulang yang terlalu cepat dihitung satu | huruf terketik ganda |
| Toggle keys | bunyi saat CapsLock/NumLock berganti | ketahui status tanpa melihat lampu |
| Mouse keys | angka di numpad menggerakkan pointer | tanpa mouse sama sekali |
Ambang waktunya pun bisa disetel — misalnya gsettings set org.gnome.desktop.a11y.keyboard slowkeys-delay 500 memberi setengah detik sebelum ketukan diterima. Navigasi keyboard penuh (Tab, panah, menu berakselerator) adalah pelengkap keempatnya; membangun kebiasaan berpindah antar aplikasi tanpa mouse sekaligus melatih pintasan yang kita rancang sendiri di Chapter Keyboard Shortcuts
.
AT-SPI: Bus yang Menyatukan #
Semua fitur di atas hanya bisa bekerja bila ada jalur komunikasi bersama — dan jalur itu bernama AT-SPI (Assistive Technology Service Provider Interface), yang berjalan di atas D-Bus sesi. Aplikasi mengekspos antarmukanya ke bus ini sebagai pohon elemen dengan nama, peran, dan status (“tombol Simpan, bisa diklik, tidak aktif”); Orca lalu membaca pohon itu dan mengumumkannya; kombinasi keyboard dari fitur sticky keys dikirim lewat jalur yang sama. Inilah jawaban atas misteri lama “kenapa screen reader lancar di aplikasi A tapi diam di aplikasi B”: aplikasi B tidak mengekspos dirinya ke bus. Browser besar, toolkit GTK dan Qt, serta framework Electron tergolong rajin; aplikasi eksotis yang menggambar sendiri seluruh antarmukanya adalah yang biasanya bermasalah.
Membaca Setelan lewat gsettings #
Semua setelan tadi di GNOME berada di bawah schema org.gnome.desktop.a11y.* dan dibaca-tulis dengan gsettings — alat yang kita kenal dari Chapter Desktop Configuration
. Perintah gsettings list-recursively org.gnome.desktop.a11y memuntahkan seluruh kunci berikut nilainya; berikut potongan tipikalnya yang kita simpan sebagai berkas latihan:
cat > potongan-gsettings.txt <<'EOF'
org.gnome.desktop.a11y always-show-universal-access-status true
org.gnome.desktop.a11y.applications screen-magnifier-enabled false
org.gnome.desktop.a11y.applications screen-reader-enabled false
org.gnome.desktop.a11y.keyboard bouncekeys-delay 300
org.gnome.desktop.a11y.keyboard bouncekeys-enabled false
org.gnome.desktop.a11y.keyboard slowkeys-delay 300
org.gnome.desktop.a11y.keyboard slowkeys-enabled false
org.gnome.desktop.a11y.keyboard stickykeys-latch-to-lock true
org.gnome.desktop.a11y.keyboard stickykeys-two-key-off true
org.gnome.desktop.a11y.mouse secondary-click-time 1.2
EOF
cat potongan-gsettings.txtOutput yang Dihasilkan:
org.gnome.desktop.a11y always-show-universal-access-status true
org.gnome.desktop.a11y.applications screen-magnifier-enabled false
org.gnome.desktop.a11y.applications screen-reader-enabled false
org.gnome.desktop.a11y.keyboard bouncekeys-delay 300
org.gnome.desktop.a11y.keyboard bouncekeys-enabled false
org.gnome.desktop.a11y.keyboard slowkeys-delay 300
org.gnome.desktop.a11y.keyboard slowkeys-enabled false
org.gnome.desktop.a11y.keyboard stickykeys-latch-to-lock true
org.gnome.desktop.a11y.keyboard stickykeys-two-key-off true
org.gnome.desktop.a11y.mouse secondary-click-time 1.2Format tiap baris adalah schema.kunci nilai. Mari kita bedah kunci-kuncinya:
- Baris
always-show-universal-access-status: memaku ikon menu aksesibilitas di panel atas — pintasan satu klik untuk semua fitur. - Baris
applications screen-reader-enableddanscreen-magnifier-enabled: dua saklar utama Orca dan kaca pembesar; keduanyafalseartinya belum menyala. - Baris
keyboard bouncekeys-delay: ambang waktu (milidetik) fitur bounce keys; ketukan yang datang lebih cepat dari itu dianggap pantulan yang sama. - Baris
keyboard slowkeys-delay: ambang kebalikannya — ketukan harus ditahan minimal selama ini baru diterima. - Baris
keyboard stickykeys-latch-to-lockdanstickykeys-two-key-off: dua perilaku sticky keys — menekan modifier dua kali menguncinya, dan menekan dua modifier sekaligus mematikan mode tempel. - Baris
mouse secondary-click-time: jeda (detik) sebelum tahanan tombol dihitung sebagai klik kanan simulasi — menolong tangan yang tidak bisa menekan dua tombol.
Cara mengubahnya satu kalimat: gsettings set org.gnome.desktop.a11y.keyboard bouncekeys-enabled true — dan membatalkannya cukup mengganti nilai kembali ke false. Rincian seluruh perintahnya ada di gsettings(1)
.
Profil Aksesibilitas dengan Skrip #
Saat kebutuhan berubah cepat — laptop pindah ke teras yang silau, tangan cedera dipakai kerja — membuka panel demi panel menjadi beban sendiri. Skrip profil-a11y.sh di bundle chapter ini menyederhanakan idenya: satu perintah mengaktifkan satu profil, dan profil yang berbeda menyala berdampingan karena kuncinya memang independen — persis perilaku gsettings:
cat > setelan-a11y.txt <<'EOF'
screen-reader-enabled=false
screen-magnifier-enabled=false
high-contrast=false
sticky-keys=false
slow-keys=false
visual-alerts=false
EOF
bash profil-a11y.sh terapkan penglihatan setelan-a11y.txt
bash profil-a11y.sh terapkan motorik setelan-a11y.txt
bash profil-a11y.sh baca - setelan-a11y.txtOutput yang Dihasilkan:
aktif: screen-reader-enabled
aktif: screen-magnifier-enabled
aktif: sticky-keys
aktif: slow-keys
== setelan saat ini (setelan-a11y.txt) ==
- screen-reader-enabled
- screen-magnifier-enabled
- sticky-keys
- slow-keysEmpat saklar menyala dari dua profil berbeda tanpa saling menimpa. Bagian penting skripnya:
- Blok
if [ $# -eq 0 ]: tanpa argumen, skrip menjalankan demo di direktori sementara lalu keluar sukses — aman dari folder mana pun. - Fungsi
tombol_profil(): peta profil ke daftar kunci — inti kebijakan yang mudah diperluas dengan profil baru. - Perulangan
for kunci in $tombol: mengubah tiap kunci lewatsed -i, penggantigsettings setdi dunia nyata. - Blok
baca): menyaring baris bernilaitruedengangrep '=true$'lalu meringkasnya — penggantigsettings getper kunci.
Di desktop sungguhan, padanan skrip ini adalah kombinasi gsettings set atau sekadar menu cepat di panel aksesibilitas; prinsipnya sama, kebutuhan yang berubah cepat dijawab dengan satu perintah.
Dengan ini rangkaian kustomisasi kita tuntas: tampilan, pintasan, monitor, font, suara, perangkat nirkabel dan lepas-pasang, sampai aksesibilitas — semuanya karena Linux memang mengizinkan kita menyetel desktop hingga detail terkecil. Kebalikan dari kebebasan itu adalah tanggung jawab: semakin banyak yang diubah, semakin sering pula sesuatu menolak bekerja. Saat giliran itu datang — layar hitam saat boot, service yang mogok — kita masuk ke Section Troubleshooting, dimulai dari Chapter Boot Failures.
Berkas Sumber
Berkas pendukung halaman ini dapat diunduh dan dijalankan langsung sesuai penjelasan di atas.
profil-a11y.sh
Unduh berkas#!/usr/bin/env bash
# profil-a11y.sh -- terapkan profil aksesibilitas pada berkas setelan latihan
# Pemakaian: bash profil-a11y.sh <terapkan|baca> <profil> [berkas-setelan]
# Profil : penglihatan | motorik | pendengaran
# Format berkas setelan: satu "kunci=nilai" per baris (nilai true/false).
# Tanpa argumen: demo singkat di direktori sementara.
skrip=$(realpath "$0")
if [ $# -eq 0 ]; then
tmp=$(mktemp -d)
printf 'screen-reader-enabled=false\nscreen-magnifier-enabled=false\nhigh-contrast=false\nsticky-keys=false\nslow-keys=false\nvisual-alerts=false\n' > "$tmp/setelan-a11y.txt"
(
cd "$tmp" || exit 1
bash "$skrip" terapkan penglihatan setelan-a11y.txt
bash "$skrip" terapkan motorik setelan-a11y.txt
bash "$skrip" baca - setelan-a11y.txt
)
rm -rf "$tmp"
echo "demo selesai di direktori sementara"
exit 0
fi
perintah=$1
profil=${2:-penglihatan}
berkas=${3:-setelan-a11y.txt}
tombol_profil() {
case "$1" in
penglihatan) echo "screen-reader-enabled screen-magnifier-enabled" ;;
motorik) echo "sticky-keys slow-keys" ;;
pendengaran) echo "visual-alerts" ;;
*) echo "" ;;
esac
}
if [ ! -f "$berkas" ]; then
echo "gagal: berkas setelan $berkas tidak ditemukan"
exit 0
fi
case "$perintah" in
terapkan)
tombol=$(tombol_profil "$profil")
if [ -z "$tombol" ]; then
echo "profil tidak dikenal: $profil"
exit 0
fi
for kunci in $tombol; do
sed -i "s/^$kunci=.*/$kunci=true/" "$berkas"
echo "aktif: $kunci"
done
;;
baca)
echo "== setelan saat ini ($berkas) =="
grep '=true$' "$berkas" | cut -d= -f1 | sed 's/^/ - /'
;;
*)
echo "perintah tidak dikenal: $perintah"
echo "pilihan: terapkan | baca"
;;
esac