HTML5 - One spec to rule them all


Published on

What is new and what can we do with it? HTML5 strategies, features and markup.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

HTML5 - One spec to rule them all

  1. 1. HTML5<br />One spec to rule them all<br />
  2. 2. About Me<br />Who: Stu King – User Experience Designer<br />Where: Magenic Studios – Magenic Technologies, Inc.<br />Focused on Design, User Experience Analysis and RIA development<br />What: Designer and Front-end Developer<br />On the web:<br />On the twitter: @designdrifter<br />
  3. 3. About this presentation<br />How this presentation is going to work<br />
  4. 4. Browser Support for HTML5<br />A browser’s ability to support the features of HTML5 is based on the layout engine it uses<br /><ul><li>Layout Engines
  5. 5. Gecko – All Mozilla software, Fire Fox
  6. 6. WebKit – Chrome and Safari
  7. 7. Trident – Internet Explorer
  8. 8. Presto – Opera
  9. 9. For this presentation – If a feature of HTML5 is supported, or partially supported by a browser, the browser logo will be displayed on the slide
  10. 10. If there is NO support for the feature the browser’s logo will not appear at all</li></li></ul><li>Browser Support for HTML5<br />Indicates full support for the HTML5 element<br />Indicates partial support for the HTML5 element<br />
  11. 11. Why do we need HTML5?<br />What’s in it and why is it so important<br />
  12. 12. The HTML5 spec strives to…<br />Establish official rules regarding the use of older HTML elements and support existing content<br />Establish standards for error handling that all browsers will follow<br />Establish clearer rules regarding proper document structure for the benefit of accessibility and screen readers<br />Provide client side form validation right in the browser<br />
  13. 13. Obsolete vs. Deprecated<br />Terms and conditions<br />
  14. 14. Obsolete vs. Deprecated<br />Many elements have been retired but that doesn’t mean you will never see them again. In order to be backward compatible the specification still supports old elements.<br /><ul><li>Deprecated – a term used to describe those elements of HTML that we were not supposed to use anymore.
  15. 15. <center>
  16. 16. <dir>
  17. 17. <font>
  18. 18. <u>
  19. 19. <s>
  20. 20. <menu>
  21. 21. Etc.</li></li></ul><li>Obsolete vs. Deprecated<br />Are they crazy? Some deprecated elements have been added back into the specification and re-labeled “Obsolete”. This distinction acknowledges that use of these elements is not recommended but must be supported anyway. <br /><ul><li>Obsolete – some elements that are considered obsolete in the new specification.
  22. 22. <frame>, <frameset> and <noframes>
  23. 23. <big>
  24. 24. <font>
  25. 25. <center>
  26. 26. <strike></li></li></ul><li>Obsolete vs. Deprecated<br />The rule is that all elements dealing with “presentational” effects should now be handled by CSS. This includes things like <i>, <b> and <u>.<br /><ul><li>In addition, some presentational attributes are also out.
  27. 27. bgcolor
  28. 28. cellpadding
  29. 29. cellspacing
  30. 30. valign
  31. 31. align</li></li></ul><li>Obsolete vs. Deprecated<br />Not all presentational elements are out but in most cases their meaning has changed to something semantic.<br /><ul><li><small>
  32. 32. Used to mean – “small font size”
  33. 33. Now means – “the small print”
  34. 34. <b>
  35. 35. Used to mean – “render the text bold”
  36. 36. Now means – “this text is stylistically different but with no extra importance”. In a case where the text is important <strong> would be used instead.
  37. 37. <i>
  38. 38. Used to mean – “render this text in italics”
  39. 39. Now means – “in an alternate voice or mood”</li></li></ul><li>Document Markup<br />It’s the content that matters<br />
  40. 40. What does it all mean?<br />HTML5 gives browsers a new way to understand your content.<br />New tags can be used to replace some of those <div> tags.<br />Better content models mean better accessibility and more efficiency for screen readers.<br />More granular outlines mean more flexible use of standard HTML headers such as <h1> <br />
  41. 41. <section></section><br />Group together thematically related content<section> <h1>Code Camp</h1> <p>This event is awesome!</p> <p>so says Stu</p></section><br />
  42. 42. <header></header><br />Header has nothing to do with position. Markup header content within a section.<section> <header> <h1>Code Camp</h1> </header> <p>This event is awesome!</p> <p>so says Stu</p></section><br />
  43. 43. <footer></footer><br />Footer has nothing to do with position. Markup footer content within a section.<section> <header> <h1>Code Camp</h1> </header> <p>This event is awesome!</p> <footer> <p>so says Stu</p> </footer></section><br />
  44. 44. <aside></aside><br />Aside can be used for related but non-essential content. Pull quotes a good example of “aside” content.<aside> “Code Camp was a great experience, I plan to come back next year.”</aside><br />
  45. 45. <article></article><br />Article is an alternate to section, intended for use with syndicated content<article> <header> <h1>Code Camp</h1> </header> <p>This event is awesome!</p> <footer> <p>so says Stu</p> </footer></article><br />
  46. 46. <nav></nav><br />Nav is designed to contain major navigation elements.<nav> <ul> <li>Link 1</li> <li>Link 2</li> <li>Link 3</li> <li>Link 4</li> </ul></nav><br />
  47. 47. Rich media<br />Will we still need plugins?<br />
  48. 48. <canvas></canvas><br />Canvas allows you to dynamically create drawings using JavaScript. More information is available in the HTML5 API.<br />Interesting alternative to Flash and SilverLight for making games due to its ability to respond to user triggered events.<canvas width=“360” height=“240”> <p>No canvas support? Here is an image instead.</p> <imgsrc=“images/placeholder.jpg” alt=“hello”></canvas><br />
  49. 49. <audio></audio><br />Used to embed audio into a web page.<audio src=“music/musicfile.mp3”></audio><br />
  50. 50. <audio></audio><br />Automatically start the audio file.<audio src=“music/musicfile.mp3” autoplay></audio><br />How about a “loop”?<audio src=“music/musicfile.mp3” autoplay loop></audio><br />
  51. 51. <audio></audio><br />Include audio controls.<audio src=“music/musicfile.mp3” controls></audio><br />
  52. 52. <audio></audio><br />Gracefully fall back to other file formats. <audio controls><br /> <source src=“music/musicfile.ogg”><br /> <source src=“music/musicfile.mp3”><br /> <source src=“music/musicfile.wav”> </audio><br />
  53. 53. <audio></audio><br />What about IE? IE requires Flash <audio controls><br /><object type=“application/x-shockwave-flash”<br />data=“player.swf?soundfile=music/musicfile.mp3”><br /><param name=“movie” <br /> value=“player.swf?soundfile=music/musicfile.mp3”><br /></object> </audio><br />
  54. 54. <video></video><br />The video elements works just like the audio element<video src=“video/videofile.mp4” width=“360” height=“240”></video><br />
  55. 55. <video></video><br />Add controls<video src=“video/videofile.mp4” width=“360” height=“240” controls></video><br />
  56. 56. <video></video><br />Use the “poster” attribute to display an image before the video plays<video src=“video/videofile.mp4” width=“360” height=“240” controls poster=“images/preview.jpg”></video><br />
  57. 57. Web forms<br />What has been changed or improved?<br />
  58. 58. Placeholder Text<br />Set placeholder text for and input field <form><br /> <input name=“first” placeholder=“First Name”> </form><br />
  59. 59. Autofocus Fields<br />Set the focus on an input field <form><br /> <input name=“first” autofocus> </form><br />
  60. 60. Required Fields<br />Set an input field to be required <form><br /> <input name=“first” required> </form><br />
  61. 61. New Input types<br />HTML5 has 13 new input types and, of course, all the old ones still work as we would expect. <br /><ul><li>Email
  62. 62. URL
  63. 63. Tel
  64. 64. Search
  65. 65. Color
  66. 66. Week
  67. 67. Month
  68. 68. Date
  69. 69. Time
  70. 70. Datetime
  71. 71. Datetime-local
  72. 72. Range
  73. 73. Number</li></ul>NOTE: Support for input types is sketchy. Technically, browsers may support many of these input types but may not recognize what to do with them. In cases where they are not supported they will usually be treated as type=“text”.<br />
  74. 74. Email Input<br /> <form><br /> <input type=“email”> </form><br />
  75. 75. Web address input<br /> <form><br /> <input type=“url”> </form><br />
  76. 76. Spinboxes<br /> <form><br /> <input type=“number”<br /> min=“0”<br /> max=“10”<br /> step=“2”<br /> value=“6”> </form><br />
  77. 77. Sliders<br /> <form><br /> <input type=“range”<br /> min=“0”<br /> max=“10”<br /> step=“2”<br /> value=“6”> </form><br />
  78. 78. Form Validation<br />So why bother with all these new input types? Form validation in HTML, that’s why. HTML5 will be able to replace any client side validation you currently do with JavaScript.<br /><ul><li>Solve the problem of disabled JavaScript
  79. 79. Skip the complexity and offload the job to the browser</li></ul>If you don’t want validation simply add “novalidate” to your form tag.<br /><form novalidate><br />
  80. 80. How Can we use it now?<br />What we can do to prepare?<br />
  81. 81. How do we plan for the future?<br />Admittedly, the HTML5 spec is still a bit fluid but it would be nice to plan for the future.<br />Simply use the HTML5 DOCTYPE<br /><DOCTYPE html><br />Use new element names as your CSS class names and start thinking in HTML5 terms.<br /><div class=“article”><span class=“header”> <h1>Code Camp</h1></span> <p>This event is awesome!</p><span class=“footer”> <p>so says Stu</p></span></div><br />
  82. 82. How can we learn more?<br />The when, what and where can if find it of HTML5<br />
  83. 83. HTML5 Resources<br />Get a book – HTML5 for Web Designers – by Jeremy Keith<br />The official HTML5 Specification from W3C<br /><ul><li></li></ul>HTML5 help and development resources<br /><ul><li></li></ul>Great examples of HTML5 in action<br /><ul><li></li></li></ul><li>When is HTML5 going to become official?<br />The HTML5 specification is predicted to become a “proposed recommendation” in 2022.<br />The HTML5 specification becomes a “candidate recommendation” in 2012.<br />The world ends in December of 2012…<br />
  84. 84. Thank you<br />Q&A<br />