ChromeOS のキオスクモードでは、アプリケーションが実行され、全画面表示でロックされます。ユーザーがログインする必要はありません。キオスクモードは、ユーザーが制御された集中した方法で情報やサービスにアクセスするための便利で効率的な方法です。キオスクモードの操作は厳しく制限されているため、キオスクアプリがすべてのユーザーにとって使いやすいものになっていることを確認することが重要です。キオスクのアクセシビリティを改善すると、情報へのアクセスを妨げる障壁が減り、インクルージョンが促進されるため、リーチを拡大し、顧客満足度を高めることができます。
キオスクモードで実行されるアプリはウェブアプリであるため、ウェブ アクセシビリティのベスト プラクティスが適用されます。
- Web Content Accessibility Guidelines(WCAG 2)に準拠する。キオスクアプリを社内でデプロイする場合でも、スクリーン リーダーの使いやすさなどのアクセシビリティを確保する最善の方法は、WCAG 2 に準拠することです。ユーザー補助に取り組んでいる人たちが提供している優れた設計および開発リソースを活用して、キオスクアプリを改善することもできます。
- 英国政府は、ロービジョンや難聴のユーザーなど、ユーザー補助を必要とするユーザー向けのデザインに関する一般的な推奨事項と禁止事項を公開しています。
- Web.dev では、ウェブ開発におけるユーザー補助の重要性について説明しています。
- マテリアル デザインでは、デザインにおけるユーザー補助機能に関する推奨事項が共有されています。
- 複数の入力方法を提供します。ジェスチャー ベースのナビゲーションに依存しないでください。アプリを操作するために、キーボード、マウス、スイッチが必要になることがあります。
- 複数の形式の出力を提供します。音声など、単一のタイプの出力に依存しないでください。ユーザーは、音声なしまたは視覚的な合図なしでアプリを操作する必要がある場合があります。
- さまざまなユーザーでアプリとハードウェアをテストします。ベスト プラクティスに準拠するだけでなく、テストも実施します。ユーザーは、キオスクアプリを物理的にもデジタル的にも操作する必要があります。エクスペリエンス テストでは、改善すべき領域を特定します。
- さまざまなテストユーザーを含めて、ユーザー補助機能に関する潜在的な問題を明らかにします。
- キオスクアプリを、実際に使用する環境とハードウェアでテストします。
キオスクアプリは管理された環境で実行されるため、ユーザーが通常使用する ChromeOS のユーザー補助機能やハードウェア オプションにアクセスできない場合があります。ChromeOS キオスクのアクセシビリティについては、次の 3 つの制御レベルを考慮する必要があります。
- ポリシー: 管理者は、管理対象デバイスのポリシーを制御できます。これには、重要なキオスクのユーザー補助設定へのアクセスも含まれます。
- API: デベロッパーは、chrome.accessibilityFeatures API を呼び出すコンパニオン拡張機能を使用して、ユーザーがキオスクアプリを操作する方法を制御できます。
- ハードウェア デバイス: デバイスの種類と接続された周辺機器によって、入力デバイス、画面サイズ、プラットフォームなど、ユーザーがキオスクを物理的に操作する方法が制御されます。
これらのレベルは相互に依存しているため、真にアクセシビリティの高いキオスクアプリ エクスペリエンスを提供するには、連携して動作する必要があります。管理者はキオスクアプリをデプロイする際にユーザー補助機能を考慮する必要があり、デベロッパーはデプロイ後に管理設定がアプリに与える影響を把握しておく必要があります。
キオスク管理者のポリシー管理
通常のユーザー セッションの ChromeOS デバイスでは、ユーザーは [設定] アプリの [ユーザー補助機能] セクションに移動して、ユーザー補助機能の設定を管理できます。キオスクモードでは、ユーザーはデフォルトで [設定] アプリにアクセスできません。代わりに、管理者はユーザーがキオスクモードでアクセスできるように、ユーザー補助設定を有効にする必要があります。
管理者は、Google 管理コンソールで [デバイス] > [Chrome] > [設定] > [デバイスの設定] タブに移動して、キオスクのユーザー補助機能の設定を確認できます。
注意すべき主な設定は次の 2 つです。
- キオスクのユーザー補助のフローティング メニュー: キオスクモードでは設定アプリをすぐに利用できないため、この設定を有効にすると、ユーザーはユーザー補助のフローティング メニューからユーザー補助設定を切り替えることができます。この設定が構成されていない場合のデフォルトの動作は、フローティング ユーザー補助機能メニューが表示されないことです。
- キオスクのユーザー補助機能のショートカット: これを有効にすると、ユーザーはキーボード ショートカットを使用してユーザー補助機能をオンにできます。ただし、すべての機能にショートカットが用意されているわけではありません。この設定が構成されていない場合のデフォルトの動作は、ショートカットが有効になっていることです。
ユーザー補助機能を個別に設定することもできます。デフォルトでは、[ユーザーによる決定を許可] に設定されており、ユーザー補助機能を有効にするか無効にするかはユーザーの判断に委ねられています。
注: 各設定の動作について詳しくは、ChromeOS のユーザー補助機能の完全なリストをご覧ください。
Chrome 拡張機能の chrome.accessibilityFeatures API
キオスクモードでは、キオスクのユーザー補助のフローティング メニューまたは対応するキーボード ショートカットを使用して、ユーザー補助機能を切り替えることができます。ただし、この方法は管理者がメニューを有効にしていることが前提であり、すべての機能にショートカットがあるわけではありません。そのため、デベロッパーは、必要に応じてユーザー補助設定をキオスクアプリに直接統合する必要があります。たとえば、テキスト入力が表示されたときに音声入力を使用するオプションをユーザーに提供します。
ChromeOS のユーザー補助機能の状態には、chrome.accessibilityFeatures API を通じてアクセスできます。管理コンソールで [ユーザーによる決定を許可] に設定されている場合、この API を介してユーザー補助機能を制御することもできます。これは Chrome 拡張機能 API であるため、キオスクアプリとともに実行されるコンパニオン拡張機能から呼び出す必要があります。デベロッパーはこの API を使用して、各設定が制御可能かどうかを確認し、それぞれの組み込み ChromeOS ユーザー補助機能とやり取りできます。
chrome.accessibilityFeatures API には、ユーザー補助機能ごとに対応するプロパティがあります。各プロパティは type.ChromeSetting プロトタイプであり、次のメソッドがあります。
get(): 設定の値を取得します。set(): 設定の値を設定します。onChange(): 設定が変更されたときにリスナーを追加します。clear(): 設定をクリアしてデフォルト値を復元します。
プロパティのステータスを取得するには、onChange() または get() を呼び出します。これにより、次の関連フィールドを含む詳細オブジェクトがコールバック経由で返されます。
levelOfControl: 設定の制御レベル。set()を呼び出して設定の値を変更する前に、その設定が拡張機能で制御できるかどうかを確認します。管理者が設定を無効または有効にする明示的なポリシーを設定している場合、levelOfControlはnot_controllableになり、API で設定することはできません。value: 設定の値。すべてのユーザー補助機能プロパティはブール値型ですが、animationPolicyはallowed、once、noneで構成される列挙型です。
たとえば、まずこの拡張機能でプロパティを構成できるかどうかを確認してから、仮想キーボード機能を切り替えます。
const virtualKeyboard = chrome.accessibilityFeatures.virtualKeyboard; virtualKeyboard.get({}, (details) => { // check the level of control for virtual keyboard if (details.levelOfControl == 'controllable_by_this_extension' || details.levelOfControl == 'controlled_by_this_extension') { // disable if virtualKeyboard is currently on if (details.value) { virtualKeyboard.set({value: false}, () => console.log('Virtual keyboard has been disabled'); } else { // enable if virtualKeyboard is currently off virtualKeyboard.set({value: true}, () => console.log('Virtual keyboard has been enabled'); } } else { // the setting is not controllable by this extension because it cannot be controlled by any extension or it's being controlled by an extension with higher precedence console.log('Virtual keyboard setting cannot be changed.'); }
まず、virtualKeyboard プロパティで get() を呼び出して、利用可能な制御レベルとプロパティの現在の値を読み取ります。この拡張機能で制御できる場合、またはこの拡張機能ですでに制御されている場合は、set() を呼び出して virtualKeyboard プロパティの値を切り替えても安全です。プロパティを制御できない場合は、この設定を切り替えることができないことをユーザーに伝え、必要に応じてシステム管理者に問い合わせるようユーザーにすすめます。
chrome.accessibilityFeatures API で構成できるプロパティは、テキスト読み上げ、表示と拡大、キーボードとテキスト入力、カーソルとタッチパッドのカテゴリに分類されます。
テキスト読み上げ
テキスト読み上げ機能を使用すると、ChromeOS の組み込みスクリーン リーダーで画面上のテキストを読み上げることができます。視覚障がいのあるユーザー、文字を読めないユーザー、テキストを読むよりも聞くことを好むユーザーなど、これらの機能を使用することで、デバイスを操作できるようになります。
selectToSpeak: 画面上のテキストを選択して読み上げることができる選択して読み上げ機能を制御します。spokenFeedback: 画面上のテキストや、ボタン、リンクなどの要素の名前を読み上げるスクリーン リーダーである ChromeVox 機能を制御します。
ディスプレイと拡大
表示と拡大機能では、表示色を変更したり、拡大オプションを利用したりすることで、画面を読みやすくしたり、被写体を見つけやすくしたりできます。
highContrast: 色反転機能を制御します。この機能は、コントラストを高めたカラースキームに変更します。screenMagnifier: 画面上の項目を拡大する全画面拡大鏡機能を制御します。dockedMagnifier: 分割画面ビューで画面のフォーカスされた領域を拡大するドッキング拡大鏡機能を制御します。
キーボードとテキスト入力
キーボードとテキスト入力機能により、画面上のコンテンツや入力項目を操作するためのさまざまなオプションが提供されます。
virtualKeyboard: このプロパティは、ユーザーが物理キーボードを使用せずに文字を入力できる画面キーボード機能を制御します。dictation: このプロパティは、ユーザーがマイクに話しかけてテキストを入力し、音声で入力を制御できる音声入力機能を制御します。switchAccess: このプロパティは、ユーザーがスイッチ(キーボードのキー、ゲームパッドのボタン、その他の専用スイッチ デバイス)でデバイスを操作できるスイッチ アクセス機能を制御します。stickyKeys: このプロパティは、固定キー機能を制御します。固定キー機能を使用すると、複数のキーを同時に押すのではなく、キーボード ショートカットで一度に 1 つのキーを押すことができます。focusHighlight: このプロパティは、キーボード フォーカスのある項目をハイライト表示するキーボード フォーカス ハイライト表示機能を制御します。ユーザーは Tab キーを使用するか、マウスカーソルで選択してオブジェクト間を移動します。caretHighlight: このプロパティは、テキスト カーソル(キャレット)のハイライト表示機能を制御します。この機能は、テキスト カーソルが表示または移動したときに、その周囲にフォーカス リングを表示します。
Cursor
カーソル機能では、カーソルをカスタマイズして、画面上で見つけやすく、使いやすくします。
autoclick: このプロパティは、マウスカーソルが停止した位置で自動的にクリックされる自動クリック機能を制御します。largeCursor: このプロパティは、マウスカーソルのサイズを大きくして見やすくする大きなカーソル機能を制御します。cursorColor: このプロパティは、カーソルの色の機能を制御します。cursorColorプロパティの値は、機能が有効かどうかを示すだけです。カーソルの色は示されていません。cursorHighlight: このプロパティは、マウスカーソルの移動時にその周辺にフォーカス リングを表示するカーソル ハイライト機能を制御します。
ハードウェア レベルのキオスクのユーザー補助
他のアプリと同様に、キオスクアプリのアクセシビリティも、デプロイ先のデバイスの影響を受けます。デベロッパーは、ハードウェア チームと連携して、キオスクアプリがハードウェア レベルでアクセス可能であることを確認する必要があります。
キオスクアプリは、インタラクティブでないディスプレイからインタラクティブ プラットフォームまで、あらゆる ChromeOS システムにインストールできます。ユーザーがキオスクアプリを操作することが想定される場合は、特定のハードウェア レベルのユーザー補助機能の基準を満たすことが推奨されます。
- キオスクアプリは、車椅子などの移動補助具を使用しているユーザーが利用できるように、アクセス可能でなければなりません。
- キオスク ハードウェアには、物理キーボードとマウスのオプションを含める必要があります。
- キオスクアプリは、ヘッドフォン ジャックとマイクのサポートを備えている必要があります。
- キオスク ハードウェアには、テキストや画像が鮮明に表示される十分なサイズと解像度の画面が必要です。
キオスクのユーザー補助は、ポリシー制御、API、ハードウェアなど、多くの要素に依存しています。しかし、キオスクのアクセシビリティは、本質的にはウェブ アクセシビリティです。キオスクアプリのユーザー補助機能を向上させるには、上記の推奨事項とベスト プラクティスに従い、徹底的なユーザー テストを実施し、WCAG 2 ガイドラインを確認してください。