SlideShare a Scribd company logo
1 of 34
Download to read offline
HTML4 XHTML HTML5
                  The Evolution, Promise and Reality of HTML5

Thursday, March 17, 2011
About Me
                   Senior Web Application Developer Technical Lead Barclaycard
                   US, Wilmington, DE

                   A SCJP Front End Engineer and UX/UI Advocate

                   Open Source Committer to Stripes and blojsom

                   Registered first domain in 1996

                   GnuPG/PGP Fingerprint
                           0248 FAD3 D6BE 008C 27C8 7A72 7249 DE33 22A5 2C82

                   Still plays D&D (not exactly)

                   Contact: tstone@petmystone.com



Thursday, March 17, 2011
2000




                                   1996               2004        2008



                  EVOLUTION
    PROJECT




                  1996..2008
    DATE                                  CLIENT
                  MARCH 16, 2011                   RICHMOND JUG
Thursday, March 17, 2011
12 Years Ago...

                   HTML 2/3.2
                   Tables! JavaScript! Oh, My!

                   First Browser Support 12/1994

                   W3C Recommendation 1/1997




Thursday, March 17, 2011
Thursday, March 17, 2011
HTML 4/4.01
                   Quirks vs Standards Mode

                   First Browser Support 10/1996

                   W3C Recommendation 12/1999




Thursday, March 17, 2011
XHTML 1.0/1.1

                   First Browser Support c. 1999

                   W3C Recommendation 1/2000 & 5/2001

                   "To Hell With Bad Browsers" - Zeldman, 2/2001
                   "Draconian"
                   "Valid XHTML is really just Invalid HTML 4.01"




Thursday, March 17, 2011
XHTML 2.0
                   Nevermind

                   Incompatible with XHTML 1.x

                   XHTML2WG announces support of HTML5 5/2007




Thursday, March 17, 2011
HTML5/XHTML5
                   Buzzword Ready.
                   Cool Logo.




Thursday, March 17, 2011
Is HTML5 Ready Yet?



Thursday, March 17, 2011
Thursday, March 17, 2011
http://www.flickr.com/photos/andyi/




                  PROMISE
    PROJECT




                  INTEROPERABILITY
    DATE                           CLIENT
                  MARCH 16, 2011            RICHMOND JUG
Thursday, March 17, 2011
Promise

                   WHATWG
                   Web Hypertext Application Technology Working Group


                   A Living Document of Standards
                   "HTML is the New HTML5" - Ian Hickson, 1/19/11

                   HTML5 will be a SNAPSHOT

                   But… But... HTML is not JSON




Thursday, March 17, 2011
Where We Are


                   A Theme Rises
                   "Implementation Trumps Specification"
                    Molly Holzschlag, Opera @ Philly ETE 2010


                   CSS 2.1?




Thursday, March 17, 2011
Where We Are Going

                   A bellwether
                   Omniture Summit 2010

                   "This is application development now people."
                    Molly Holzschlag, Opera




Thursday, March 17, 2011
APIs
                   22 APIs                    Native
                                              getElementsByClassName
                   Highlights
                                              Web Workers*
                           applicationCache
                                              Web Sockets*
                           sessionStorage
                                              Geolocation API
                           localStorage

                           Native DnD (ha!)



Thursday, March 17, 2011
Deprecation
                   Many HTML 3/4 Elements Gone      valign

                           frameset, frames,        link, vlink, alink,
                           noframes                 text on body
                           basefont, big, center,   bgcolor
                           font, s, strike, tt, u
                                                    height and width
                   Replaced Elements
                                                    scrolling on iframe
                           abbr ! acronym,
                           object ! applet,         hspace, vspace
                           ul ! dir
                                                    cellpadding,
                   Bye Bye Attributes               cellspacing, border
                                                    on table
                           align




Thursday, March 17, 2011
CODE
                  Awww... Yeah!

Thursday, March 17, 2011
Modernizr

                   www.modernizr.com, v1.7

                   A lightweight JavaScript Library for implementing
                   Progressive Enhancement

                   Simple to Use




Thursday, March 17, 2011
Modernizr


                  <!doctype html>
                  <html class="no-js">
                  …
                      <script type="text/javascript"
                              src="/path/to/modernizr-1.7.min.js"></script>
                  …
                  </html>




Thursday, March 17, 2011
Modernizr


                  <!doctype html>
                  <html class="no-js">
                  …
                      <script type="text/javascript"
                              src="/path/to/modernizr-1.7.min.js"></script>
                  …
                  </html>




