Begini Programmer Tunanetra Bekerja

Bagus Aji Santoso 29 Agustus 2017

Begini Programmer Tunanetra Bekerja

Pembaca Codepolitan mungkin pernah membaca sebuah artikel tentang seorang tunanetra yang menjadi programmer. Mungkin pembaca bertanya-tanya kok bisa ya? Kalau memang bisa bagaimana mereka bisa melakukannya? Nah, artikel berikut ini merupakan terjemahan dari artikel asli berjudul Software development 450 words yang menceritakan bagaimana seorang programmer tunanetra bernama Tuukka Ojala bekerja.


"Ada yang aneh di sini." Itu kata-kata yang saya tebak ada di kepala pembaca saat melihat ruang kerja saya. Tidak ada mouse atau layar yang terlihat. Hanya ada seorang pria yang sedang bermain dengan sebuah keyboard, dan kelihatannya tidak melihat apapun.

Saya adalah seorang software developer yang bekerja di perusahaan Vincit terletak di Tampere (sebuah kota di Finlandia). Saya juga seorang tunanetra. Diartikel ini saya akan berbagi informasi tentang bagaimana saya bekerja.

Apakah anda adalah tunanetra yang benar-benar tidak bisa melihat?

Betul sekali. Saya bisa merasakan adanya cahaya matahari atau cahaya lampu lain yang terang, tapi ya cukup sampai disitu. Dengan kata lain, cahaya tersebut tidak dapat membantu saya bekerja.

Lalu apa yang anda lakukan di sana?

Sama seperti yang lainnya, yaitu membuat software dan bersenda gurau dengan rekan kerja diwaktu luang. Saya mengerjakan proyek full stack web dengan mengambil spesialisasi backend. Saya juga memiliki peran sebagai konsultan aksesibilitas.

Bagaimana anda menggunakan komputer?

Komputer yang Saya gunakan adalah laptop super normal yang menjalankan Windows 10. "Keajaiban" ini terjadi berkat software yang ada di dalamny. Saya menggunakan sebuah program yang disebut dengan screen reader untuk menggunakan komputer. Sebuah screen reader membaca apa yang ada di layar lalu memberitahukannya ke pengguna lewat sebuah layar braille atau lewat suara. Dan suara ini bukan suara yang biasa pembaca dengar di smart assistant masa kini. Saya menggunakan suara seperti robot yang berbicara secepat 450 kata per menit. Untuk perbandingan, Bahasa Inggris biasaya diucapkan antara 120-150 kata per menit. Ada satu tambahan: Karena saya perlu membaca dalam Bahasa Finlandia dan Bahasa Inggris secara reguler saya membaca teks berbahasa Inggris dengan speech synthesizer berbahasa Finlandia. Dulu screen reader belum cukup pintar untuk pindah-pindah bahasa secara otomatis, sehingga saya sudah cukup terbiasa dengan proses ini. Berikut ini contoh paragraf yagn dibacakan untuk saya:

Dan berikut teks sama yang dibacakan oleh speech synthesizer berbahasa Inggris.

Secara alami mouse tidak begitu berguna untuk saya sehingga saya lebih sering bekerja dengan keyboard. Perintah yang saya gunakan pasti sudah biasa digunakan banyak orang yang membaca artikel ini: tombol panah dan tombol TAB untuk pindah didalam sebuah window, alt+tab untuk berpindah antar window dll. Screen reader juga memiliki banyak shortcut, misalnya membaca beberapa bagian di window yang aktif atau mematikan/menghidupkan beberapa fitur screen reader tersebut.

Saat membaca halaman web dan dokumen terformat lainnya lah yang membuat cerita ini sedikit menarik. Seperti yang pembaca lihat/dengar, sebuah screen reader membacakan informasinya dalam beberapa bagian. Bagian-bagian itu pada umumnya sebuah kata atau sebaris kata, sebuah karakter atau teks apapun itu. Contoh, jika Saya menekan tombol panah ke bawah di sebuah halaman web saya akan dibacakan baris berikutnya. Pembacaan seperti ini artinya Saya tidak bisa memindai sebuah konten dilayar sama seperti orang normal membaca dengan matanya. Sebaliknya, saya membaca per bagian atau melewati bagian yang saya tidak perlu.

Suara atau braille tidak dapat menggambarkan secara akurat bagaimana tampilan sebuah window. Semua informasi yang diberitahukan kepada Saya dilakukan secara linear. Jika pembaca menyalin konten sebuah halaman web yang menempelkannya ke aplikasi notepad, pembaca akan merasakan begitulah kurang lebih bagaimana sebuah halaman web terlihat bagi Saya. Halaman web hanya baris-baris teks yang bertumpuk tanpa ada pemformatan. Meski begitu screen reader dapat memahami semantik yang dipakai HTML sehingga link, heading, form, dll. dapat disampaikan dengan benar. Betul sekali, Saya tidak akan tahu sebuah check box adalah check box jika ia hanya diatur agar mirip sebuah check box (artinya check box tersebut tidak menggunakan elemen HTML yang benar). Suatu hari nanti akan saya tulis lebih lengkap tentang hal ini. Tapi ingat ya, contoh barusan merupakan sebuah kejahatan bagi umat manusia.

Saya menghabiskan sebagian besar waktu saya bekerja dengan command line. Saya sangat jarang menggunakan aplikasi grafis selain sebuah web browser dan sebuah editor. Saya merasa akan lebih cepat mengerjakan sesuatu dengan command line dibanding menggunakan antarmuka yang didesain untuk pengguna ber-mouse.

Jadi, kalau saya menyukai command line, kenapa masih betah dengan Windows, sistem operasi yang tidak terkenal dengan aplikasi command line-nya? Jawabannya sederhana: Windows merupakan sistem operasi yang paling aksesibel. NVDA, aplikasi screen reader yang saya gunakan adalah aplikasi open source yang dikembangkan lebih aktif dibanding aplikasi lainnya. Jika harus memilih saya tentu akan menggunakan Mac OS karena menurut saya ia memiliki kegunaan dan fungsionalitas yang paling seimbang. Sayangnya VoiceOver, screen reader yang menjadi bawaan Mac OS, memilik siklus rilis yang cukup lama dan scara umum terlantar pengembangannya, selain itu model navigasinya juga kurang cocok dengan cara Saya bekerja. Ada juga aplikasi screen reader untuk desktop Gnome dan meskipun sangat terpelihara memiliki basis pengguna yang sangat kecilada banyak hal yang kurang cocok untuk penggunaan sehari-hari saya. Jadi, Windows lah yang paling cocok buat Saya. Saya mengatasi kekurangan Windows dengan menggunakan Git Bash yang datang bersama sekumpulan aplikasi GNU dan aplikasi command line lain.

Bagaimana anda ngoding?

Cukup lama saya merenung untuk memahami mengapa pertanyaan ini sangat penting bagi banyak orang. Ingat bagaimana saya menjelaskan tentang pembacaan teks baris per baris? Begitu juga cara saya membaca kode. Saya melewati beberap babris yang tidak berguna bagi saya, atau hanya mendengarnya setengah untuk mengetahui konteksnya, tapi kapanpun saya perlu mengetahui apa yang dilakukan suatu kode saya akan membaca semuanya seperti saya membaca novel. Normalnya saya tidak bisa membaca kode yang banyak seperti itu. Saya harus mengabstraksi beberapa bagian kode di pikiran saya: kompoenen ini mengambil x sebagai masukan dan mengembalikan y, tidak usah pedulikan bagaimana implementasinya.

Cara membaca yang seperti ini membuat teknik koding saya sedikit berbeda dengan rekan yang bisa melihat. Contoh, saat melakukan review kode saya lebih suka melihat keluaran diff mentah. Side-by-side diff (diff yang berdampingan) tidak begitu membantu, bahkan bisa jadi mengganggu kerja saya. Tanda + dan - juga jauh lebih berguna dibanding warna latar (background colour), bukan karena saya tidak tahu jenis-jenis warna, tapi karena "plus" akan diucapkan lebih cepat dibanding harus membacakan jenis warna merah yang dipakai saat menambah sebaris kode (Gerrit).

