本セッションの登壇者
セッション動画
よろしくお願いします。下農です。html5jというコミュニティでスタッフをやっています。本業ではW3Cでいくつかのワーキンググループを見るというお仕事をしております。
W3Cは年会費を払って入っている会員企業の皆様で成り立っている組織です。年1回1週間、みんなで集まって対面会議をしようというのがありまして、今年も9月にTPAC 2023がスペインで開催されました。コロナも終わって現地参加445人と大賑わいで、議論がいろいろ進んだところです。
常日頃からGitHubやメール上で議論しているので、対面では顔を突き合わせないと進まないような面倒くさい件をメインに話をします。この中でブレークアウトセッションというのがありまして、将来のインキュベーションみたいな議論をやっています。TPAC自体に参加登録しなくてもオンラインで見られるので、もし興味があれば次回ご検討ください。whatwgなどのミーティングも2日間に渡って行われました。そのうちさまざまなアップデートがいろいろなチャンネルで流れると思います。
しばらくはAPIまわりがメインだった、が
ここ5年ぐらい、HTMLの仕様はそんなに大きく変わっていません。どちらかというとWeb RTCの後のWeb transport、Web codexなど、APIがメインだったと思うんですが、ここ1年ぐらいHTML仕様をどんどんアップデートしていこうという話が結構行われているので、紹介したいと思います。
HTMLにかかわらず、Webに関する仕様のインキュベーションを何でもやるぞというWeb Incubator CG(WICG)というグループがありまして、新しいAPIや仕様を検討してwhatwgなどいろいろなところに持っていくという活動が行われています。Open UIもこのWICGの中のサブグループです。最近はエレメントを増やすのはあまりなくて、attributeを増やしたり、APIを新しく生やしたりという変更が多いです。
久々の新規エレメント追加
ただ、最近それなりに大きな出来事がいろいろ起こってきているように思っています。いくつかピックアップして示します。
数字はGitHubのissue番号です。たとえばnavigation APIなど、いくつかのAPIが正式にWICGからwhatwgのhtmlにマージされたり、これは使っている方もいらっしゃると思いますが、<hr>
を<select>
で、オプショングループ以外に横線を単に区切りとして使えるようにする変更もマージされました。あと1つ大きいのは、<search>
というエレメントが追加されていることです。
それ以外については、Popup APIの関連で周辺のattributeの整備が行われたり、html以外ですとfetchのhttpsデフォルト化です。これは、httpsアップグレードと昔は言われていたかと思うんですけれども、ブラウザのURLバーにhttpで始まるアドレスを入力してもデフォルトでhttpsでアクセスする仕組みです。このようにセキュリティ面での更新が入ったのが大きな出来事です。
先ほど触れた<search>
というのは久しぶりに追加されたエレメントです。削除されるエレメントはいろいろありそうで、たとえば<h1>
から<h6>
などを整理し直そうとか、Hグループをなくそうといった議論もありますが、<search>
が入ったのは逆に増やすという意味で最近1つ大きなエポックです。
これは特に何かを表示するものではなく、ARIAのsearch
という属性に対応したエレメントです。これでARIAの属性がすべてカバーされたので、Webのセマンティクスを構築する上で大きな意味のある、コンテナとしてのエレメントになります。Safari 17のリリースノートにも載っているとおりSafariでも実装されて、だいたいどのブラウザでも使えるようになっています。
3Dアセットに対応したエレメントを検討
まだ実装テスト段階ですが、それ以外に<model>
というエレメントが議論されています。これはもともとAppleが持ち込んできたドラフトの仕様で、まだDraft Community Group Reportということで、機能について詳細な議論をしようとしている段階です。仕様書にはほぼ文章はなくて、issueがいろいろ埋め込まれていて、こういう議論があるんだぞというような状態でしかありません。でも、試験実装とかベータ版でflag
に隠れて実装されたりとかいう話も出ていますので、いろいろなブラウザで実装に向けての試験が行われているところです。
この<model>
は、何らかの3D アセットを読み込んで表示させるものです。画像や時間を含む動画といった2Dのアセットを表示する<image>
や<video>
といったエレメントがありますが、それに対して3Dのアセットを読み込んで表示する、もしくは3Dのアセットを表示した上で、JSなりユーザーインタラクションでアップグレードなりインタラクションをすることを視野に入れたエレメントになります。今のところ、2D画像でいうGIFとかJPEGに対して、glTFやUSDがターゲットとして挙げられていますが、まだどうなるかわからないところです。
関連して今、USDの標準化を進めるためのグループが立ち上がろうとしてしていて、公開の標準仕様になるという方向で話が進んでいるようです。インターオペラビリティが確保された仕様として公開されれば、この2つがメインで実装されていくのかなと思います。実際のところ、USDはglTFの上にシーングラフなどのガワをかぶせたようなものなので近い関係にあります。このような形で<model>
も数年以内に入ってくるのではと思います。
HTML仕様は新しい挑戦へ
それ以外に、先ほど触れたようにW3Cの中にOpen UIというグループがありまして、さまざまなUI部品についての共通のデザインパターンを抽出して提示するための調査・開発をしています。先日のTPACでもwhatwgのミーティングの中でOpen UIのセッションがあって、いろいろ議論されていました。
Open UIは、特定のプラットフォームにあるUIを標準化するのではなくて、共通してさまざまなところで使われているものを抽出して、それを標準化なり、HTML仕様に入れるなり、APIを追加するようなことを検討しているグループです。PopoverなどUI関係の新しいAPIでここから来ているものが結構ありますので、将来追加されるものについて、こういうグループの話も見ているとよいのではと思います。
具体的にどういう話が行われているかは、URLをご覧ください。さまざまなWebのUIで独自にフレームワークで開発しているようなものを共通化して、同じエレメントで表記して、スタイルやJSとかを当て替えるだけでいけるようなものにするというような議論が行われています。
Popover APIなどはExplainerという、概要や「こういうデザインで仕様を作っていきたいです」というようなことを説明する文章がOpen UIのサイト上にあります。
それ以外にも、たとえばCheckboxというところではさまざまなチェックボックスのUIに対して、どのようなDOM ストラクチャやスロットを作っていけば、共通化して実現できるのかといった話も議論されています。ご興味がありましたらGitHubのissueをご覧ください。
将来いろいろな新しいものがどんどん入ってきそうです。Open UIなどはもうそれこそ次のWebエコシステムのインキュベーションを行うとか、もう一度再開発をするみたいなことを言っていますので、HTML5が出てきた時のように新しい活動がそろそろまた出てきているのかなと思います。そのあたりもぜひチェックしていただければと思います。
ありがとうございました。