Popover API · invoker · Safari · Chromium · リモート Mac · 2026

2026 リモート Mac フロント公開検収:
Popover API と invoker の Safari/Chromium 差異対照表と段階的強化三歩

2026.04.17 フロント/UI 約 8 分

想定読者:Popoverpopovertarget を載せるフロント。トップレイヤーとフォーカスは表と三歩で固定します。関連:デプロイ後 SafariImport MapsSW 検収

01 Popover/invoker の能力検出

1) Chromium で閉じが通っても Safari はフォーカスや Tab 順がずれることがあります。

2) popovertarget 等で分岐が増え、静的検査を抜けると本番のみで落ちます。

3) 全面 polyfill はバンドル増と二重挙動の元になり、境界を README に書かないとロールバックが遅れます。

検出は 'showPopover' in HTMLElement.prototypepopover、ボタンは popovertarget の有無をテンプレで確認し、対象外はチケットに明記します。

02 Safari と Chromium の差異表

差は トップレイヤーフォーカスinvoker と位置に出やすいです。

観点 Safari/WebKit Chromium
トップレイヤー/::backdrop 影や合成の細部が異なることがあります。スクショ比較。 DevTools でレイヤーが追いやすい。
フォーカス・閉じる VoiceOver 併用で Tab/Esc の差が出やすい。 差は小さいこともあるが手順固定で比較。
invoker 対応版を固定し、無ければ click フォールバックを票に。 静的検査で属性欠落を防ぐ。
Anchor 位置計算の差が出やすい。同じ幅で両系譜。 同様。リモート Mac で実寸合わせ。

可引用: Esc・外側クリック・フォーカス復帰を同一リスト化し、Private も回す。

03 段階的強化の手順と polyfill 戦略の境界

三歩チェックリスト:

  1. 基線: details 等で API 無しでも閉じられる導線を残す。
  2. Popover パス: 表どおりに操作を固定し、デプロイ後検証と同ラベルでステージングを開く。
  3. 境界: polyfill は入口の show/hide のみに限定し、失敗時は基線へ。README に書く。

公開前五手: 機能検出で分岐/非対応は showPopover 等を明示呼び出し/Playwright webkitchromiumリモート Mac で実機と冷温キャッシュ(モジュール検収と同様)/SW は SW 検収票で BUILD_ID 突合。

可引用: polyfill は KB 増二重イベントを計測し、閾値超なら全面適用を却下。

04 FAQ

invoker が無い場合は popover を使わない方がよいですか

検出で分岐し、無ければ明示ハンドラで同じ UI を出します。

Chromium のみ先行リリースしてよいですか

基線が必須です。チケットに WebKit 向け導線と実機パスを残します。

全面 polyfill は推奨されますか

入口のみか基線降格が安全。A11y は手順で担保します。

リモート Mac · Popover 実機サインオフ

Safari と Chromium を並べた検収なら Apple Silicon リモート Mac が最短です

実機 Safari で Esc・外側クリックを確認。ログイン不要料金ヘルプ購入/レンタルトップブログ一覧

Popover 検収用リモート Mac を見る