Version: 2.0.1  

Last updated: 2026-09-28

## Overview


### Minimum and Additional Requirements

This specification document is divided into two sections:

1. **Minimum** requirements describe the criteria for a peripheral category to be compatible.
2. **Additional** requirements describe the criteria for certification.

Use these navigation buttons to show only the minimum or both the minimum
and additional specification, respectively.
<button value="min">Minimum</button> <button value="add" default="">Minimum and Additional</button>

<br />

## Legend

| Product Verb | Development Action |
|---|---|
| "MUST" | Mandatory product requirement |
| "SHOULD" | Optional recommendation |
| "MAY" | Nice to have |

## Glossary

- **Function keys**: Numbered Fn keys like F1, F2, ....

- **Navigation keys**: Up, Down, Left, Right.

- **Six-pack**: In extended layout, the two rows of three keys sitting above
  Navigation keys.

- **Dongle**: A small port adapter that provides communication with an
  accessory in a format not supported natively by the ChromeOS device. A
  dongle often contains an RF receiver.

- **RF**: Radio Frequency. The most common form of wireless communication.

- **Modal keys**: Caps Lock, Num Lock, Scroll Lock; Keys that change the
  behavior of the keyboard and continue to have effect after they are
  released.

## MINIMUM REQUIREMENTS

### Generic peripheral Specifications

- The peripheral MUST meet the [minimum requirements](https://developers.google.com/chromeos/peripherals/cc-generic-peripheral-v2#minimum-requirements) defined in the Generic peripheral specifications.

### Key Behavior

#### HID Codes

- The keyboard MUST be compliant to
  [HID v1.11](https://www.usb.org/sites/default/files/hid1_11.pdf).

- All keys MUST send HID codes or combination of HID codes mapped to KEY_ or
  BTN_ code by the
  [linux kernel](https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/third_party/kernel/upstream/include/uapi/linux/input-event-codes.h).

#### Combination keys

- If the keyboard has an AI Key, then the keyboard MUST send Meta + Shift + f23

#### Function Keys

- If the keyboards have keys with a secondary behavior as Function Keys, the
  keyboard MUST have a Fn key.

- If a key with secondary behavior as a Function Key is pressed simultaneously
  with a Fn key, the keyboard MUST send a Function Key HID code.

## ADDITIONAL REQUIREMENTS

Along with the Minimum requirements, a peripheral **MUST** meet the following
mandatory requirements to achieve certification.

### Generic peripheral Specifications

- **\[Mandatory\]** The peripheral MUST meet the [additional requirements](https://developers.google.com/chromeos/peripherals/cc-generic-peripheral-v2#additional-requirements) defined in the Generic peripheral specifications.

### Key Behavior

#### Function Keys

- **\[Optional\]** Keys MAY have a secondary behavior as Function keys.

- **\[Optional\]** The keyboard MAY have dedicated Function keys.

### Battery and Power

- **\[Mandatory\]** If the keyboard contains a battery, then the keyboard
  firmware MUST report battery level using HID.

- **\[Mandatory\]** If the device is bundled with a USB-C charger, then the
  charger MUST be USB-IF certified for power delivery.

#### Low power mode

- **\[Optional\]** When the keyboard experiences a period of no activity, the keyboard SHOULD go into a lower power mode.

> [!NOTE]
> **Note:** A lower power mode is achieved by reducing the scan rate.

<br />

## Revision history

| Date | Version | Notes |
|---|---|---|
| 2026-09-28 | 2.0.1 | Update formatting. |
| 2026-03-19 | 2.0 | Update documentation |
| 2024-02-01 | 1.0.1 | Initial publication on Google Developers platform. |
| 2023-08-18 | 1.0 | Initial publication. |

<br />