ChromeOS 対応 - キーボード仕様 v1.0

バージョン: 1.0.1
最終更新日: 2024-02-01

凡例

商品動詞 開発アクション
「必須」 必須のプロダクト要件
「すべきである」 推奨事項(省略可)
「MAY」 あると良い

概要

この仕様ドキュメントでは、ChromeOS 互換キーボードが満たす基準について説明します。

この仕様は、デバイスのメインシャーシの一部ではない外部キーボードを対象としています。キーボードは、ワイヤレスまたは有線で ChromeOS デバイスに接続できます。

キーボードはアクセサリとして別売りの場合もあれば、ChromeOS デバイスにバンドルされている場合もあります。

用語集

  • 特殊キー: Tab、Enter、Backspace、Space、英数、かな、かな<=>英数、Fn、PageUp、PageDown、Home、End、Delete、Esc、Lock、言語の切り替え。
  • 修飾キー: ランチャー、Shift、Ctrl、Alt、Alt Gr、Fn キー
  • 文字キー: 文字、句読点、記号、発音区別符号など、書かれた言語または算術演算を表すキー。
  • ファンクション キー: 番号付きの Fn キー(F1、F2、... など)
  • ナビゲーション キー: 上、下、左、右。
  • 6 個パック: 拡張レイアウトでは、3 つのキーからなる 2 行がナビゲーション キーの上に配置されます。
  • ドングル: ChromeOS デバイスでネイティブにサポートされていない形式のアクセサリとの通信を可能にする小型のポート アダプター。多くの場合、ドングルには RF 受信機が搭載されています。
  • RF: 無線周波数。最も一般的な無線通信形式。
  • モーダルキー: CapsLock、Num Lock、Scroll Lock、キーボードの動作を変更し、離しても有効となるキー。

タイプ

  • キーボードを有線接続で ChromeOS デバイスに接続する場合は、USB を使用して ChromeOS デバイスに接続すべきです。
  • キーボードでワイヤレス接続を使用する場合は、Bluetooth または 2.4 GHz USB アダプター(ドングル)を使用して ChromeOS デバイスに接続すべきです。

セキュリティ

ファームウェア アップデータ

将来脆弱性が発見された場合に備えて、周辺機器にパッチを適用できるようにしておくことが重要です。そうしないと、既知の脆弱性がある周辺機器が ChromeOS に接続できなくなります。

  • Bluetooth ワイヤレス キーボードは、ファームウェアの更新可能性をサポートすべきです。
  • 2.4 GHz ドングル キーボードは、ファームウェアの更新可能性をサポートすべきです。
  • キーボードは、fwupd を介したファームウェア アップデートをサポートすべきです。
    • 注: これにより、標準の ChromeOS アップデート中(通常は 4 週間ごと)に、ユーザーがアップデートをシームレスに行うことができます。

接続性

  • ワイヤレス キーボードは、次のいずれかまたは両方を使用して、ChromeOS デバイスとの接続をサポートすべきです。
    • Bluetooth
    • 2.4 GHz ワイヤレス ドングル

2.4GHz ワイヤレスドングル

2.4 GHz ワイヤレス レシーバー(ドングル)に付属のキーボードは、そのレシーバーと自動的にペア設定されます(ドングルとのみペア設定されます)。キーボードを別のレシーバーとペア設定したり、新しいキーボードを既存のレシーバーとペア設定したりするには、ユーザーの操作(デバイス上またはアプリ経由)が必要です。以下の要件では、この機能について詳しく説明します。

  • 2.4 GHz ワイヤレス キーボードがレシーバーと一緒にパッケージ化されている場合、レシーバーは USB-A または USB-C を介した ChromeOS デバイスへの接続をサポートしなければなりません。
  • 2.4 GHz ワイヤレス キーボードがレシーバーとともにパッケージ化されている場合、キーボードは、キーボードにパッケージ化されたレシーバーと自動的にペア設定しなければなりません。
  • レシーバーと一緒にパッケージ化された 2.4 GHz ワイヤレス キーボードは、キーボードにパッケージ化されたレシーバーとのみ自動ペア設定しなければなりません。
  • 2.4 GHz キーボードでは、ユーザーがキーボードを別のレシーバーとペア設定できるようにしても構いません。
  • レシーバーは、ユーザーが別の 2.4 GHz キーボードをレシーバーとペア設定できるようにしても構いません。
  • キーボードは、ユーザーが開始する他のレシーバーとのペア設定についてアプリを利用しても構いません。
  • レシーバーは、ユーザーが開始した他のキーボードとのペア設定について、アプリを利用しても構いません。
  • アプリがキーボードとレシーバーのペア設定を変更する必要がある場合、アプリは ChromeOS で実行すべきです。
  • ペア設定アプリを使用する場合、ペア設定アプリは ChromeOS ネイティブ アプリであるべきです。
    • 注: Chrome 拡張機能は、ハードウェアとアクセサリの設定をサポートするためによく使用されます。
  • デバイスは、カスタマイズに WebUSB または WebHID を使用するプログレッシブ ウェブアプリ(PWA)を使用しても構いません。
  • ペア設定アプリを使用する場合、ペア設定アプリは、WebUSB または WebHID を使用するウェブアプリでも構いません。
  • 拡張機能を介してペア設定する場合、拡張機能は USB ポートにのみアクセスできなければなりません。
    • 注: コンテンツのスクリプトは明示的に禁止されています。

Bluetooth

  • ワイヤレス キーボードが Bluetooth をサポートしている場合、ワイヤレス キーボードは ChromeOS 互換の Bluetooth の要件の要件に準拠しなければなりません。具体的には、以下のセクションについて説明します。
    • Bluetooth の一般的な要件
    • Bluetooth 入力デバイスの要件

コネクタ

有線キーボード

  • 有線キーボードは、次のいずれかの USB トランスポートをサポートすべきです。
    • キーボード上の USB-C レセプタクル
    • USB-A プラグ付きキャプティブ ケーブル
    • USB-C プラグ付きキャプティブ ケーブル
  • 有線キーボードがデバイス上の USB-C レセプタクルをサポートする場合、USB-C レセプタクルはセクション 4.5.1.3.2 シンク構成チャネル機能モデルを遵守しなければなりません。
  • 有線キーボードがデバイス上の USB-C レセプタクルをサポートする場合、USB-C レセプタクルは 図 4-9 CC1 と CC2 のシンク機能モデルに準拠しなければなりません。
  • 有線キーボードが USB-A プラグ付きキャプティブ ケーブルをサポートしている場合、製品バンドルには、準拠した USB Type-C - USB 3.1 Standard-A レセプタクル アダプター(USB Type-C 仕様セクション 3.6.1)を含むべきです。
  • 有線キーボードが USB-C プラグ付きキャプティブ ケーブルをサポートする場合、USB-C プラグは USB Type-C 仕様のセクション 4.5.2 CC 機能および動作要件を遵守しなければなりません。
    • 注: 特に、直接接続デバイスまたはキャプティブ ケーブルを使用するデバイスに関するルール(これらのデバイスは、ピン A5 にのみ CC 電圧レベルを適用して感知する必要があります)。
  • 有線キーボードが USB-C プラグ付きキャプティブ ケーブルをサポートする場合、キーボードはパッシブ USB Type-C レセプタクル - USB-A アダプターを省略しなければなりません。
    • 根拠: USB Type-C レセプタクル - USB-A アダプターは、USB Type-C 仕様のセクション 2.2 で禁止されています。
  • 製品バンドルに USB ケーブルが含まれる場合、ケーブルは USB-IF 認定であるべきです。

主な動作