Thursday, March 17, 2011
Using Modernizr
                   Leverage What You Know

                   JavaScript
                   (function() {
                     if(Modernizr.borderradius) {
                       // enhance
                     } else {
                       // gracefully degrade
                     }
                   })();

                   CSS
                   .borderradius div aside {
                      // enhance
                   }
                   .no-borderradius div aside {
                      // gracefully degrade
                   }




Thursday, March 17, 2011
New Semantic
                  Elements

                   header, footer, nav, section, article, aside, meter,
                   progress

                   Arising from popularity of weblogs (Wordpress?)




Thursday, March 17, 2011
Semantics and IE

                           New Semantics not supported in IE 7 & 8

                           Add support
                           <!--[if lt IE 9]>
                           <script type="text/javascript">
                             document.createElement("nav");
                             …
                           <![endif]>




Thursday, March 17, 2011
Web Sockets

                   Think "Stateful Connection to Remote Server"

                   No polling

                   Implementation and Security Concerns

                   Separate Specification
                   www.w3.org/TR/websockets/




Thursday, March 17, 2011
Storage APIs
                   localStorage

                           persistent after browser session!

                           personal data?
                   (function() {
                     if(Modernizr.localStorage || window.localStorage) {
                       window.localStorage.setItem(name, value);
                       window.localStorage.getItem(name);
                     } else {
                       // gracefully degrade
                     }
                   })();


                   sessionStorage

                           Similar API to localStorage

                           not persistent across session (browser close)




Thursday, March 17, 2011
Web Workers
                   Think "multithreaded scripting engine"

                   Separate specification in WHATWG/W3C

                   Uses a messaging event API

                   postMessage

                   onMessage




Thursday, March 17, 2011
Video and Audio


                   Where promise, interop, and commerce collide

                   Many participants, Many browsers, little
                   agreement

                   Who To Watch?




Thursday, March 17, 2011
Video and Audio
                  Codecs
                   Video Codecs and Support

                   H.264 (IE9, Safari, Chrome, iOS)
                   Theora (FF, Chrome, Opera)
                   VP8 (IE9, with codec; FF4, Chrome, Opera)

                   Audio Codecs and Support

                   AAC (Safari, Chrome, iOS)
                   MP3 (IE9, Safari, Chrome, iOS)
                   Vorbis/Ogg (FF, Chrome, Opera)




Thursday, March 17, 2011
Video and Audio Code
                   Video (with Flash Support fallback!)
                   <video controls>
                     <source src="/path/to/file.mp4">
                     <source src="/path/to/file.ogv">
                     <source src="/path/to/file.webm">
                     <object ...> <!-- Flash Player --> </object>
                     <p>No support</p>
                   </video>

                   Audio Codecs and Support


                   /* in css, using Modernizr */
                   .audio .dl-mp3 { display: none; }
                   .no-audio .dl-mp3 { display:block; }
                   ...
                   <audio controls>
                     <source src="/path/to/file.ogg">
                     <source src="/path/to/file.mp3">
                   </audio>
                   <p class="dl-mp3"><a href="/path/to/file.mp3">Download</a></p>




Thursday, March 17, 2011
@fontface
                   Font Support, Finally

                   Distribution Concerns

                   Sample
                   @fontface {
                     font-family: "myawesomemetalfont";
                     src: url(/fonts/font.eot);
                     src: url(/fonts/font.woff) format ('woff'),
                          url(/fonts/font.ttf) format ('ttf');
                     font-weight: normal;
                   }



Thursday, March 17, 2011
So Much More...
                  Recommended Reading

Thursday, March 17, 2011
HTML5 and CSS3
                   Pragmatic Bookshelf, Brian Hogan, 2010

                   Unobtrusive Ajax
                   O'Reilly Shortcuts, Jesse Skinner, 2007

                   JavaScript: The Good Parts
                   O'Reilly, Douglas Crockford, 2010

                   JavaScript Patterns
                   O'Reilly, Stoyan Stefanov, 2010

                   Dive into HTML5
                   diveintohtml5.org, Mark Pilgrim

                   WHATWG Blog
                   blog.whatwg.org

                   Surfin' Safari, the WebKit Blog
                   webkit.org/blog

                   A List Apart
                   alistapart.com




Thursday, March 17, 2011
Questions..Answers



Thursday, March 17, 2011

More Related Content

Similar to Tim stone.html5.rjug.20110316

Taiwan Web Standards Talk 2011
Taiwan Web Standards Talk 2011Taiwan Web Standards Talk 2011
Taiwan Web Standards Talk 2011Zi Bin Cheah
 
