402
Edge 12 458
Edge 13 400
521
Safari 9
Chrome 46
0
555
16
336
466
Internet Explorer 6
Internet Explorer 11
Firefox 41
desktop browsers results on html5test.com
Slide 7
Slide 8
?weird browsers?
Slide 9
browsers and devices that do not adhere to current expectations
Slide 10
if (‘ontouchstart’ in window) { element.addEventListener(‘touchstart’, function(e) { … }); } else { element.addEventListener(‘click’, function(e) { … }); }
Slide 11
Slide 12
?weird browsers?
Slide 13
?weird browsers?
Slide 14
game consoles
Slide 15
portable game consoles
Slide 16
smart tvs
Slide 17
e-readers
Slide 18
smartwatches
Slide 19
photo cameras
Slide 20
Andre Jay Meissner
cars
Slide 21
Slide 22
smart tvs, set-top boxes and consoles
Slide 23
“big screen browsers”
Slide 24
Slide 25
television browsers are pretty good the last generation of television sets use operating systems that originate from mobile
Slide 26
281
Google TV
418
LG WebOS 414 238
Panasonic Firefox OS
LG Netcast
0
555
301
407
Panasonic Samsung Viera 2014
465
Samsung Tizen 449
Opera Devices smart tv results on html5test.com
Slide 27
53
309
Playstation 3
Playstation TV
98
328
Xbox 360
Playstation 4
286
Xbox One
0
555
66
311
Wii
Wii U
console results on html5test.com
Slide 28
Slide 29
1 control
Slide 30
the biggest challenge of of television browsers
Slide 31
navigation (without mouse or touchscreen)
Slide 32
d-pad
Slide 33
navigation with the d-pad
Slide 34
but it can be worse: moving the cursor with the arrow keys
Slide 35
alternatives
Slide 36
analog controllers
Slide 37
remotes with trackpad
Slide 38
remotes with airmouse
Slide 39
second screen
Slide 40
many manufacturers also create apps for controlling the smart tv, console or set-top box
Slide 41
Slide 42
Slide 43
text input (without keyboard)
Slide 44
d-pads
Slide 45
text input with the d-pad
Slide 46
alternatives
Slide 47
remotes with keyboards
Slide 48
wireless keyboards
Slide 49
and apps
Slide 50
Slide 51
gesture control (throw your hands up in the air, and wave ’em like you just don’t care)
Slide 52
navigation with gesture control
Slide 53
can we control these input methods directly from javascript?
complication:
meta viewport is not supported it is not possible to get the same layout viewport width in all of the different browsers
Slide 89
complication:
device pixel ratio is not supported there is no proper way to show images with the same resolution as the physical screen
Slide 90
800 pixels
nintendo wii
Slide 91
980 pixels
nintendo wii u
Slide 92
960 pixels
lg webos
Slide 93
1041 of 1050 pixels
microsoft xbox 360
Slide 94
1200 of 1236 pixels
microsoft xbox one
Slide 95
1824 pixels
sony playstation 3
Slide 96
1920 pixels
sony playstation 4
Slide 97
Nintendo Wii
800
LG WebOS
960
Nintendo Wii U
980
Philips 2014 series
980
Google TV
1024
Playstation TV
1024
Samsung Tizen
1024
Xbox 360
1051
Xbox One
1200
LG Netcast
1226
Panasonic Viera
1256
Opera Devices
1280
Samsung 2014 series
1280
Panasonic Firefox OS
1536
Playstation 3
1824
Playstation 4
1920
Slide 98
device pixels != device pixels (of course not)
Slide 99
sometimes devices pixels are not physical devices pixels, but virtual device pixels the browser renders in a lower resolution which is upscaled to the resolution of the display
Slide 100
3 distance to the screen
Slide 101
“Make fonts and graphics on the site larger to account for viewing distance. People sit proportionally farther from a TV than from a computer monitor of the same size.” – Internet Explorer for Xbox One Developer Guide
https://msdn.microsoft.com/en-us/library/dn532261(v=vs.85).aspx
Slide 102
responsive design the size of the contents is determined by the width of the viewport
Slide 103
1
use percentages for positioning .left { width: 60%; } .right { left: 60%; width: 40%; }
Slide 104
2
base the fontsize on the viewport document.body.style.fontSize = ((window.innerWidth / 1920) * 300) + ‘%’;
Slide 105
3
or maybe use viewport units – with polyfill body { font-size: 3vw; } .left { width: 60vw; height: 100vh; } .right { width: 40vw; height: 100vh; }
Slide 106
4
use a safe margin around the contents body { padding: 5%; }
Slide 107
youtube tv website
Slide 108
identifying smart tv’s (css for televisions)
Slide 109
1
×
css media types @media tv { body {
font-size: 300%; } }
Slide 110
1
css media types
all television browsers use the css media type ‘screen’
3
useragent sniffing
not all smart tv’s are recognisable Mozilla/5.0 (X11; Linux; ko-KR) AppleWebKit/534.26+ (KHTML, like Gecko) Version/5.0 Safari/534.26+
Slide 115
4
couch mode
the only reliable way to optimise a website for television is to make two different websites… or give the user the ability to switch on couch mode
Slide 116
4 be careful with feature detection
Slide 117
“Basically every feature that talks to the operating system or hardware, is suspect.” – Me
http://blog.html5test.com/2015/08/the-problems-with-feature-detection/
Slide 118
if (!!navigator.geolocation) { navigator.geolocation.getCurrentPosition( success, failure ); } else { // alternative }
Slide 119
if (!!navigator.geolocation) { navigator.geolocation.getCurrentPosition( success, failure ); }
1
failure is called with a “permission denied” error code
2
no callback at all to success or failure
Slide 120
if (!!navigator.geolocation) { navigator.geolocation.getCurrentPosition( success, failure ); }
3
success is called with longitude = 0 and latitude = 0
4
success is called with the coordinates of Mountain View, USA
Slide 121
is there a future for web apps on the big screen?
Slide 122
Slide 123
the new apple tv does not ship with a browser by default
Slide 124
android tv does not ship with a browser by default
Slide 125
Slide 126
?weird browsers!
Slide 127
“We cannot predict future behavior from a current experience that sucks” – Jason Grigsby
http://blog.cloudfour.com/on-the-device-context-continuum/