Modern Web Guidance 日本語解説

YouTube・ケーススタディ

ケーススタディ:MetaMaskのレビューボット

元の資料:Case Study: MetaMask — How a Modern Web Guidance review bot helps MetaMask ship accessible, modern UI
2026年11月10日(Chrome for Developers ブログ)

このページには実際に動く作例があります。

全プルリクエストをModern Web Guidanceでレビューするボットを、たった3行の指示で運用した事例です。指摘が何を直し、何がノイズだったかまで数字で公開されています。

現場

MetaMaskは、約190か国で1億回超ダウンロードされた自己管理型の金融プラットフォームです。ブラウザ拡張は公開開発で、社内外からプルリクエスト(PR)が絶えず来ます。UXエンジニアのFrancis Nepomucenoが、アクセシビリティのベストプラクティスと現代的なWeb機能の使い方を、PRを出す全員に一貫して届ける方法を探していました。金融を扱うため依存の審査が厳しく、ライブラリよりブラウザ標準の機能のほうが取り入れやすい、という事情も後押ししています。

仕組み:3行の指示

ボットはCursor Automationで動き、設定はこの3行だけです。

- Run /modern-web-guidance for any client-facing changes
- Run /chrome-extensions for any relevant extension changes
- Comment on the PR only when there are issues to address. Keep the comment focused on actionable items

代表例:FAQのアコーディオン

「How it works」ページのFAQが、Reactの状態で中身をDOMから出し入れする普通の作りで出てきました。約5分後、ボットが search-hidden-content ガイドを引いて3点を指摘しました。閉じた答えがDOMから消えるとページ内検索で見つからず、支援技術からも見つけにくいこと。標準の <details>/<summary>(Baseline 2020年〜)なら中身がDOMに残り、意味も正しくなること。排他に開きたい場合は name 属性の共有(Baseline Newly available、2024年〜)で自動で他が閉じること。既存のDisclosure部品を使うなら、答えを hidden="until-found" でDOMに残し、beforematch で状態を同期すること。

13分後、出す側が修正を push しました。部品は標準の <details> になり、閉じた答えもページ内検索に残り、ついでにナビゲーションのボタン2つがリンクになりました。

作例:そのFAQの形

下が実際に動く形です。ブラウザのページ内検索で、閉じた答えの言葉(例:「検索」)を探すと、対応ブラウザでは該当の欄が開きます。

なぜ標準の details がよいのですか

中身がDOMに残るため、ページ内検索で見つかります。開閉の状態管理のJavaScriptも要りません。

name 属性を共有するとどうなりますか

同じ name の details は排他に開きます。1つ開くと他が自動で閉じます。複数開けるFAQにしたい場合は name を付けません。

検索で開くのはどういう仕組みですか

ページ内検索で閉じた中身がヒットすると、ブラウザがその欄を開きます。hidden="until-found" を使った作りでも同じ振る舞いが得られます。

ほかに捕まえたもの

5週間の数字(2026年10月21日まで)

約480件
ボットが回ったPR。コメントしたのは64件(うち機能・修正が57件)
122件
全指摘数。機能・修正のPRでは102件
43件+一部3件
直された指摘(機能・修正のPR)
中央値15.2分
コメントから修正まで。38件の特定できた修正のうち19件が15分以内、26件が1時間以内
テーマ全指摘直された数
アクセシビリティ4712+一部1
HTMLの意味とCSS189+一部2
フォームと入力1510
性能156
ブラウザ機能と互換113
その他163

直らなかったものと、ノイズ

機能・修正のPRの102件のうち、範囲外・設計どおり・実施済みとして見送られたものや誤検出が16件、対応されなかったものが20件、不明が20件でした。傾向として、1つの部品の中で閉じる修正はよく直り、横断的なアクセシビリティの修正は、PRの範囲外だったり、土台の部品がまだなかったりして直りにくい、と分析されています。誤検出は、静的なリンタではなく差分を読むエージェントであることから来ていて、周囲の読み違いと、ガイドより厳しく規則を当てることが原因でした。次の調整は、リリースや同期のブランチを対象から外すことと、プロンプトを締めてガイドに明記された規則だけに絞ることです。

「レビューは本当に役に立っています。Interest invokersやPopover APIのような現代的なAPIに、エンジニアが触れて慣れるきっかけにもなりました。PRのレビュー時間が増えた様子はなく、むしろ減ったように思います。」— Francis Nepomuceno(UX Engineer, MetaMask)※発言の要旨

原文を読む:Case Study: MetaMask — How a Modern Web Guidance review bot helps MetaMask ship accessible, modern UI

短縮URL(投稿の記載):https://goo.gle/4iRPsQW / 解決先:https://developer.chrome.com/blog/metamask-modern-web-guidance

← ケーススタディ:PolicybazaarとPensionbazaarケーススタディ:WeTVの性能デバッグ自動化 →