# ジム・ニールセンの「Sanding UI」、小さなFlexboxのバグをより広範なQAの教訓に

発生日:2024-09-21

NeoTechNews編集部

2024年9月21日に広まった短い投稿は、ごくありふれた一つのバグを通じて、インターフェース品質について異例なほど長く通用する論点を提示している。ジム・ニールセンは自身のブログで、木材の研磨になぞらえた開発習慣を説明している。何かを作り、何度もクリックして確認し、ささくれを探り、小さな調整を加え、粗い部分がなくなるまで繰り返すというものだ。この比喩は単純だが、彼が用いる事例は、ブラウザーツールや自動チェックが成熟した時代であっても、なぜこのようなテスト方法が依然として重要なのかを示している。

ニールセンは、標準的なラジオ選択肢のリストを作り、コントロールとそのラベルの配置にFlexboxを使用していたという。見た目には問題がなかったが、クリック操作を繰り返すうちに、ラジオ入力とテキストラベルの間に、クリックしても想定どおりコントロールが切り替わらない無反応の領域があることに気付いた。ラベルと入力はすでに正しく関連付けられていたため、問題はセマンティックなマークアップではなかった。原因は間隔だった。UIを視覚的にすっきりさせるFlexboxのgapが、小さな操作上の空白も生み出していた。

この種の不具合は、正しさと体験の間にある隙間に潜んでいるため、多くのチームが早期に見落としがちなものそのものだ。コントロールは技術的には存在していた。ラベルも技術的には存在していた。関連付けも技術的には存在していた。しかし、利用者の手はマークアップという抽象概念を操作するのではない。操作するのはピクセル、クリック可能領域、そして習慣だ。一つの視覚的なまとまりを目にした人がその内部のどこかをクリックしたなら、ソフトウェアは領域全体が同じ操作に属しているかのように動作すべきだ。無反応の領域は、どれほど小さくても、操作の引っ掛かりとして感じられる。

ニールセンの修正も同様にささやかなものだった。Flexboxのgapを削除し、代わりにラベルへpaddingを追加することで、間隔を維持しながらコントロール全体をクリック可能な一単位として動作させた。そのCSS技法自体には、目新しい点はない。より重要なのはプロセスだ。彼が問題を発見したのは、Flexboxについて第一原理から考察したからではなく、複数の移動パターンでインターフェースを繰り返し使い、壊そうと試みたからだった。投稿では、クリック、ブラウザーの戻るボタン、右クリックによる移動、アプリ内の戻る操作、キーボードショートカットが具体的に挙げられている。

このアプローチは、開発とQAの境界を有益な形で曖昧にする。ニールセンはこれを「一種のQA手法」と呼ぶが、チェックリストに従うことよりも、職人としての規律として位置付けている。木工では、研磨し、点検し、表面を手でなぞり、それから再び研磨する。インターフェース制作でも、気まずい箇所を無視できなくなるまで、利用者が使うのと同じ方法でチームがソフトウェアを使うべきだと彼は提案する。

この教訓はラジオボタンの枠を超えて応用できる。現代のUI技術スタックを使えば、洗練された見た目のコンポーネントを迅速に公開でき、FlexboxのようなCSS機能はレイアウト上の摩擦を大幅に取り除く。しかし、組み立ての速さは、特に間隔、動き、ナビゲーションが製品の機能的部分ではなく装飾的な層として扱われている場合、微妙な操作上のミスを覆い隠しかねない。

だからこそ、この投稿は共感を呼ぶ。ニールセンはフレームワークに反対しているわけでも、現代的なCSSの利便性に反対しているわけでもない。彼が主張しているのは、より高い仕上がりの基準だ。製品は技術的に正しくても、利用者に無数の小さなささくれを与えることがある。その多くを発見する確実な方法は、今なお最も古くからある方法だ。滑らかに感じられるまで、触り続けることである。