Node js techtalksto
Node js techtalkstoNode js techtalksto
Node js techtalkstoJason Diller
 
HTML5 & CSS3 in Drupal (on the Bayou)
HTML5 & CSS3 in Drupal (on the Bayou)HTML5 & CSS3 in Drupal (on the Bayou)
HTML5 & CSS3 in Drupal (on the Bayou)Mediacurrent
 
The Fast, The Slow and the Lazy
The Fast, The Slow and the LazyThe Fast, The Slow and the Lazy
The Fast, The Slow and the LazyMaurício Linhares
 
Is it time to start using HTML 5
Is it time to start using HTML 5Is it time to start using HTML 5
Is it time to start using HTML 5Ravi Raj
 
JavaOne 2011 - Going Mobile With Java Based Technologies Today
JavaOne 2011 - Going Mobile With Java Based Technologies TodayJavaOne 2011 - Going Mobile With Java Based Technologies Today
JavaOne 2011 - Going Mobile With Java Based Technologies TodayWesley Hales
 
Flash Platform Ovierview
Flash Platform OvierviewFlash Platform Ovierview
Flash Platform Ovierviewluca mezzalira
 
HTML5: Building the Next Generation of Web Applications
HTML5: Building the Next Generation of Web ApplicationsHTML5: Building the Next Generation of Web Applications
HTML5: Building the Next Generation of Web ApplicationsChrome Developer Relations
 
Opera Mobile HTML5 CSS3 Standards
Opera Mobile HTML5 CSS3 StandardsOpera Mobile HTML5 CSS3 Standards
Opera Mobile HTML5 CSS3 StandardsZi Bin Cheah
 
Mwrc2011 cookbook design patterns
Mwrc2011 cookbook design patternsMwrc2011 cookbook design patterns
Mwrc2011 cookbook design patternsjtimberman
 
HTML5 and jQuery for Flex Developers
HTML5 and jQuery for Flex DevelopersHTML5 and jQuery for Flex Developers
HTML5 and jQuery for Flex DevelopersRyan Stewart
 
Sean coates fifty things and tricks, confoo 2011
Sean coates fifty things and tricks, confoo 2011Sean coates fifty things and tricks, confoo 2011
Sean coates fifty things and tricks, confoo 2011Bachkoutou Toutou
 
Flowdock's full-text search with MongoDB
Flowdock's full-text search with MongoDBFlowdock's full-text search with MongoDB
Flowdock's full-text search with MongoDBFlowdock
 
Better front-end development in Atlassian plugins
Better front-end development in Atlassian pluginsBetter front-end development in Atlassian plugins
Better front-end development in Atlassian pluginsAtlassian
 

Similar to Tim stone.html5.rjug.20110316 (20)

Taiwan Web Standards Talk 2011
Taiwan Web Standards Talk 2011Taiwan Web Standards Talk 2011
Taiwan Web Standards Talk 2011
 
Groke
GrokeGroke
Groke
 
Node js techtalksto
Node js techtalkstoNode js techtalksto
Node js techtalksto
 
HTML5 & CSS3 in Drupal (on the Bayou)
HTML5 & CSS3 in Drupal (on the Bayou)HTML5 & CSS3 in Drupal (on the Bayou)
HTML5 & CSS3 in Drupal (on the Bayou)
 
What's New in GWT 2.2
What's New in GWT 2.2What's New in GWT 2.2
What's New in GWT 2.2
 
The Fast, The Slow and the Lazy
The Fast, The Slow and the LazyThe Fast, The Slow and the Lazy
The Fast, The Slow and the Lazy
 
Is it time to start using HTML 5
Is it time to start using HTML 5Is it time to start using HTML 5
Is it time to start using HTML 5
 
JavaOne 2011 - Going Mobile With Java Based Technologies Today
JavaOne 2011 - Going Mobile With Java Based Technologies TodayJavaOne 2011 - Going Mobile With Java Based Technologies Today
JavaOne 2011 - Going Mobile With Java Based Technologies Today
 
Secrets of the GWT
Secrets of the GWTSecrets of the GWT
Secrets of the GWT
 
Flash Platform Ovierview
Flash Platform OvierviewFlash Platform Ovierview
Flash Platform Ovierview
 
HTML5: Building the Next Generation of Web Applications
HTML5: Building the Next Generation of Web ApplicationsHTML5: Building the Next Generation of Web Applications
HTML5: Building the Next Generation of Web Applications
 
