◉GEMINI LABEN
●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止、残り6日。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止、残り6日。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…
記事一覧/開発ツール
⟐ 開発ツール/2026-06-13上級

Gemini in Chrome の auto browse に備える — エージェントが操作できるWebアプリの構造設計メモ

Android 版 Chrome に Gemini の auto browse が届く前に、自分のWebアプリをエージェントが確実に操作できる形へ整える設計メモです。操作の的の固定・アクセシビリティツリー・JSON-LD・破壊的操作の保護を実装コードで整理します。

Gemini91Chromeauto browseアクセシビリティ3構造化データ3AIエージェント4

✦ プレミアム記事

先月、個人開発で運用しているアプリ紹介サイトのストア導線を、手元の AI ブラウザエージェントに操作させてみました。「人気の壁紙を価格の安い順に並べて、いちばん上のものをカートに入れて」という、人間なら数秒で終わる指示です。ところがエージェントは並び替えのドロップダウンを開けず、3回に2回はそこで止まってしまいました。原因はモデルの賢さではなく、私自身が作った UI が「クリックの的」を持っていなかったことでした。

I/O 26 で発表された Gemini in Chrome の Android 展開(6月下旬・RAM 4GB 以上・en-US から段階開始)と auto browse は、こうした自動操作が一般ユーザーの手元で当たり前に走る時代の入り口だと感じています。ここでは、自分のWebアプリを「エージェントが確実に操作できる構造」へ寄せるために、私が実際に手を入れた箇所を、改修前後のコードとともに残しておきます。

auto browse は「見た目で操作するUI」でつまずく

auto browse のようなブラウザエージェントは、最終的には人間と同じ画面を見ますが、操作対象を決めるときはまずアクセシビリティツリー(ブラウザが内部で持つ意味づけられた要素の木)を読みます。ここに「これは並び替えのコントロールだ」「これはカートに入れるボタンだ」という情報が無いと、エージェントは座標とテキストだけを頼りに推測することになり、推測が外れると操作が空振りします。

私が止まった並び替えドロップダウンは、見た目だけ整えた div の集合でした。視覚的にはセレクトボックスに見えますが、アクセシビリティツリー上は「意味のない箱」です。人間は見た目で理解できても、エージェントは手がかりを得られません。これが auto browse 時代に最初に直す価値のある場所だと考えています。

操作の的を固定する — アクセシブルネームと安定したフック

まず直したのは、操作対象が「いつでも同じ名前と属性で見つかる」ようにすることです。改修前は装飾優先で、ボタンの実体がアイコンだけ、ラベルはツールチップ頼みでした。

改修前:

<!-- 見た目はカートボタンだが、エージェントから見ると無名のdiv -->
<div class="cart-icon" onclick="addToCart(123)">
  <svg>...</svg>
</div>
 
<!-- 並び替え: ネイティブselectではなく独自実装 -->
<div class="sort-dropdown" data-open="false">
  <span>並び替え</span>
  <ul class="options">
    <li onclick="sortBy('price-asc')">価格が安い順</li>
  </ul>
</div>

改修後は、ネイティブ要素とアクセシブルネーム、そして変わらないフック用属性を与えました。

<!-- role と aria-label で「何のボタンか」を明示。data-action は安定した操作フック -->
<button
  type="button"
  aria-label="この壁紙をカートに追加"
  data-action="add-to-cart"
  data-product-id="123"
  onclick="addToCart(123)">
  <svg aria-hidden="true">...</svg>
  <span class="visually-hidden">カートに追加</span>
</button>
 
<!-- 並び替えはネイティブselectに戻す。ツリー上で自動的にcomboboxとして認識される -->
<label for="sort-order">並び替え</label>
<select id="sort-order" data-action="sort-order" onchange="applySort(this.value)">
  <option value="popular">人気順</option>
  <option value="price-asc">価格が安い順</option>
  <option value="price-desc">価格が高い順</option>
</select>

ポイントは3つあります。第一に、独自実装のドロップダウンよりネイティブの select の方がエージェントには圧倒的に扱いやすいこと。第二に、aria-label で人間向けの見た目とは独立して機能名を与えられること。第三に、data-action のような安定した属性を置くと、クラス名をデザイン都合で変えてもエージェントの手がかりが壊れないことです。私はデザインのリファクタで class を頻繁に変えるので、操作フックは data-action に逃がす運用に統一しました。

✦

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

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦操作の的を data 属性とアクセシブルネームで固定し、エージェントの完走率を5回中2回から5回中5回へ引き上げた改修手順
✦アクセシビリティツリーと JSON-LD でページの意図を機械可読にする実装コード(landmark / Product schema)
✦残高変更・削除など破壊的操作をエージェントに自動実行させないための確認ゲートの設計パターン
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

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

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

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

関連記事

⟐ 開発ツール2026-09-06
アイコンだけのボタンは、翻訳が揃っていても読み上げでは無言になります
翻訳ファイルが揃っていても、読み上げラベルの穴は残ります。iOS と Android からアイコン要素とラベルを集め、機械で決まる不備をローカルで確定させてから Gemini に文言だけを渡す二段構えを、実際の出力とともに書き残します。
⟐ 開発ツール2026-08-21
アシスタント前提の記述が、自分のアプリに何箇所残っているか
9月4日から Android の Google アシスタントが Gemini へ置き換わります。自分のアプリのどこがアシスタント経由で開かれる入口なのかを grep で洗い出し、実機で確かめる発話まで用意する手順をまとめました。
⟐ 開発ツール2026-10-14
クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep して、GEMINI.md には索引だけ置く
アプリのクラッシュ報告を調べるとき、過去の不具合の全文を毎回読ませずに済ませる運用です。ID から 1 行を引く早見表と、GEMINI.md に置く範囲の決め方、そのまま使える grep 関数をまとめました。