Pembaca mungkin berpikir bahwa indentasi dan format kode lain tidak relevan bagi saya karena fitur tersebut hanya masalah tampilan. Hal ini tidak benar: indentasi yang baik membantu saya sebagaimana mereka membantu pembaca yang dapat melihat. Saat saya membaca kode dalam braille (yang tentu saja jauh lebih efisien dibanding suara) memberikan saya kisi-kisi visual mengenai posisi saat ini. Saya mendapat pemberitahuan saat saya memasuki sebuah blok teks dan terindentasi atau tidak terindentasi. Informasi ini membantu menggambarkan sebuah peta kode di pikiran saya. Faktanya Python merupakan bahasa pemrograman pertama yang saya pilih (PHP tidak dihitung) dan bahasa ini memaksa programmer untuk melakukan indentasi yang tidak pernah menjadi masalah untuk saya. Saya merupakan duta coding style yang rapi dan konsisten karena banyak alasan, tapi yang paling utama ialah karena jika tidak melakukan koding yang rapi dan konsisten hidup saya akan lebih sulit.

Editor apa yang anda pakai?

Spoiler: jawaban pertanyaan ini tidak dimulai dengan V atau E. (Saya masih menggunakan Vim untuk menulis pesan commit dan catatan pendek lain di command line). Setahun yang lalu jawaban saya tentu saja adalah, Notepad++. Aplikasi ini ringan dan merupakan sebuah teks editor yang membantu menyelesaikan pekerjaan dengan baik. Namun, setahun yang lalu saya belum bekerja dengan proyek Java yang besar. Saat saya mengerjakan proyek ini tentu pilihannya antara Notepad++ atau kewarasan saya. Saya tentunya memilih agar tetap waras dan meninggalkan Notepad++ untuk IntelliJ IDEA. Sejak saat itu editor ini menjadi pilihan saya. Saya memandang sebelah mata sebuah IDE karena sebagian besar mereka sulit saya gunakan atau tidak efisien jika bekerja hanya dengan keyboard. Jika saya bisa melihat tentu saya akan menggunakan IDE lebih cepat dari ini.

Tapi kenapa Notepad++, pembaca mungkin bertanya. Ada lebih banyak editor ringan lain yang lebih jago seperti Sublime Text atau Atom. Jawabannya sederhana: tidak ada yang bersahabat dengan screen reader. Editor berbasis teks seperti Vim juga bukan sebuah opsi karena screen reader yang saya gunakan memiliki masalah untuk mendukung aplikasi console sehingga membuat editor ini berguna tak lebih dari sekedar menulis pesan commit. Jika editor ini tidak dapat saya gunakan untuk bekerja secara efisien, maka ia tereliminasi.

Apakah anda pernah bekerja dengan kode frontend?

Pembaca pasti berpikir bahwa frontend development itu visual banget sehingga seorang developer tunanetra tidak mungkin bisa melakukannya dan hal tersebut tidak salah juga. Saya tidak pernah melakukan Proof-of-Concept sendirian karena proyek tersebut pasti menginginkan tampilannya benar dulu dan menambah fungsionalitasnya nanti.

Meski begitu, saya juga pernah bekerja dengan Angular dan React. Bagaimana bisa? Banyak aplikasi web saat ini melakukan banyak hal dibalik layar. Contoh, saya pernah beberapa minggu menambahkan dukungan internasionalisasi untuk sebuah aplikasi Angular. Saya tidak perlu melakukan perubahan secara visual sedikit pun.

Saya merasa pustaka semacam Bootstrap adalah kiriman Tuhan untuk orang-orang seperti saya. Karena sistem grid yang dipakai mempermudah saya untuk membuat antarmuka sederhana sendirian. Sebelum sampai ke tangan klien hasil kerja saya yang berhubungan dengan antarmuka harus dicek oleh rekan yang dapat melihat. Jadi kesimpulannya saya masih bisa melakukan frontend development sampai batas tertentu, setidaknya tanpa menyentuh lapisan presentasi terlalu banyak.

Bagaimana dengan hal-hal lain yang belum dibahas?

Tentu saja masih ada banyak hal yang harus saya pisahkan dari artikel ini. Sebagai janji saya akan menulis sebuah artikel bagaimana membuat halaman web menjadi lebih aksesibel karena minimnya penggunaan sematik yang benar dapat menyulitkan saya. Mungkin setelah itu saya masih akan menulis hal lain, tunggu saja!

Catatan: bagi pembaca yang penasaran tentang bagaimana tunanetra menggunakan screen reader, kunjungi video YouTube yang dibuat oleh seorang tunanetra bernama Molly Burke. Ia mendemonstrasikan cara menggunakan iPhone, iPad, dan MacBook menggunakan screen reader.