Opera Mobile HTML5 CSS3 Standards
Opera Mobile HTML5 CSS3 StandardsOpera Mobile HTML5 CSS3 Standards
Opera Mobile HTML5 CSS3 Standards
 
HTML5 and XHTML2
HTML5 and XHTML2HTML5 and XHTML2
HTML5 and XHTML2
 
Mwrc2011 cookbook design patterns
Mwrc2011 cookbook design patternsMwrc2011 cookbook design patterns
Mwrc2011 cookbook design patterns
 
Anarchist guide to titanium ui
Anarchist guide to titanium uiAnarchist guide to titanium ui
Anarchist guide to titanium ui
 
HTML5 and jQuery for Flex Developers
HTML5 and jQuery for Flex DevelopersHTML5 and jQuery for Flex Developers
HTML5 and jQuery for Flex Developers
 
Sean coates fifty things and tricks, confoo 2011
Sean coates fifty things and tricks, confoo 2011Sean coates fifty things and tricks, confoo 2011
Sean coates fifty things and tricks, confoo 2011
 
Intro to HTML
Intro to HTMLIntro to HTML
Intro to HTML
 
Flowdock's full-text search with MongoDB
Flowdock's full-text search with MongoDBFlowdock's full-text search with MongoDB
Flowdock's full-text search with MongoDB
 
Better front-end development in Atlassian plugins
Better front-end development in Atlassian pluginsBetter front-end development in Atlassian plugins
Better front-end development in Atlassian plugins
 

Recently uploaded

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 

Recently uploaded (20)

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 

