ANTIGRAVITY LABEN
記事一覧/アプリ開発
アプリ開発/2026-06-13中級

Browser Subagent に自サイトを操作させて気づいた、エージェントに優しいフロントエンドの条件

Antigravity の Browser Subagent に自分のサイトを操作させると、人間には簡単な操作で次々と詰まりました。I/O 26 の agentic web 対応を踏まえ、エージェントが操作できる Web の実践チェックリストを整理します。

agentic-webbrowser-subagentアクセシビリティ2フロントエンド3Chrome

個人開発で運営しているサイトの動作確認を Antigravity の Browser Subagent に任せてみたところ、人間なら迷わない操作で立て続けに詰まりました。テーマ切替ボタンを見つけられない。決済後のトースト通知を読み取れずに「結果が確認できません」と報告してくる。無限スクロールの一覧では、存在するはずの記事を「見つからない」と結論づけてしまう。私自身が書いたフロントエンドなのに、エージェントから見ると思った以上に「読めない」画面だったわけです。

I/O 26 で Chrome は agentic web 対応として15項目の更新を発表し、エージェントがブラウザを操作する前提の Web 設計が現実の話になってきました(Chrome for Developers で順次公開されています)。今回は、自サイトをエージェントに操作させて見つかった具体的な失敗と、その修正から整理した実践チェックを共有します。

エージェントは「見た目」ではなく「構造」を読んでいる

Browser Subagent の挙動を観察して最初に腑に落ちたのは、エージェントが頼りにしているのはピクセルの見た目以上に、アクセシビリティツリーと DOM 構造だということです。スクリーンショットも併用しますが、操作対象の特定は「ロールと名前を持つ要素」が基本になります。

つまり、スクリーンリーダーにとって使いにくいサイトは、ほぼそのままエージェントにとっても使いにくいサイトです。逆に言えば、アクセシビリティ対応として知られてきた施策の多くが、そのまま agentic web 対応になります。人間用の UX とエージェント用の UX は9割まで同じで、残り1割が「状態の機械可読化」だ、というのが私の現時点での整理です。

挙動の観察方法は Antigravity の Browser Sub-Agent が SPA を空ページと誤認する原因と待機戦略 でも書いた手順と同じで、エージェントの操作ログと自分の目視を突き合わせていきます。

実際に詰まった3つのポイントと直し方

アイコンだけのボタンは死角になる

最も多かった失敗が、アイコンのみのボタンです。月のアイコンだけのテーマ切替ボタンは、エージェントから見ると「名前のない button 要素」でしかありません。

// Before: エージェントには「無名のボタン」にしか見えない
<button onClick={toggleTheme}>
  <MoonIcon />
</button>
 
// After: 名前と状態を持たせる
<button
  onClick={toggleTheme}
  aria-label="ダークモードに切り替え"
  aria-pressed={isDark}
>
  <MoonIcon aria-hidden="true" />
</button>

aria-label で「何をするボタンか」、aria-pressed で「今どちらの状態か」を載せるだけで、エージェントは確実にこのボタンを発見し、押した結果まで検証できるようになりました。修正後は同じタスクの成功率が体感で別物になっています。

消えるトーストは「読まれる前に消える」

決済完了やコピー完了を3秒で消えるトーストだけで伝えていたのも、エージェントには厳しい設計でした。エージェントの観察サイクルは人間の視線より遅いことがあり、読み取る前に DOM から消えます。

私は「一時的な通知+永続的な状態表示」の二段構えに直しました。トーストは残しつつ、処理結果をページ内の role="status" を持つ要素にも反映させます。

// 結果はトーストだけでなく、残る場所にも書く
<p role="status" data-state={purchaseState}>
  {purchaseState === "completed" ? "購入が完了しました" : ""}
</p>

role="status" はスクリーンリーダー向けのライブリージョンですが、エージェントにとっても「処理結果を確認しに行く場所」として機能します。

無限スクロールには「全件への別経路」を用意する

無限スクロールの一覧でエージェントが記事を見つけられなかった問題は、スクロールを繰り返させるのではなく、ページネーション付きの一覧や検索ページという「別経路」を案内する方が確実でした。私のサイトでは全記事一覧とカテゴリページがすでにあったので、フッターからの導線を明示しただけで解決しています。クロール効率の観点でも、この構造は元々 SEO の定石と一致します。

チェックリスト — 自サイトをエージェント対応にする最小セット

修正を終えて整理した、私が新しい画面を作るときに確認している項目です。

  • 操作可能な要素はすべて「ロール+アクセシブルネーム」を持つ(buttonaria-label、リンクテキストは「こちら」禁止)
  • 状態は属性で公開する(aria-pressed / aria-expanded / aria-checked、独自状態は data-state
  • フォームの input には namelabel を必ず対応づける
  • 処理結果はトーストだけでなく role="status" の永続表示にも書く
  • 無限スクロールだけに依存せず、ページネーションか検索の別経路を持つ
  • JS 描画完了前の「空の main」を返さない(ローディング中であることを示す要素を置く)

最後の項目は SPA 全般の落とし穴で、E2E テストの安定化とも同根です。Antigravity Browser Sub-Agent による E2E テスト自動化 で扱ったセレクタ設計(data-testid の付与)も、そのままエージェント対応として効きます。

ボットを全部歓迎する話ではない

エージェント対応を進めると「スクレイパーにも優しくなってしまうのでは」という不安が出ます。私はここを「操作のしやすさ」と「アクセス制御」は別レイヤーの問題として切り分けています。レート制限・認証・robots.txt の方針はこれまで通り維持した上で、正当にたどり着いたユーザー(人間でもエージェントでも)には構造の読める画面を返す、という整理です。検証には Chrome DevTools のエージェント向け機能も使えます。詳しくは Chrome DevTools for agents 1.0 が安定版に — Antigravity 2.0 同梱で何が変わったか にまとめています。

エージェント経由の訪問はまだ少数ですが、I/O 26 の方向性を見る限り、この比率は片道で増えていくはずです。まずは自分のサイトの最重要動線(購読・購入・問い合わせ)を Browser Subagent に一度操作させて、どこで詰まるかを観察するところから始めてみてください。想像より早く、直すべき場所のリストが手に入ります。

シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥2,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

アプリ開発2026-09-19
見積書 PDF の自動化を一度にまとめて頼み、4 つに割り直すまで
受託の見積書を毎回コピーして作っていた手作業を、Antigravity に頼んで小さな PDF 出力ツールへ移した記録です。最初に全部をまとめて頼んで作り直すことになった理由と、データ・計算・見た目・保存の 4 つに割って渡し直した順番を、動くコードと一緒に書き残します。
アプリ開発2026-09-10
iOS 27 の配信日が決まってから、私が最初に grep したのは AGENTS.md でした
iOS 27 と iPadOS 27 の配信は9月14日です。版数の文字列はソースだけでなく、エージェントが読む設定ファイルにも残ります。両方を数えるスクリプトと、keyword 検索では拾えない一行の話を書き残します。
アプリ開発2026-09-08
年齢レーティングの質問票に、記憶ではなくリポジトリの宣言で答える
2026年9月から必須になった App Store の年齢レーティング質問票を、リポジトリ側の宣言ファイルと標準ライブラリだけの照合スクリプトで毎回同じ答えにする手順を、実際の出力とともにお伝えします。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます