Standardy USB nie mówią nic konkretnego o klawiaturach, myszach itp., W żadnej wersji.
Jest to standard HID. Struktura raportu z 6 klawiszami i modyfikatorami miała naprawdę ułatwić życie BIOS-owi (więc nie musieli analizować deskryptorów raportów), ale stała się de facto „standardem” dla klawiatur. Jednak standard HID pozwala na różnego rodzaju raporty, a wszystkie główne systemy operacyjne w pełni go obsługują, więc nie ma potrzeby stosowania dodatkowych sterowników.
Drugim ograniczeniem jest to, że pakiet danych USB o niskiej prędkości może mieć maksymalnie 8 bajtów. Raport może być większy, ale wysyłanie go zajmuje dużo czasu. Standard USB pozwala tylko urządzeniu o niskiej prędkości wysyłać jeden pakiet co 10 ms (na punkt końcowy). System operacyjny zwykle przesuwa to do 8 ms, tj. 125 Hz (bez włamań). Poświęcenie klawisza hostowi do 16 ms byłoby badziewiem! Mamy więc fazę, w której twórcy próbują wydobyć więcej z układów o niskiej prędkości, niż są w stanie naprawdę obsłużyć, dzięki sztuczkom takim jak wiele punktów końcowych itp .:
Szybki port USB uwalnia te ograniczenia. Każdy pakiet może mieć 64 bajty i może być wysyłany co 1 ms (ponownie, na punkt końcowy). Pozwala to na pełne wykorzystanie standardu HID.
Wreszcie, NKRO nie jest zrobione tylko ze względu na to. Wykonanie pełnego NKRO wymaga tylko jednego bitu na klucz, a nie jednego bajtu, i nie musi traktować modyfikatorów jako specjalnego przypadku. Tak więc klawiatura może wysyłać np. 104 klucze w zaledwie 13 bajtach - przy użyciu innego schematu 13 bajtów poradziłoby sobie tylko z 11KRO (11 klawiszy + modyfikatory + jeden zarezerwowany bajt). Jasne, to wciąż mnóstwo kluczy, ale jest to metoda o wiele mniej elegancka (i wciąż „nie-6KRO”, więc nadal może być niekompatybilna z głupimi hostami).