- Chrome 135 から、アクセシビリティ標準を維持しつつ
<select> 要素を CSS でカスタマイズできる新機能のサポートが始まった
- 長年にわたる仕様調整と開発を経て、古いブラウザーでも壊れない堅牢なコンポーネントとして提供される
- HTML コンテンツも含められ、
appearance: base-select の追加によってアニメーションやスタイルなど多様なカスタマイズが可能になった
appearance: base-select の紹介
<select> に HTML コンテンツを含められる
- 従来は
<option> 内に画像や SVG を挿入してもブラウザーが無視していた
appearance: base-select を適用すると HTML がそのままレンダリングされる
- Chrome では SVG を含むオプションが表示されるが、Safari、Firefox などは対応していない
- CodePen デモ: 実習リンク
- この機能は Finch 実験として導入されており、必要に応じて中止される可能性がある
完全なカスタマイズが可能
base-select のすべての構成要素は置き換え、アニメーション、スタイル適用が可能
- さまざまなデザインを通じて意味のある選択 UI を構築できる
- 例としては、状態表示、アバター付きオプション、カラーピッカー、投稿状態の選択などがある
- CodePen デモ: 実習リンク
JavaScript インターフェースに変更なし
- 既存の
<select> に対する JavaScript の動作は同じまま維持される
- ただし、
<option> に HTML を入れた場合は選択値のパース方式が変わったため、テストが必要
value 属性を使っている場合は別途修正は不要
追加資料
Web 標準
Chrome 関連資料
コミュニティ資料
カスタマイズされた <select> を活用したデモ
4件のコメント
Hacker Newsの意見
この機能に自分が不釣り合いなほど興奮しているのは、たぶん2000年代初頭のWeb開発者だった自分をさらけ出しているのだと思う。
select要素はHTMLで再現できない機能を提供するので、とても有用な機能だこの機能が広くサポートされるまでは、プログレッシブエンハンスメントとして使うべきだ。現時点では caniuse.com によると世界全体で46%が対応している
この機能が実装されるのを見るのはとてもうれしい。カスタムの選択ボックス代替物よりもはるかに大きな改善になるだろう
組み込みのモバイルOSコンポーネントをトリガーしない点が心配だ。組み込みコンポーネントは信頼性が高く、アクセシブルで、反応も良い
select要素だけでなく日付/時刻入力にも当てはまるスタイルを適用しない方がよいコントロールもある。スクロールバーは細すぎたり色のコントラストが悪かったりして使いにくいことがある
select要素は最も見た目が良いコントロールではないが、役目は果たすWeb開発者たちが数十年待ち続けてきたもののように思える。多くのJSライブラリを置き換える可能性がある
select要素をChromiumブラウザでCSSでカスタマイズできるようになったFirefoxのIssueへのリンクが提供されている
このまま進めば、じきにVB6と機能的に同等になるだろう
壊れたJSライブラリよりはましだ。ただ、オプションが多いときにレイアウトがどうなるかが最大の関心事だ
anchor()で位置決めされるでは、
<selectlist>は不要になるのでしょうか?余談ですが、Slackボットではタイトルの
<select>が表示されないですね(笑)あっ… これは後で修正します。