Versão: 1.0.1
Última atualização: 01/02/2024
Legenda
Verbo do produto | Ação de desenvolvimento |
---|---|
"PRECISA" | Requisito obrigatório de produto |
"DEVE" | Recomendação opcional |
"MAIO" | Opcional |
Visão geral
Este documento de especificação descreve os critérios que um teclado compatível com o ChromeOS atende.
Essa especificação abrange um teclado externo que não faz parte do chassi principal do dispositivo. O teclado pode ser conectado sem fio ou por fio a um dispositivo ChromeOS.
O teclado pode ser vendido separadamente como um acessório ou com um dispositivo ChromeOS.
Glossário
- Teclas especiais: Tab, Enter, Backspace, Espaço, 英数, 書 esgota, 書ano<=>英数, Fn, Page Up, Page Down, Home, End, Delete, Escape, Lock, Language Switch.
- Teclas modificadoras: acesso rápido, Shift, Control, Alt, Alt Gr, Fn.
- Chaves de caracteres: chaves que representam linguagem escrita ou operações matemáticas, incluindo letras, pontuação, símbolos e caracteres diacríticos.
- Teclas de função: teclas Fn numeradas, como F1, F2, ....
- Teclas de navegação: para cima, para baixo, para a esquerda e para a direita.
- Pacote com seis: no layout estendido, as duas linhas de três teclas ficam acima das teclas de navegação.
- Dongle: um pequeno adaptador de porta que fornece comunicação com um acessório em um formato sem suporte nativo do dispositivo ChromeOS. Um dongle geralmente contém um receptor de RF.
- RF: radiofrequência. É a forma mais comum de comunicação sem fio.
- Teclas modais: Caps Lock, Num Lock, Scroll Lock. Teclas que mudam o comportamento do teclado e continuam em vigor após o lançamento.
Tipo
- Se o teclado se conectar ao dispositivo ChromeOS por uma conexão com fio, ele DEVE se conectar ao dispositivo ChromeOS por USB.
- Se o teclado usar uma conexão sem fio, ele DEVE se conectar ao dispositivo ChromeOS por Bluetooth ou um adaptador USB de 2,4 GHz (dongle).
Segurança
Atualizador de firmware
É importante garantir que os periféricos possam ser corrigidos caso vulnerabilidades sejam descobertas no futuro. Caso contrário, os periféricos com vulnerabilidades conhecidas não poderão se conectar ao ChromeOS.
- Um teclado sem fio Bluetooth DEVE oferecer suporte à capacidade de atualização de firmware.
- Um teclado de dongle de 2,4 GHz DEVE oferecer suporte à capacidade de atualização do firmware.
- O teclado DEVE oferecer suporte a atualizações de firmware via fwupd.
- Observação: isso permite que as atualizações sejam integradas ao usuário durante uma atualização padrão do ChromeOS (normalmente a cada quatro semanas).
Conectividade
- O teclado sem fio DEVE oferecer suporte à conexão com o dispositivo ChromeOS
usando um ou ambos:
- Bluetooth
- Dongle sem fio de 2,4 GHz
Dongle sem fio de 2,4 GHz
Um teclado que vem com um receptor sem fio (dongle) de 2,4 GHz é pareado automaticamente com esse receptor. A ação do usuário (no dispositivo ou em um app) é necessária para parear o teclado com outro receptor ou parear um novo teclado com um receptor já existente. Os requisitos a seguir detalham essa funcionalidade.
- Quando um teclado sem fio de 2,4 GHz é combinado com um receptor, ele PRECISA oferecer suporte à conexão com o dispositivo ChromeOS via USB-A ou USB-C.
- Se um teclado sem fio de 2,4 GHz acompanha um receptor, ele PRECISA ser pareado automaticamente com o receptor que acompanha o teclado.
- Um teclado sem fio de 2,4 GHz acompanhado com um receptor PRECISA ser pareado automaticamente apenas com o receptor que acompanha o teclado.
- O teclado de 2,4 GHz pode permitir que o usuário faça o pareamento com outro receptor.
- O receptor pode permitir que o usuário pareie outro teclado de 2,4 GHz com o receptor.
- O teclado PODE depender de um app para pareamento iniciado pelo usuário com outros receptores.
- O receptor pode depender de um app para o pareamento iniciado pelo usuário com outros teclados.
- Se um app precisar mudar o pareamento de teclado/receptor, ele deverá ser executado no ChromeOS.
- Se um app de pareamento for usado, ele DEVE ser nativo do ChromeOS.
- Observação: as extensões do Chrome geralmente são usadas para oferecer suporte à configuração de hardware e acessórios.
- O dispositivo PODE depender de um App Web Progressivo (PWA) usando WebUSB ou WebHID para personalização.
- Se um app de pareamento for usado, ele PODE ser um app da Web que usa WebUSB ou WebHID.
- Se o pareamento for implementado com uma extensão, ela PRECISA ter acesso SOMENTE
às portas USB.
- Observação: os scripts de conteúdo são explicitamente proibidos.
Bluetooth
- Se um teclado sem fio oferecer suporte a Bluetooth, ele PRECISA estar em conformidade
com os Requisitos para Bluetooth
compatível com ChromeOS. Mais especificamente, as seguintes seções:
- Requisitos genéricos do Bluetooth
- Requisitos do dispositivo de entrada Bluetooth
Conectores
Teclados com fio
- Um teclado com fio DEVE oferecer suporte a um dos seguintes transportes USB:
- Entrada USB-C no teclado
- Cabo cativo com plugue USB-A
- Cabo cativo com plugue USB-C
- Se o teclado com fio for compatível com o receptáculo USB-C no dispositivo, o receptor USB-C PRECISA estar em conformidade com a Seção 4.5.1.3.2 Modelo funcional do canal de configuração do coletor.
- Se o teclado com fio oferecer suporte ao receptáculo USB-C no dispositivo, o receptor PRECISA estar em conformidade com a Figura 4-9 do modelo funcional do coletor para CC1 e CC2.
- Se o teclado com fio oferecer suporte a cabo cativo com plugue USB-A, o pacote de produtos DEVE incluir um USB-C para adaptador de receptáculo USB 3.1 Standard-A (Seção 3.6.1 da especificação USB-C).
- Se o teclado com fio for compatível com cabo cativo com plugue USB-C, o plugue USB-C
PRECISA estar em conformidade com a especificação USB-C Seção 4.5.2 CC Requisitos funcionais e
comportamentos.
- Observação: especificamente as regras relacionadas a dispositivos de conexão direta ou dispositivos com cabo cativo. Esses dispositivos devem ser aplicados e detectar os níveis de tensão CC somente no pino A5.
- Se o teclado com fio oferecer suporte a cabo cativo com plugue USB-C, o teclado
PRECISA omitir um receptáculo passivo USB-C para USB-A.
- Justificativa: o receptáculo USB-C para adaptadores USB-A são proibidos pela Seção 2.2 da especificação USB-C.
- Se o pacote de produtos incluir um cabo USB, o cabo DEVE ter certificação USB-IF.
Comportamento da tecla
Rollover do N-key
- Se for esperado que o teclado seja pareado com dispositivos compatíveis com jogos,
ele DEVE oferecer suporte ao rollover de N teclas (NKRO, na sigla em inglês).
- Observação: um teclado compatível com NKRO pode informar um número qualquer de teclas pressionadas ao mesmo tempo.
- Se o teclado não oferecer suporte a NKRO, ele DEVE oferecer suporte ao rollover
de seis teclas (6KRO) ou mais.
- Observação: um teclado com suporte a 6KRO pode informar até seis teclas pressionadas ao mesmo tempo.
- Se o teclado oferecer suporte a menos de 6KRO, ele DEVE ter anti-ghosting ou outros mecanismos confiáveis para evitar o registro de pressionamentos de tecla incorretos.
Códigos HID
- O teclado PRECISA enviar um descritor de relatório HID quando consultado, conforme exigido pela Definição de classe de dispositivo para HID v1.11.
- Todas as chaves PRECISAM enviar códigos HID de ações significativos, mapeados para um código KEY_ ou BTN_
pelo kernel do Linux.
- Observação: alguns teclados legados externos de dispositivos ChromeOS enviam F1, F2 etc. que não correspondem ao glifo na chave. Eles não são compatíveis.
Teclas de função
- As chaves PODEM ter um comportamento secundário como teclas de função.
- Se os teclados tiverem teclas com comportamento secundário como teclas de função, ele PRECISA ter uma tecla Fn.
- Se uma tecla com comportamento secundário como uma tecla de função for combinada com uma tecla Fn, o teclado PRECISA enviar um código HID da tecla de função.
- O teclado PODE usar as teclas de função dedicadas.
Diretrizes para arte de glifos
Teclas de função
- Os glifos de ação primária DEVEM parecer mais proeminentes visualmente (maiores, mais brilhantes ou mais pesados) do que os glifos de função secundária.
Teclas de navegação
As teclas de navegação são para cima, para baixo, para a esquerda e para a direita.
- Se o teclado tiver teclas de navegação, elas DEVEM ter glifos de seta impressos nas letras maiúsculas.
- Se o teclado tiver as teclas "Esquerda" e "Voltar", o glifo da tecla da esquerda DEVE ser visualmente diferente do glifo da tecla "Voltar".
- Se o teclado tiver uma tecla para a direita e uma tecla de avançar, o glifo da tecla da direita DEVE ser visualmente diferente do glifo da tecla de avançar.
Bateria e energia
- Se o teclado tiver uma bateria, o firmware do teclado DEVE informar o nível da bateria via HID.
- Se o teclado tiver baterias, ele PODE incluir um ou mais: teclas relacionadas à energia, um indicador de energia e um interruptor.
- Se o teclado tiver uma bateria recarregável, ele DEVE oferecer suporte ao recarregamento via USB.
- Se o dispositivo acompanha um carregador USB-C, o carregador PODE ser certificado para USB-IF para fornecimento de energia.
Software
IDs de fornecedores e produtos
- O ID do fornecedor informado pelo teclado em todos os protocolos PRECISA pertencer ao fabricante.
- As combinações de ID do fornecedor/produto informadas pelo teclado PRECISAM ser exclusivas de outros modelos de teclado.
- Se houver diversas variantes do mesmo modelo de teclado, todas elas DEVEM compartilhar o mesmo descritor de HID.
- Se as variantes do mesmo modelo de teclado tiverem descritores HID diferentes, cada variação do descritor HID PRECISA ser mapeada para um ID de produto exclusivo.
Kernel
- Se um driver de kernel personalizado for usado, ele PRECISA ser verificado no Linux upstream
- Se um driver de kernel personalizado for usado, ele PRECISA ter backport para os kernels do Chromium OS 4.14 e versões mais recentes.
- Quando um teclado é desligado ou desconectado, o kernel PRECISA remover o teclado da coleção de dispositivos de entrada.
Histórico de revisões
Data | Versão | Observações |
---|---|---|
2024-02-01 | 1.0.1 | Republicação em uma nova plataforma |
2023-05-18 | 1.0 | Publicação inicial do site do parceiro |