Tim stone.html5.rjug.20110316

  • 1. HTML4 XHTML HTML5 The Evolution, Promise and Reality of HTML5 Thursday, March 17, 2011
  • 2. About Me Senior Web Application Developer Technical Lead Barclaycard US, Wilmington, DE A SCJP Front End Engineer and UX/UI Advocate Open Source Committer to Stripes and blojsom Registered first domain in 1996 GnuPG/PGP Fingerprint 0248 FAD3 D6BE 008C 27C8 7A72 7249 DE33 22A5 2C82 Still plays D&D (not exactly) Contact: tstone@petmystone.com Thursday, March 17, 2011
  • 3. 2000 1996 2004 2008 EVOLUTION PROJECT 1996..2008 DATE CLIENT MARCH 16, 2011 RICHMOND JUG Thursday, March 17, 2011
  • 4. 12 Years Ago... HTML 2/3.2 Tables! JavaScript! Oh, My! First Browser Support 12/1994 W3C Recommendation 1/1997 Thursday, March 17, 2011
  • 6. HTML 4/4.01 Quirks vs Standards Mode First Browser Support 10/1996 W3C Recommendation 12/1999 Thursday, March 17, 2011
  • 7. XHTML 1.0/1.1 First Browser Support c. 1999 W3C Recommendation 1/2000 & 5/2001 "To Hell With Bad Browsers" - Zeldman, 2/2001 "Draconian" "Valid XHTML is really just Invalid HTML 4.01" Thursday, March 17, 2011
  • 8. XHTML 2.0 Nevermind Incompatible with XHTML 1.x XHTML2WG announces support of HTML5 5/2007 Thursday, March 17, 2011
  • 9. HTML5/XHTML5 Buzzword Ready. Cool Logo. Thursday, March 17, 2011
  • 10. Is HTML5 Ready Yet? Thursday, March 17, 2011
  • 12. http://www.flickr.com/photos/andyi/ PROMISE PROJECT INTEROPERABILITY DATE CLIENT MARCH 16, 2011 RICHMOND JUG Thursday, March 17, 2011
  • 13. Promise WHATWG Web Hypertext Application Technology Working Group A Living Document of Standards "HTML is the New HTML5" - Ian Hickson, 1/19/11 HTML5 will be a SNAPSHOT But… But... HTML is not JSON Thursday, March 17, 2011
  • 14. Where We Are A Theme Rises "Implementation Trumps Specification" Molly Holzschlag, Opera @ Philly ETE 2010 CSS 2.1? Thursday, March 17, 2011
  • 15. Where We Are Going A bellwether Omniture Summit 2010 "This is application development now people." Molly Holzschlag, Opera Thursday, March 17, 2011
  • 16. APIs 22 APIs Native getElementsByClassName Highlights Web Workers* applicationCache Web Sockets* sessionStorage Geolocation API localStorage Native DnD (ha!) Thursday, March 17, 2011
  • 17. Deprecation Many HTML 3/4 Elements Gone valign frameset, frames, link, vlink, alink, noframes text on body basefont, big, center, bgcolor font, s, strike, tt, u height and width Replaced Elements scrolling on iframe abbr ! acronym, object ! applet, hspace, vspace ul ! dir cellpadding, Bye Bye Attributes cellspacing, border on table align Thursday, March 17, 2011
  • 18. CODE Awww... Yeah! Thursday, March 17, 2011
  • 19. Modernizr www.modernizr.com, v1.7 A lightweight JavaScript Library for implementing Progressive Enhancement Simple to Use Thursday, March 17, 2011
  • 20. Modernizr <!doctype html> <html class="no-js"> … <script type="text/javascript" src="/path/to/modernizr-1.7.min.js"></script> … </html> Thursday, March 17, 2011
  • 21. Modernizr <!doctype html> <html class="no-js"> … <script type="text/javascript" src="/path/to/modernizr-1.7.min.js"></script> … </html> Thursday, March 17, 2011
  • 22. Using Modernizr Leverage What You Know JavaScript (function() { if(Modernizr.borderradius) { // enhance } else { // gracefully degrade } })(); CSS .borderradius div aside { // enhance } .no-borderradius div aside { // gracefully degrade } Thursday, March 17, 2011
  • 23. New Semantic Elements header, footer, nav, section, article, aside, meter, progress Arising from popularity of weblogs (Wordpress?) Thursday, March 17, 2011
  • 24. Semantics and IE New Semantics not supported in IE 7 & 8 Add support <!--[if lt IE 9]> <script type="text/javascript"> document.createElement("nav"); … <![endif]> Thursday, March 17, 2011
  • 25. Web Sockets Think "Stateful Connection to Remote Server" No polling Implementation and Security Concerns Separate Specification www.w3.org/TR/websockets/ Thursday, March 17, 2011
  • 26. Storage APIs localStorage persistent after browser session! personal data? (function() { if(Modernizr.localStorage || window.localStorage) { window.localStorage.setItem(name, value); window.localStorage.getItem(name); } else { // gracefully degrade } })(); sessionStorage Similar API to localStorage not persistent across session (browser close) Thursday, March 17, 2011
  • 27. Web Workers Think "multithreaded scripting engine" Separate specification in WHATWG/W3C Uses a messaging event API postMessage onMessage Thursday, March 17, 2011
  • 28. Video and Audio Where promise, interop, and commerce collide Many participants, Many browsers, little agreement Who To Watch? Thursday, March 17, 2011
  • 29. Video and Audio Codecs Video Codecs and Support H.264 (IE9, Safari, Chrome, iOS) Theora (FF, Chrome, Opera) VP8 (IE9, with codec; FF4, Chrome, Opera) Audio Codecs and Support AAC (Safari, Chrome, iOS) MP3 (IE9, Safari, Chrome, iOS) Vorbis/Ogg (FF, Chrome, Opera) Thursday, March 17, 2011
  • 30. Video and Audio Code Video (with Flash Support fallback!) <video controls> <source src="/path/to/file.mp4"> <source src="/path/to/file.ogv"> <source src="/path/to/file.webm"> <object ...> <!-- Flash Player --> </object> <p>No support</p> </video> Audio Codecs and Support /* in css, using Modernizr */ .audio .dl-mp3 { display: none; } .no-audio .dl-mp3 { display:block; } ... <audio controls> <source src="/path/to/file.ogg"> <source src="/path/to/file.mp3"> </audio> <p class="dl-mp3"><a href="/path/to/file.mp3">Download</a></p> Thursday, March 17, 2011
  • 31. @fontface Font Support, Finally Distribution Concerns Sample @fontface { font-family: "myawesomemetalfont"; src: url(/fonts/font.eot); src: url(/fonts/font.woff) format ('woff'), url(/fonts/font.ttf) format ('ttf'); font-weight: normal; } Thursday, March 17, 2011
  • 32. So Much More... Recommended Reading Thursday, March 17, 2011
  • 33. HTML5 and CSS3 Pragmatic Bookshelf, Brian Hogan, 2010 Unobtrusive Ajax O'Reilly Shortcuts, Jesse Skinner, 2007 JavaScript: The Good Parts O'Reilly, Douglas Crockford, 2010 JavaScript Patterns O'Reilly, Stoyan Stefanov, 2010 Dive into HTML5 diveintohtml5.org, Mark Pilgrim WHATWG Blog blog.whatwg.org Surfin' Safari, the WebKit Blog webkit.org/blog A List Apart alistapart.com Thursday, March 17, 2011