ブラウザの標準機能を自作してはいけない
ウェブ開発者は、ブラウザがすでに適切に処理している機能を独自実装すべきでないとの論文がSusam Palにより2026年5月23日に公開された。暗号化の「自作するな」という原則をウェブデザインに適用し、スクロール、リンク操作、パスワード入力、日付選択など複数の機能について自作実装の問題を指摘している。
2026年5月23日、Susam Palはウェブデザインにおけるカスタム実装の弊害をテーマとした論稿を発表した。暗号化の分野で知られる「『自作するな』という格言がウェブサイト設計にもあればいい」と述べており、ブラウザネイティブ機能を独自実装することでユーザー体験が悪化する具体例を列挙している。
暗号化原則からの類推
ソフトウェア開発における「Don't roll your own crypto」という原則は、セキュリティに関わる本番運用環境では、未レビューの独自実装に依存してはいけないという指摘に基づいている。決済、医療、個人データ処理などの規制対象分野では、自作暗号化により強力な暗号化要件の違反や財務ペナルティが発生する可能性がある。Susam Palは「ウェブサイト設計は暗号化ではなく、破損したスクロールバーは破損した暗号化スキームと同じ種類の障害ではない」と認めながらも、「ブラウザがすでに適切に処理し、ユーザーが毎日依存している機能については、開発者が自作すべきでない」と主張している。
カスタム実装の具体的問題
Susam Palが指摘する具体的な問題領域は以下の通りである:
- ページスクロール: カスタムスクロール動作はページをユーザーにとって「破損」させ、マウス、タッチパッド、キーボード入力への反応が変わる
- リンク操作: GitHubはリンククリックをJavaScriptで処理するカスタム機能を実装しており、ブラウザの標準動作より遅くなることがあり、新しいタブで開く方が高速なことが多い
- パスワード入力: ブラウザのパスワード入力フィールドはパスワード保存、自動入力、強力なパスワード生成、HTTP接続時の警告、パスワードマネージャー統合、モバイルキーボードおよびアクセシビリティツールとの連携といった機能を提供する
- 日付選択: HTML の
<input type="date">要素は存在するが日付範囲選択をサポートしていないため、カスタム実装が利用されることがある
カスタム日付選択ツールの問題
カスタム日付選択ツールの実装は多くのサイトで異なり、一貫性がない。月表示からズームアウトして年表示に入る必要があるもの、古い生年月日を選択する際に前年ボタンを40回以上クリックさせるもの、日付をまったく入力できないものなど、実装がバラバラである。Susam Palは「10のウェブサイトで10通りの異なるカスタム日付選択ツールの使い方を学ぶことを強要されるより、2つの異なる入力フィールドを使って日付範囲を選択する小さな代償を払う方が構わない」と述べており、代替案として「<input type="date"> を標準実装のままにしておき、カスタムウィジェットを追加の補完として同じフィールドを操作できるように提供する」ことを提案している。
フォームコントロールカスタマイズの一般原則
Susam Palは「フォームコントロールをいじることをやめるべき。カスタム実装はほぼ常に新しい問題を導入する一方で、既存の問題の一部を解決するだけである」と指摘している。さらに、「ウェブサイトのレイアウトとインターフェースを数ヶ月ごとに変え続けるな」と述べ、高齢者のようにインターフェース変更への適応が困難なユーザーに対する配慮を強調している。「Linux ディストリビューションが数ヶ月ごとに全てのコアコマンドとそのコマンドラインオプションを再設計したら、または洗濯機のボタンが毎朝並び替えられたら、どう感じるか想像してほしい」とのこと。
筆者の見立て
- 自作デザイン機能について「〜と論じている」: 開発者は「本当に必要とされていない限り何も自作すべきではない」という手法をウェブサイト開発に取り入れるべきだと考えている
- スクロール動作について「〜と解釈している」: カスタムスクロール実装はページをユーザーに対して機能不全にさせると捉えている
- リンク操作について「〜の可能性を示唆している」: GitHub のJavaScriptベースのリンク処理より標準ブラウザ動作の方が往々にして高速である可能性を示唆している
- パスワード扱いについて「〜の可能性を示唆している」: カスタムテキストフィールドがブラウザ、OS、支援技術により意図しない形でパスワードを露出させる可能性を示唆している
- 日付選択について「〜と論じている」: ブラウザネイティブの日付選択機能はカスタム実装より優れていると評価している
- ウェブサイト再設計について「〜と解釈している」: 頻繁なウェブサイト再設計は高齢ユーザーが新しいインターフェースに適応するために多くの時間を費やす負担になると捉えている
この記事は元記事の事実のみに基づいて自動生成されました。
出典
Susam Pal, "Don't Roll Your Own ...", https://susam.net/do-not-roll-your-own.html, 2026-05-23