N キー ロールオーバー

  • キーボードをゲーム対応デバイスとペア設定することが想定される場合、N キー ロールオーバー(NKRO)をサポートすべきです。
    • 注: NKRO をサポートするキーボードは、任意の数のキーが同時に押されていることをレポートできます。
  • キーボードが NKRO をサポートしない場合は、6 キー ロールオーバー(6KRO)以上をサポートすべきです。
    • 注: 6KRO 対応のキーボードでは、最大 6 個のキーが同時に押されていることをレポートできます。
  • キーボードが 6 KRO 未満をサポートする場合、誤ったキー押下が登録されるのを防ぐために、アンチゴーストまたはその他の信頼性の高いメカニズムを備えているべきです。

HID コード

  • HID v1.11 のデバイスクラス定義で要求されているとおり、キーボードはクエリされたときに HID レポート記述子を送信しなければなりません。
  • すべての鍵は、Linux カーネルによって KEY_ または BTN_ コードにマッピングされた、意味のあるアクション HID コードを送信しなければなりません。
    • 注: 以前の ChromeOS デバイスの一部の外部キーボードでは、キーのグリフと一致しない F1 や F2 などが送信されます。これらは準拠していません。

ファンクション キー

  • キーは、ファンクション キーとして二次的な動作をしても構いません。
  • キーボードに、二次動作のキーがファンクション キーとして備わっている場合、キーボードに Fn キーがなければなりません。
  • 二次的な動作をするキーがファンクション キーとしてコード化されている場合、キーボードはファンクション キーの HID コードを送信しなければなりません。
  • キーボードは専用のファンクション キーであっても構いません。

グリフアートワークのガイドライン

ファンクション キー

  • プライマリ アクションのグリフは、セカンダリ関数のグリフよりも視覚的に目立つようにすべきです(大きい、明るい、重い)。

ナビゲーション キーは、上、下、左、右です。

  • キーボードにナビゲーション キーがある場合、ナビゲーション キーのキーキャップに矢印グリフを印刷すべきです。
  • キーボードに左キーと戻るキーがある場合、左キーのグリフは戻るキーのグリフと視覚的に区別すべきです。
  • キーボードに右キーと進むキーがある場合、右キーのグリフは、進むキーのグリフと視覚的に区別すべきです。

バッテリーと電源

  • キーボードに電池が含まれる場合、キーボード ファームウェアは HID を介して電池レベルをレポートすべきです。
  • キーボードに電池が含まれる場合、電源関連のキー、電源インジケーター、電源スイッチのうち 1 つ以上を含んでも構いません。
  • キーボードが充電式バッテリーを含んでいる場合、キーボードは USB を介した再充電をサポートすべきです。
  • デバイスが USB-C 充電器にバンドルされている場合、充電器は電力供給が USB-IF 認定されていても構いません。

ソフトウェア

ベンダー ID とプロダクト ID

  • すべてのプロトコルでキーボードからレポートされるベンダー ID は、メーカーに属していなければなりません。
  • キーボードによってレポートされるベンダー ID とプロダクト ID の組み合わせは、他のキーボード モデルから一意でなければなりません。
  • 同じキーボード モデルの複数のバリアントが存在する場合、それらはすべて同じ HID 記述子を共有すべきです。
  • 同じキーボード モデルのバリエーションで HID 記述子が異なる場合、HID 記述子の各バリエーションは一意のプロダクト ID にマッピングしなければなりません。

カーネル

  • カスタム カーネル ドライバを使用する場合は、アップストリームの Linux にチェックインしなければなりません。
  • カスタム カーネル ドライバを使用する場合は、Chromium OS カーネル 4.14 以降にバックポートしなければなりません。
  • キーボードがオフまたは切断された場合、カーネルは入力デバイスのコレクションからキーボードを削除しなければなりません。

変更履歴

日付 バージョン メモ
2024-02-01 1.0.1 新しいプラットフォームでの共和性
2023-05-18 1.0 パートナー サイトの初回公開