世界を動かす技術を、日本語で。

消えたポーランドのSの不思議な事例 (2015)

2026年6月28日原文(aresluna.org)

概要

  • Medium で発生したポーランド語「Ś」入力バグの発見
  • 歴史的・技術的要因 が重なった複雑なバグの背景
  • ポーランド語特有のキーボード事情 とWindowsの内部仕様
  • Ctrl+Sショートカットの衝突 による問題発生
  • 簡単な修正 で解決したが、多言語対応の難しさを示唆

30年越しのキーボードバグ

  • Mediumで ポーランド語入力中、「Ś」だけが入力できない という報告
  • 他の32文字は問題なく入力可能、 「Ś」だけが例外 という不可解な現象
  • バグの背後には 4つの歴史的・技術的要素 が絡み合う

要素1:ポーランド語の特殊性

  • ポーランド語は ロシア語に次ぐスラブ語圏2位の使用者数
  • 英語のアルファベットを基盤 に、9つのダイアクリティカル記号付き文字を追加
  • タイプライター時代 から特殊文字対応の工夫
    • 一部記号を犠牲にして9文字分を配置
    • 大文字は 手動で合成 する運用
  • 句読点やカッコの省略 など独自のレイアウト

要素2:共産主義時代の影響

  • 1980年代ポーランド では西側PCの商用輸入が禁止
  • 個人輸入PCは 英語配列キーボード が主流
  • ダイアクリティカル記号入力のための独自配列
    • Ctrlは既にショートカットで多用、 Altキーを活用
    • 8文字はラテン文字+Alt、1文字は近いキーに割り当て
    • タイピスト配列 vs プログラマ配列 の誕生
      • プログラマ配列は記号が多く残り、プログラミングに便利
      • エルゴノミクスは悪いが普及

要素3:保存習慣とショートカット

  • 自動保存機能が普及前 は手動保存が必須
  • Ctrl+S(Command+S) が「保存」の定番ショートカットに
  • ウェブエディタ ではCtrl+Sでブラウザの「ページ保存」ダイアログが開く
  • Mediumは この挙動を防ぐため、Ctrl+Sを独自処理+イベントキャンセル
    • これが後のバグの伏線

要素4:Microsoft Windowsの仕様

  • WindowsではAltキー がメニューショートカットで多用
  • ポーランド語入力では 右Alt(AltGr) がダイアクリティカル記号入力用
  • 英語キーボードでは右Altがない場合、Ctrl+Altの組み合わせで代用
    • 右Alt+S(=Ctrl+Alt+S)で「Ś」を入力
  • 結果として、 Ctrl+Sの処理と衝突

バグの正体と修正

  • MediumのCtrl+Sブロック処理が「Ctrl+Alt+S」も巻き込む
    • そのため「Ś」が入力できなくなる
  • 修正は Altキーが押されていない場合のみCtrl+Sをブロック する条件に変更
    • 例: if ((e.metaKey || (e.ctrlKey && !e.altKey)) && e.keyCode === goog.events.KeyCodes.S) { ... }
  • 数行の修正で解決、だが背景には複雑な歴史と仕様

多言語対応の難しさと教訓

  • アメリカ英語中心の設計 が他言語ユーザーの不便を生む実例
  • ポーランド語や他の言語 のための地道な工夫と開発者の努力
  • プログラマ配列が今も主流、歴史的経緯が現代にも影響
  • 一見些細なバグ でも、多層的な背景があることを示す事例

Hackerたちの意見

ポーランドがラテンアルファベットを使っている(スラブ語の音を表現するためにちょっとした工夫があるけど)っていうのは、ポーランドが西側に寄り添うのがずっと楽だったってことだと思う。平均的なポーランド人は、ウクライナ人やロシア人よりも西側の隣国に文化的に近いんじゃないかな(料理を除けばだけど)。

ポーランド料理はドイツ料理にすごく似てるよね。(このコメント、ポーランドの人たちをめっちゃ怒らせるだろうな。)

カトリックであることも助けになるよね。

ラテンアルファベットの採用自体が、西側のラテン世界の王国に寄り添うための動きだったんだよね。ビザンチンではなく、カトリックを採用することとも関係してる。

カザフスタンみたいに、ロシアよりもヨーロッパに近づくためにキリル文字からラテン文字に切り替えた国もあるよね。ウクライナも未来に同じことするのかな… [1] https://www.bbc.com/worklife/article/20180424-the-cost-of-ch...

「平均的なポーランド人は、ウクライナ人やロシア人よりも西側の隣国に文化的に近いと思う。」 そんなことないよ。ポーランド人はウクライナ人やロシア人ともっと多くの共通点があるって認めたくないだけ。私もポーランド人だけど。「ポーランド人は、自分がフランス人だと思っているロシア人だ。」

言語的、歴史的、文化的な情報がすごく面白いし、よく説明されてるね。

これは楽しい読み物だった。要約するとこんな感じ:> 「盲目的にCtrl Sをブロックする代わりに、Altキーが押されていないときだけCtrl Sをブロックすればよかった。Ctrl Alt Sがポーランド語のSのショートカットだった。Ctrl Sは保存を改善するためにブロックされたけど、これがCtrl Alt Sもブロックしちゃった。」

いや、ショートカットはalt+sだったんだよ。それがみんなが打ってたやつ。で、Windowsではすでにaltの組み合わせが使われてたから、右alt+sになったんだ(右altはWindows自体では使われてなかったから)。でも、専用の右altコードがあるわけじゃなくて、Windowsはそのキーをctrl+altコードの組み合わせに書き換えちゃうんだ。要するに、tl;drするなら、せめて一番大事なところは正確に理解してほしい。みんなが押してたのはaltだけで、Windowsは「今、ctrl+altを押してるよ」ってなるから、alt+sがctrl+sになっちゃって、誰も探してないaltがキーイベントを妨害することになるんだよ。

新しいCopilot 365みたいだね。毎回「Ć」を打とうとすると、Copilotがポップアップする。アプリを常に閉じなきゃいけない。

一番いいのは、自動でインストールされるところ。こっちから何も言わなくてもね。ありがとう、Microsoft;君たちのQAがちゃんと機能してるのを見るのはいいね。

こういう小さなことが、新しいLinuxユーザーを生むんだよね。切り替えてからは、もう戻れない。SteamOSから投稿中。

Hacker Newsで議論の続きを見る