Chrome 116 で段階的に展開され、権限メッセージに [今回は許可] オプションが追加されます。Google の目標は、パワフルなウェブ機能を自分に合った方法で簡単に使用できるようにすることです。[今回は許可] は、位置情報、カメラ、マイクといった一般的な権限の一部について、最初はパソコンで利用できます。その他の機能やモバイルウェブでの権限プロンプトは今のところ変更はありませんが、今後変更される可能性があります。
サイト所有者の方は、影響と推奨事項をご確認のうえ、デモをお試しください。
権限の新しい UX
Chrome 116 より前の権限の UX
ユーザーには次の 3 つのオプションが表示されます。
- 許可: 永続的な許可。
- ブロック: 永続的なブロック。
- [x] ボタンのクリック: 一時ブロック。それ以降、最大 3 回までユーザーにメッセージを表示できます。
権限は、アドレスバーの [サイト管理] または [サイトの設定] で管理できます。
Chrome 116 で導入された新しい権限の UX
ユーザーには次の 4 つのオプションが表示されます。
- 今回は許可: 一時的な許可。
- すべてのアクセスで許可: 永続的な許可。
- 許可しない: 永続的なブロック。
- [x] ボタンのクリック: 一時ブロック。
ユーザーが [今回は許可] を選択した場合、付与される権限は一時的なものであり、1 回限りの権限とも呼ばれます。その期間は、ウェブ アプリケーションと現在進行中のインタラクションに限定されます。
「今回は許可」のユーザーにとってのメリットと UX デザイン
[今回は許可] では、ユーザーは次のことができます。
- 管理性の向上。Chrome のユーザー調査によると、ユーザーは多くの場合、ウェブサイトのアクセス許可について永続的な決定を下す準備ができていないため、権限を付与すると価値が得られるかどうかを評価しようとします。1 回限りの許可オプションを提供することで、このようなニーズに対応し、アクセスを許可する際のリスクを低減できます。
- 明瞭さが向上。[今回は許可] と [すべてのアクセスで許可] を明示的に指定すると、一方のオプションが一時的なもので、もう一方は永続的であることが明確になります。
他のブラウザでの 1 回だけのアクセス許可
ウェブの場合、Safari や Firefox など多くのブラウザで 1 回だけのアクセス許可がサポートされています。お使いのデバイスでの動作を確認するには、https://permission.site/one-time をお試しください。位置情報、カメラ、マイクの権限は特定の動作をする可能性があるため、必ず試してみてください。
次に例を示します。
- パソコンの Safari 16 では、位置情報はデフォルトで 1 回限り有効です(次のナビゲーションまで)。ユーザーは、チェックボックスを使用してアクセス権を 24 時間保持することを選択できます。
- デスクトップ版 Firefox 115 では、位置情報、カメラ、マイクの権限はデフォルトで 1 回だけです。ユーザーはチェックボックスを使用して永続アクセスを有効にできます。
効果と推奨事項
1 回だけのアクセス許可の影響:
- 1 回限りの権限を導入しても、ユーザーが以前に永続的に付与した権限には影響しません。
- ユーザーが権限プロンプトで決定を行うと、アクセスしている間、権限の状態は「許可」または「拒否」になります。この点に関しては、1 回だけのアクセス許可で違いはありません。
- ただし、ユーザーが [今回は許可] を選択すると、次回アクセスする際に権限に関するメッセージが再度表示されます。
1 回だけのアクセス許可に対応するため、サイト所有者は次のことを行うことをおすすめします。
- 権限に関するベスト プラクティスに沿って実装していることを確認してください。ベスト プラクティスを確認する。
- 1 回だけのアクセス許可の有効期限について理解する。詳しくは、1 回だけのアクセス許可の有効期限をご覧ください。
- 1 回だけのアクセス許可に対する Permissions API の動作と、有効期限を確認する方法について理解します。詳しくは、Permissions API をご覧ください。
ベスト プラクティス
一時的に許可すると、ユーザーが機能を試す権限を付与する可能性は高くなりますが、永続的なアクセス権を付与する可能性も低くなります。そのため、ベスト プラクティスに従うことがいっそう重要になっています。
- 権限をリクエストする前に、必要なコンテキストを提供してください。機能を使用するメリットをユーザーに説明する。
- 適切かつ予想されるタイミングで権限をリクエストする。理想的には、ユーザーが特定の機能を自分のペースで利用する意思を表明してもらうことが理想的です。
- ユーザーが 1 回限りのオプションと永続オプションのどちらを選択しても、ユーザーの訪問中は同じエクスペリエンスを提供します。
詳しくは、権限の UX をご覧ください。
1 回だけのアクセス許可の有効期限
デフォルトでは、すべてのウェブ権限はオリジンにバインドされています。オリジンは独自のアプリと考えることができます。[今回は許可] を使用すると、ユーザーはオリジンに 1 回だけのアクセス許可を付与します。基本的に、1 回だけのアクセス許可は、ユーザーがしばらくの間そのオリジンとのやり取りを停止すると期限切れになります。つまり、ユーザーが別のタブで別のウェブページに短時間切り替えた後に戻ってきても、サイトで機能を引き続き使用できます。
具体的には、1 回だけのアクセス許可は、次のいずれかの条件が満たされるとすぐに期限切れになります。
- ページが閉じられたか、ページから移動されたか、破棄されました。これには Chrome を閉じることも含まれます。
- 権限を付与してから 16 時間経過している。
- ユーザーが(サイト管理などで)権限を手動で取り消したか、エンタープライズ ポリシーによって権限がオーバーライドされた。
- ページが 5 分以上バックグラウンドの状態になっている(カメラやマイクなどのバックグラウンドでの実行が許可されている場合を除く)。この場合、サイトでこの機能が使用されている限り、Chrome ではタブバー インジケーターが表示され、ページで機能の使用が停止するまで 5 分間タイマーは開始されません。16 時間のタイマーはまだ動作中です。
バックグラウンド タブ
ブラウザタブがフォアグラウンドではない場合は、バックグラウンドになっています。ブラウザ ウィンドウに最小化されていないタブは前面に表示されます。
Chrome の一部の機能(位置情報など)は [フォアグラウンド] タブでしか実行できません。バックグラウンドのタブでは実行できません。カメラやマイクなどの他のアプリは、バックグラウンド タブで実行できます。
タブバーのインジケーター
タブがバックグラウンドで動作しているときも実行を継続する機能には、タブバー インジケーターがあります。たとえば、カメラにはタブバー インジケーターがあります。
ページがバックグラウンドになるとすぐに位置情報へのアクセスが一時停止するため、位置情報にタブバー インジケーターは必要ありません。
例
- 位置情報:
example.com
にいるユーザーは、1 回限りの位置情報へのアクセスを許可します。ユーザーが別のタブに切り替えた。これにより、example.com
がバックグラウンド タブになります。Chrome ではバックグラウンドでの位置情報へのアクセスを許可していないため、位置情報へのアクセスは直ちに一時停止されますが、1 回だけのアクセス許可は引き続き有効です。ユーザーが 5 分以内にexample.com
に戻った場合、ページで位置情報へのアクセスを再開できます(5 分間の有効期限タイマーがリセットされます)。そうしないと、1 回だけのアクセス許可は期限切れになります。 - カメラ/マイク:
example.com
で、1 回限りのカメラへのアクセスを許可します。ユーザーが別のタブに切り替えた。これにより、example.com
がバックグラウンド タブになります。Chrome ではカメラへのアクセスをバックグラウンドで継続できるため、カメラへのアクセスは続行できます。Chrome では、ユーザーに情報を伝えるためにカメラのタブバー インジケーターが使用されている限り、常に表示されます。ある時点で、サイトでカメラへのアクセス停止が行われることがあります。停止されると、5 分間の有効期限タイマーがスタートします。カメラにアクセスできない状態が 5 分間続くと、1 回だけのアクセス許可は期限切れになります。
Permissions API
API 権限のステータスを確認するには、Permissions API を使用します。
- ユーザーが [今回は許可] を選択すると、Permission API のステータスは
granted
に設定されます。つまり、期限切れでない 1 回だけのアクセス許可と永続的な権限は区別がつかず、同じステータス(granted
)になります。 - 1 回だけのアクセス許可が期限切れになると、ステータスは
prompt
に戻ります。 - 1 回だけのアクセス許可の有効期限を監視するには、
PermissionStatus.onchange
イベント ハンドラを登録します。
デモ
- パソコンで Chrome 116 以降を開きます。
chrome://flags/#one-time-permission
を開き、[有効にする] を選択します。Chrome を再起動します。この手順により、Chrome ブラウザに 1 回だけのアクセス許可がまだロールアウトされていない場合は強制的に有効になります。- https://permission.site/one-time を開きます。
- [位置情報] ボタンをクリックします。
- 新しい 1 回だけのアクセス許可プロンプトを確認します。
- [今回は許可] を選択します。
- [サイト管理] を開きます。1 回だけのアクセス許可を管理できることを確認します。
- https://permission.site/one-time のタブを閉じます。そのオリジンで他のタブが開いていないことを確認します。
- 新しいタブで https://permission.site/one-time を開きます。
- [サイト管理] を開きます。[サイトの設定] に移動します。
- 位置情報権限が初期状態 [確認(デフォルト)] に戻ったことを確認します。
結論とフィードバック
1 回だけのアクセス許可により、ユーザーにより多くの選択肢を提供できます。Chrome の新しい権限 UI は、ブラウザとプラットフォーム間でより一貫性のある権限のユーザー エクスペリエンスを実現します。
1 回だけのアクセス許可で問題が発生した場合は、権限プロンプトに関する新しい crbug の問題を提出してください。
謝辞
この記事をレビューしてくれた Rachel Andrew、Serena Chen、Balazs Engedy、Marian Harbach、Florian Jacky、Thomas Steiner に感謝します。