- Bug di editor web Medium yang membuat hanya huruf kapital Polandia Ś tidak bisa diketik terjadi karena tumpang tindih antara kebiasaan input, lingkungan impor PC, kebiasaan shortcut simpan, dan cara Windows menangani Right Alt
- Bahasa Polandia menggunakan alfabet Latin dengan tambahan 9 huruf berdiakritik, dan di lingkungan PC awal, alih-alih keyboard khusus, kombinasi Alt+huruf Latin dalam “programmer’s layout” menjadi standar de facto
- Karena Windows secara internal memetakan Right Alt seperti Ctrl+Alt, Right Alt+S yang dipakai untuk mengetik Ś dari sudut pandang sistem terlihat seperti Ctrl+Alt+S
- Medium mencegat Ctrl+S untuk memblokir dialog simpan browser dengan memanggil
preventDefault(), tetapi karena tidak memeriksa apakah Alt ikut ditekan, ia malah memblokir input karakter itu sendiri
- Perbaikannya hanyalah perubahan kecil dengan menambahkan
!e.altKey pada kondisi pemblokiran Ctrl+S, dan ini menunjukkan bahwa kebiasaan komputasi yang berpusat pada 26 huruf bahasa Inggris dapat menimbulkan pengecualian dan gesekan bagi pengguna bahasa lain
Ś yang Menghilang di Medium
- Seorang pengguna melaporkan bahwa saat mulai menulis dalam bahasa Polandia di Medium, huruf lain bisa diketik tetapi hanya Ś yang tidak bisa dimasukkan
- Medium tidak memperlakukan bahasa tertentu secara khusus, dan pada awalnya tampak aneh mengapa dari 32 huruf bahasa Polandia hanya satu huruf ini yang bermasalah
- Penyebabnya bukan cacat pada satu fungsi tunggal, melainkan hasil bertumpuknya cara input dan cara sistem operasi memprosesnya selama puluhan tahun
Bahasa Polandia dan Huruf Tambahan
- Bahasa Polandia adalah bahasa Slavia yang paling banyak digunakan setelah bahasa Rusia, bahkan melampaui bahasa Ukraina
- Berbeda dari bahasa Rusia dan Ukraina, bahasa Polandia berbasis alfabet Inggris/Latin tetapi menambahkan beberapa huruf
- Kata asli bahasa Polandia tidak memiliki Q, V, dan X, tetapi huruf-huruf itu tetap dipertahankan untuk bahasa Latin dan kata serapan
- Sebagai gantinya, bahasa ini juga memakai 9 huruf berdiakritik berbasis huruf Latin
- Pada awal abad ke-20, mesin tik harus mengakomodasi huruf-huruf tambahan ini; beberapa mendapat tombol terpisah, sementara sisanya berbagi dengan tombol angka
- Huruf kapital kadang juga “disimulasikan” dengan mengetik huruf Latin lalu kembali dengan backspace untuk menambahkan aksen di atasnya
- Untuk memberi ruang bagi huruf tambahan, tanda baca seperti titik koma dan tanda kurung kadang harus dikorbankan
Lingkungan PC Polandia era blok komunis dan programmer’s layout
- Lingkungan komputer pribadi awal di Polandia pada 1980-an dibatasi oleh kurangnya pendapatan disposabel dan larangan impor komersial komputer Barat
- Komputer yang masuk dari Barat sering kali tetap membawa buku manual asli, perangkat lunak yang belum diterjemahkan, dan keyboard gaya Amerika
- Negara seperti Prancis dan Jerman mendapat keyboard kustom yang mencerminkan tata letak mesin tik mereka, tetapi Polandia harus mencari cara untuk memasukkan 9 huruf tambahannya di keyboard gaya Amerika
- Karena Ctrl sudah luas dipakai sebagai shortcut dan Alt relatif lebih jarang dipakai, kombinasi Alt pun menjadi standar de facto
- Delapan huruf berdiakritik dipetakan ke huruf Latin yang bersesuaian
- Satu sisanya dipetakan ke tombol yang posisinya berdekatan
- Tata letak lama disebut “typist’s layout”, sedangkan cara baru ini disebut “programmer’s layout”
- Mungkin karena pengguna PC awal kebanyakan adalah programmer
- Mungkin juga karena tanda baca yang sering dipakai dalam pemrograman tetap dipertahankan apa adanya
- Programmer’s layout mengharuskan Alt kiri dan tombol di dekatnya ditekan dengan tangan yang sama sehingga tidak ergonomis, tetapi tetap diterima karena mudah dipahami tanpa modifikasi hardware atau stiker
- Setelah itu keyboard typist khusus memang muncul, tetapi hampir tidak ada yang berpindah, menunjukkan pola serupa dengan bagaimana QWERTY yang kurang ideal tetap menjadi dominan
Kebiasaan Ctrl+S dan benturannya dengan editor web
- Sebelum autosave menjadi umum, kebiasaan menyimpan dokumen secara manual sangat penting
- Pada 1980-an dan 1990-an, proses menyimpan itu lambat, sedikit demi sedikit mengauskan media seperti disk, dan kadang sangat membebani CPU sehingga sulit melakukan hal lain
- Pengguna pun membentuk kebiasaan menekan Command+S atau Ctrl+S setiap kali berhenti sejenak saat menulis
- Ada yang menekannya setiap paragraf
- Ada yang menekannya setiap kalimat, lalu belakangan setiap beberapa kata
- Dalam editor berbasis web, kebiasaan ini memunculkan masalah karena membuka dialog browser untuk menyimpan HTML halaman web saat ini
- Medium juga dulu mencegah hal ini dengan mendeteksi Ctrl+S atau Command+S di kode editornya, lalu memanggil simpan dan memblokir aksi default
if ((e.metaKey || e.ctrlKey) && e.keyCode === goog.events.KeyCodes.S) {
this._editors.save()
e.preventDefault()
}
- Kode ini menjalankan simpan editor saat
metaKey di Mac atau ctrlKey di Windows/Linux ditekan bersama S, lalu mencegah dialog simpan browser muncul
- Masalahnya, di beberapa lingkungan, input huruf Polandia Ś tidak terlihat sekadar seperti Alt+S
Cara Windows menangani Right Alt
- Windows 3.x dan Windows 95 memungkinkan akses cepat ke item menu dan kontrol dialog melalui kombinasi Alt+huruf bergaris bawah
- Di Polandia, Alt sudah dipakai untuk memasukkan huruf berdiakritik, sehingga berbenturan dengan shortcut Windows
- Seiring perkembangan keyboard, muncul tombol Alt tambahan di sebelah kanan spasi, sehingga Alt kiri bisa dipakai untuk shortcut Windows dan Alt kanan untuk input bahasa Polandia
- Namun, fungsi Right Alt juga harus tetap bisa bekerja pada keyboard lama yang hanya punya satu tombol Alt, sehingga Microsoft di dalam Windows memetakan Right Alt ke kombinasi Ctrl+Alt yang jarang dipakai
- Akibat keputusan ini, Right Alt+S yang dipakai untuk memasukkan Ś dari sudut pandang sistem tampak seperti Ctrl+Alt+S
- Kode pemblokir Ctrl+S di Medium tidak memeriksa apakah Alt ikut ditekan, sehingga akhirnya mencegat input Ś seolah-olah itu shortcut simpan yang harus diblokir
Perbaikan: saat Alt ditekan, jangan anggap sebagai Ctrl+S
- Setelah penyebabnya dipahami, perbaikannya sederhana
- Alih-alih selalu memblokir Ctrl+S, kondisinya diubah agar hanya diblokir ketika Ctrl ditekan dan Alt tidak ditekan
if ((e.metaKey || (e.ctrlKey && !e.altKey)) && e.keyCode === goog.events.KeyCodes.S) {
this._editors.save()
e.preventDefault()
}
- Setelah perubahan ini, input Right Alt+S tidak lagi masuk ke kondisi pemblokiran simpan Ctrl+S
- Medium memperbaiki bug ini, dan pada kondisi tersebut kemudian ditambahkan banyak komentar agar orang tetap bisa memahaminya
Masalah yang lebih besar di balik satu kondisi kecil
- Di Polandia, komunisme runtuh pada 1989, dan kini komputer dapat diimpor secara legal baik oleh individu maupun perusahaan
- Windows dan Mac yang dibeli di Polandia saat ini sudah sepenuhnya mendukung bahasa Polandia, dan sistem operasinya juga sudah dilokalkan
- Meski begitu, programmer’s layout masih tetap ada di pengaturan sistem dan tetap menjadi yang paling umum dipakai di antara dua tata letak itu
- Bug kecil ini terhubung dengan kenyataan bahwa kebiasaan komputasi bergaya Amerika berkembang dengan berpusat pada 26 huruf tanpa aksen dalam bahasa Inggris
- Bahasa Polandia harus terus berkompromi sambil berpindah-pindah di antara turunan tata letak QWERTY, dan bahasa yang memakai sistem tulisan yang lebih jauh lagi dari bahasa Inggris bisa berada dalam posisi yang lebih tidak menguntungkan
1 komentar
Komentar Hacker News
Saya rasa karena bahasa Polandia memakai alfabet Latin dan hanya mengekspresikan bunyi tambahan dengan variasi Slavia kecil, Polandia jadi jauh lebih mudah menyesuaikan diri ke orientasi Barat
Orang Polandia rata-rata secara budaya jauh lebih dekat dengan tetangga baratnya dibanding orang Ukraina atau Rusia, mungkin hanya masakan yang bisa jadi pengecualian
Saya penasaran apakah jauh di masa depan Ukraina juga akan menempuh jalan yang sama
Para akademisi melihat bahwa pada periode yang kurang lebih sama, bahasa Polandia mulai berkembang sebagai bahasa tersendiri, dan hingga abad ke-13 penuturnya masih dapat berkomunikasi tanpa banyak masalah dengan tetangga di selatan
Ortografi Polandia terbentuk pada abad ke-15 hingga ke-16, dan Stanisław Zaborowski serta Jan Kochanowski berusaha memperkenalkan huruf agar lebih akurat mencerminkan fonologi Polandia saat itu, tetapi alfabet yang mereka usulkan cukup panjang
Pada masa pendudukan dan pembagian wilayah, ada Rusifikasi kuat yang berupaya menghapus bahasa dan budaya Polandia, termasuk percobaan memperkenalkan alfabet Kiril, tetapi akhirnya gagal; karya sastra masa itu banyak bertema patriotisme dan cinta tanah air
Reformasi bahasa tahun 1936 membuatnya mendekati bentuk yang kita kenal hari ini, dan pada masa komunis diperkenalkan bentuk orang kedua jamak dalam bahasa resmi, seperti vykání dalam bahasa Ceko dan Slowakia, tetapi terasa tidak alami dan sangat politis sehingga tidak bertahan lama
Bahasa Polandia memiliki dialek, tetapi setelah Perang Dunia II perbedaan itu memudar karena migrasi, sehingga bahasa Polandia baku juga menguat pada masa itu; kini kata serapan bahasa Inggris makin banyak, sampai hater dapat dinaturalisasi menjadi hejter
Pernyataan ini akan membuat cukup banyak orang Polandia marah
Masalah sebenarnya adalah browser tidak mengekspos cara sederhana untuk memeriksa kombinasi tombol, dan para developer juga tidak membuatnya sendiri
Di banyak situs, kombinasi tombol yang dimaksud tetap dijalankan meskipun ada tombol modifier tambahan seperti alt atau shift
Kode yang ditampilkan di sini pun hanya memperbaiki masalah yang lebih besar di Windows, sementara alt+cmd+s tetap terblokir
Perlu ada proposal agar browser mengekspos properti dalam event keydown/up/press yang berisi kode kombinasi tombol seperti "CTRL+S" atau "CTRL+ALT+S"
Dengan begitu developer bisa melakukan percabangan berdasarkan properti itu, alih-alih memeriksa kode tombol dan modifier secara manual
Developer web juga sebaiknya membuat sendiri properti semacam ini di kode mereka lalu membandingkannya, alih-alih memeriksa tombol modifier secara manual. Itu akan mencegah bug seperti di artikel asli dan jauh lebih nyaman dipakai
Bayangkan kerusakan sebesar apa yang bisa terjadi jika developer diberi lebih banyak pilihan untuk ikut campur dengan lebih mudah
Kalau memang harus mencegat tombol, sudah ada API level rendah, jadi sebaiknya berhenti di situ saja
Di sisi lain, HTML memiliki atribut accesskey untuk menetapkan tombol pintasan: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/...
Copilot 365 yang baru juga persis seperti ini. Setiap kali saya mencoba mengetik "Ć", Copilot muncul dan saya harus terus menutup aplikasinya
Sejak beralih, saya tidak pernah menoleh ke belakang
Ditulis di SteamOS
Terima kasih Microsoft. Senang melihat quality assurance berjalan dengan baik
Fakta menarik: jika menerapkan normalisasi dekomposisi kanonis Unicode, 8 dari 9 huruf Polandia (ż, ó, ć, ę, ś, ą, ź, ń) terurai menjadi huruf dasar + tanda diakritik gabungan, tetapi ł tetap apa adanya
Karena itu, dengan tokenizer unicode61 remove_diacritics milik sqlite, teks Polandia tidak bisa dinormalisasi untuk pencarian full-text
Saya tidak yakin, tetapi sepertinya remove_diacritics milik sqlite bekerja dengan cara mengubah ke NCD lalu menghapus karakter gabungan dari string, mirip dengan implementasi yang pernah saya buat sendiri
Saya memperkirakan kasus khusus lain yang tidak terurai seperti ħ atau ø juga akan berperilaku serupa
Lviv = 2,5 juta
Vinnytsia = 1,5 juta
Ivano-Frankivsk = 1,3 juta
Khmelnytskyi = 1,2 juta
Rivne = 1,1 juta
Ternopil = 1 juta
Volyn = 1 juta
Chernivtsi = 800 ribu
Zakarpattia = 800 ribu (kelompok etnis Hungaria tidak dihitung)
Dengan begitu ada 11,2 juta orang Ukraina Barat yang mayoritas besar memakai bahasa Ukraina, dan bahkan jika wilayah lainnya diabaikan sepenuhnya, jumlahnya tetap lebih besar daripada penutur bahasa Ceko. Selain itu, wilayah-wilayah lain pun tidak sepenuhnya berbahasa Rusia, apalagi sekarang
Sayangnya bukan hanya Medium; beberapa aplikasi Windows juga sama. Misalnya di Active Presenter, ketika memasukkan satu huruf, mungkin Ó, perekaman layar berhenti, sehingga sering kali tidak mungkin merekam adegan mengetik dalam bahasa Polandia
Aplikasi lain juga tampaknya menetapkan kombinasi Alt + Ctrl + huruf sebagai shortcut dan entah bagaimana menimpa driver layout keyboard
Bahkan pada 2026, tiba-tiba saya tidak bisa memasukkan huruf kapital Ś di Edge untuk Mac. Rasanya seperti kembali sekitar 25 tahun ke masa lalu
nvidia overlay punya shortcut Alt+Z, dan itu bekerja baik dengan Alt kiri maupun Alt kanan, sehingga pengguna bahasa Polandia tidak bisa mengetik “ż” kecuali membuka overlay atau mengubah pemetaan tombol; cukup menjengkelkan
Nvidia, tolong perbaiki
Ringkasnya begini:
Karena Windows sudah memakai kombinasi Alt, jadinya Alt kanan+s, dan meskipun Alt kanan tidak dipakai oleh Windows sendiri, alih-alih kode Alt kanan terpisah, Windows menulis ulang tombol itu sebagai kombinasi ctrl+alt
Kalau mau meringkas, setidaknya detail paling penting harus benar. Orang hanya menekan Alt, tetapi Windows mengubahnya menjadi “sekarang sedang menekan ctrl+alt”, sehingga alt+s terlihat seperti ctrl+s dan ada Alt yang tidak dicek siapa pun saat event itu dicegat lalu dimatikan