Modern Web Guidance 日本語解説

YouTube・ケーススタディ

ケーススタディ:日本のnoteの導入評価

元の資料:Case Study: note inc. — How note inc. boosted modern web guideline adherence from 61% to 94% using Modern Web Guidance
2026年11月10日(Chrome for Developers ブログ)

月間9,000万人超が使う日本のnoteが、自社のデザインシステムとModern Web Guidanceの役割分担を、180回の比較評価で決めた事例です。

現場と問い

noteはNext.jsとReactで作られ、自社のReact部品ライブラリ note-ui が、ダイアログ、ツールチップ、アコーディオン、フォーム欄など、ブランドとアクセシビリティの土台を担っています。問いは2つでした。Modern Web Guidanceが一番効くのはどこか。そして、自社の部品ライブラリとどう役割を分けるかです。

評価の組み立て

結果

エージェントガイドなし置いてあるだけ明示的に指示伸び
エージェントA(主力モデル)60.8%76.5%(+15.7pt)94.0%+33.2pt
エージェントB(第2のモデル)75.8%86.2%(+10.3pt)90.0%+14.2pt
機能ガイドなしガイドあり
スクロールで縮むヘッダーメインスレッドで動くJavaScriptのスクロールリスナー宣言的なCSSのスクロール連動アニメーション。リスナーのコードはゼロ
ツールチップ座標計算を自前で持つ作りPopover API。バンドルの追加なし
検索できるFAQアコーディオンReactの状態管理。中身がページ内検索にヒットしない<details name="faq">。検索でブラウザが自動で開く
LCPの主役画像fetchpriority="high" と遅延読み込みの矛盾する組み合わせ優先付けだけを正しく付け、導入後の431件のPRで採用が28%増
登録フォーム自動入力の属性がなく、エラーの読み上げもない標準の入力とARIAの読み上げ。自動入力の採用は69%増

決めたこと:AGENTS.mdの優先順位

明示的に「Webのガイドに従え」とだけ指示すると、エージェントはnote-uiの部品がある場面でも標準のHTML要素を選んでしまいました。そこで、全か無かではなく、リポジトリの指示ファイルに優先順位を書く形にしました。要旨は次の3段です。

  1. note-uiを優先する。既にある部品(ダイアログ、トースト、ボタン、フォーム欄、ポップオーバー等)はそれを使い、既存の流儀に従う。ガイドが勧めるからといって標準の <dialog> や素の <input> に置き換えない。
  2. note-uiが届かない所でModern Web Guidanceを使う。スクロール連動の効果はCSSのスクロール連動アニメーション、排他や検索可能な開閉は <details name> と hidden="until-found"、Core Web Vitalsは fetchpriority と content-visibility、フォームの属性は部品のprops経由で渡す。
  3. ぶつかる場合は既存部品を優先し、ガイドは部品の範囲で当てる。フォームのエラー表示は部品の仕組み(validationState/errorMessage、または aria-describedby を付けたHelpText)を使い、自前の警告要素は作らない。

教訓

「私たちの使命は『だれもが創作をはじめ、続けられるようにする』ことです。その土台は、すべての作り手と読み手にとって速く、アクセシブルでなければなりません。AIのコーディングエージェントが書くコードが増える中で、Modern Web Guidanceは、古いJavaScriptの書き方ではなく、現代的で標準に基づく解法のほうへエージェントを向けてくれます。」— 板橋岳彦(VP of Technology, note inc.)※発言の要旨

原文を読む:Case Study: note inc. — How note inc. boosted modern web guideline adherence from 61% to 94% using Modern Web Guidance

短縮URL(投稿の記載):https://goo.gle/4zgLIys / 解決先:https://developer.chrome.com/blog/mwg-with-internal-component

← ケーススタディ:WeTVの性能デバッグ自動化GitHubリポジトリと、入れ方の一覧 →