Edge Internet Explorer
433
460
360 312 265
113 33
19 2006
2008
2010
2012
desktop browsers results on html5test.com
2014
2016
Slide 6
new since internet explorer 6
Slide 7
ES6: Promises Full Screen
Pointerlock
Adaptive streaming
JSON encoding and decoding
File API’s
Mutation Observer
Canvas 2D graphics ObjectRTC
Geolocation
Media source extensions
Page Visibility Streams
WebAuthentication Drag and drop
Pointer events
SVG graphics Fetch
Responsive images
IndexedDB
Form validation
HTML5 parser Color input type
App-cache offline support
Typed Arrays
CSS border image
Audio
Video
Blend modes
Video subtitles
Device Orientation
Semantic elements URL API
Internationalisation
Speech synthesis
Beacons
Web Crypto
Slide 8
CSS 3D transforms
DOM3 events
TLS 1.2 WOFF fonts
Native XMLHTTP
Sandboxed iframes
Screen orientation CSS Selectors
Navigation Timing
PNG transparency support Data URLs
HSTS
Image sourceset
CSS transforms ARIA WebDriver
CSS Grid Layout
SVG External content
Selection API CSS calc
XPath
ES6: WeakMap
CSS transitions
Content security policy CSS Gradients
CSS Snap Points
Regions
CSS animations
High Resolution Timing CSS opacity
VP9 video codec Touch events
Slide 9
ES6: Generators
IME API
ES6: Subclassing HTTP/2 server push
Canvas 2D Path
ES6 Classes
Date input types
Access the webcam CSS Multicolumn
ECMAScript 5 Message Channels Session history
Gamepad
Session storage HTTP/2
Async script execution
ASM.js
Media Queries Level 4
Web Sockets
CSS unset
Cross-origin Resource Sharing WebAudio
Notifications
WebGL
Web Workers Local storage Exclusions
Cross-document messaging CSS Filters WebRTC
ES6: Template strings
Device Motion
CSS Flexbox ES6: Arrow functions Encrypted Media Extensions
Console logging
Slide 10
Slide 11
weird browsers
Slide 12
no, this talk is not about internet explorer 6
Slide 13
the web is weird by definition
Slide 14
the web is not a single platform
Slide 15
Slide 16
?weird browsers?
Slide 17
?weird browsers?
Slide 18
game consoles
Slide 19
portable game consoles
Slide 20
smart tvs
Slide 21
e-readers
Slide 22
smartwatches
Slide 23
photo cameras
Slide 24
fridges
Slide 25
cars
Slide 26
vr headsets
Slide 27
Slide 28
smart tvs and game consoles
Slide 29
“big screen browsers”
Slide 30
Slide 31
television browsers are pretty good the last generation of television sets use operating systems that originate on mobile
Slide 32
218
Google TV
427
LG WebOS 371
199
Panasonic Firefox OS
LG Netcast
555
0
261
Panasonic Viera
352
Samsung 2014
490
Samsung Tizen 478
Opera Devices smart tv results on html5test.com
Slide 33
57
258
Playstation 3
Playstation TV
108
289
Xbox 360
Playstation 4
555
0
65
Wii
256
Wii U
console results on html5test.com
428
Xbox One with Edge
Slide 34
1 controlling the browser
Slide 35
the biggest challenge of of big screen browsers
Slide 36
navigation (without mouse or touchscreen)
Slide 37
d-pad
Slide 38
d-pad
Slide 39
alternatives
Slide 40
analog controllers
Slide 41
remotes with trackpad
Slide 42
remotes with airmouse
Slide 43
second screen
Slide 44
many manufacturers also create apps for controlling the smart tv, console or set-top box
Slide 45
Slide 46
text input (without keyboard)
Slide 47
d-pads
Slide 48
text input with the d-pad
Slide 49
alternatives
Slide 50
remotes with keyboards
Slide 51
wireless keyboards
Slide 52
and apps
Slide 53
Slide 54
gesture control (throw your hands up in the air, and wave ’em like you just don’t care)
Slide 55
navigation with gesture control
Slide 56
can we control these input methods directly from javascript?
2 the difference between a television and a monitor
Slide 64
overscan (let’s make it a bit more complicated)
Slide 65
due to historical reasons televisions will not show the borders of the image
Slide 66
1920 pixels
the television enlarges all images from the hdmi input by 5%
Slide 67
1920 pixels
the television enlarges all images from the hdmi input by 5%
Slide 68
the image is then cropped to 1920 by 1080 pixels
Slide 69
the image is then cropped to 1920 by 1080 pixels
Slide 70
overscan causes blurry output
+5%
Slide 71
solution 1
overscan correction
Slide 72
1920 pixels
the browser does not use the edges of the image
Slide 73
1920 pixels
the television will enlarge the image by 5%
Slide 74
and the content is now fully visible, the unused border is cropped out of the final image
Slide 75
but not every television set enlarges the image by exactly 5%, this can vary between manufacturers and models
Slide 76
configure the correct overscan correction in the system preferences
Slide 77
the playstation 4 will always show the browser without overscan correction in full screen mode
Slide 78
the playstation 4 will always show the browser without overscan correction in full screen mode
Slide 79
solution 2
no overscan
Slide 80
it is possible to disable overscan on many television sets ‘screen fit’, ‘pixel perfect’ or ‘just scan’
Slide 81
the playstation 3 always shows the browser with overscan correction
Slide 82
the viewport (i really need some aspirin!)
Slide 83
the visual viewport
the visual viewport determines which part of the website will be visible measured in device pixels
Slide 84
the visual viewport
the visual viewport determines which part of the website will be visible measured in device pixels
Slide 85
the visual viewport
the visual viewport determines which part of the website will be visible measured in device pixels
Slide 86
the layout viewport the layout viewport determines the width in css pixels on which the site will be rendered
Slide 87
the layout viewport the layout viewport determines the width in css pixels on which the site will be rendered
Slide 88
the layout viewport the layout viewport determines the width in css pixels on which the site will be rendered
Slide 89
the default layout viewport is different on every smart tv, console or set-top box
between 800 and 1920 css pixels
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
1200 of 1236 pixels
microsoft xbox one (with edge)
Slide 96
1824 pixels
sony playstation 3
Slide 97
1920 pixels
sony playstation 4
Slide 98
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 99
device pixels != device pixels (of course not)
Slide 100
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 101
3 distance to the screen
Slide 102
20 inch
Slide 103
20 inch
Slide 104
10 foot
Slide 105
“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 106
Make your text and images two to three times bigger
Slide 107
Make your text and images two to three times bigger
Slide 108
Make your text and images two to three times bigger
Slide 109
youtube on the big screen
Slide 110
youtube on the big screen
Slide 111
identifying smart tv’s (css for televisions)
Slide 112
1
×
css media types @media tv { body {
font-size: 300%; } }
Slide 113
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 118
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 119
4 be careful with feature detection
Slide 120
“Basically every feature that talks to the operating system or hardware, is suspect.” – Me, just now
http://blog.html5test.com/2015/08/the-problems-with-feature-detection/
Slide 121
if (!!navigator.geolocation) { navigator.geolocation.getCurrentPosition( success, failure ); } else { // alternative }
Slide 122
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 123
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 124
Slide 125
e-readers
Slide 126
152
280
Kindle Touch
Kobo
147
Sony Reader 555
0
154
Pocketbook
e-reader results on html5test.com