Skip to content

Instantly share code, notes, and snippets.

@dharFr
Created October 29, 2013 09:00
Show Gist options
  • Save dharFr/7211230 to your computer and use it in GitHub Desktop.
Save dharFr/7211230 to your computer and use it in GitHub Desktop.
Testing keyboard (aka remote) events received in a few TV browsers.

Here is the results of a few tests I ran on various "TV browsers" environments.

I wanted to know how those TV environements behaves regarding keyboard events. Is there a reliable standard way of handling remote controllers that we can work with?

The simple JS script I used to test keyCode behavior is available here : jsbin.com/OqAhIcA/13

Tested devices :

  • Desktop Browser (Chrome 30)
  • Opera TV Emulator
  • MediaTek TV Box MT8560: a low cost device, not even referenced on the vendor website that runs a Opera 12 browser
  • Samsung 40' LED TV (aka "Smart TV") with built-in browser. Seems to be a Webkit based browser, whatbrowser.org reports it as a Webkit Nightly 535

As you can read below, keyCodes seems to be pretty standard when it comes to arrows keys and OK/Enter key. That's the good news. The bad news is thoses 5 buttons are the only reliable ones.

Standard keys

Key Browsers Box mediaTek Opera TV Emulator Samsung "Smart" TV
ARROW_LEFT 37 37 37 37
ARROW_UP 38 38 38 38
ARROW_RIGHT 39 39 39 39
ARROW_DOWN 40 40 40 40
ENTER 13 13 13 13

Special keys

Key Browsers Box mediaTek Opera TV Emulator Samsung "Smart" TV
BACKSPACE 8 na na na
MENU 109 ('m') na 462 116 (Tools) / 120 (Info)
BACK 27 ('ESC') na 8 ('back') np

TV Remote Special buttons

Key Browsers Box mediaTek Opera TV Emulator Samsung "Smart" TV
PLAY 119 (F8) nb 415 121
STOP na na 413 118
PAUSE 119 (F8) nb na 123
FAST_FORWARD na nb 417 20000077 (long press)
FAST_REWIND na nb 412 20000074 (long press)
PREVIOUS 118 (F7) nb na nb
NEXT 120 (F9) nb na nb
RED na 34 403 112
GREEN na nb 404 113
YELLOW na nb 405 114
BLUE na 33 406 nb

na (not available) : eg, no such button on the device
nb (not bound) : the button exists on the device but don't trigger any event
np (not prevented) : the event triggers but propagation can't be stopped

Special notes:

  • Surprisingly, color buttons are not always available, sometimes you'll only have 2 or 3 of them.
  • On the Samsung TV, you need to manually switch from 'pointer navigation' (default) to 'link navigation' to activate keyboard/remote events. otherwise mouse events are the only ones triggered.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment