SlideShare a Scribd company logo
1 of 14
HTML5: Next Generation Web Development




                         Tilak Joshi
                         Senior Web Architect
                         NASA Goddard Space Flight Center (Contractor)
                         August 17th 2011
What is HTML5?
“HTML5 is a language for structuring and presenting content for the World Wide Web, a core technology of the Internet. It is the fifth
 revision of the HTML standard (originally created in 1990 and most recently standardized as HTML4 in 1997[1]) and as of August 2011[update]
 is still under development. Its core aims have been to improve the language with support for the latest multimedia while keeping it easily
 readable by humans and consistently understood by computers and devices (web browsers, parsers etc.). HTML5 is intended to subsume
 not only HTML4, but XHTML1 and DOM2HTML (particularly JavaScript) as well.[1]” – Wikipedia
What is HTML5?
HTML5 is the up and coming standard for next generation web development. It reduces focus on syntax and
increases focus on features. It was created by developers and browsers to facilitate web programming and increase
focus on more dynamic content.

Included Features
• New Elements ( <article>,<section>,<aside>,<nav>, etc.)
• Native Audio/Video Support
• Drawing APIs (Canvas, SVG, MathML, WebGL)
• Geolocation
• Drag and Drop
• Web Forms 2.0
• Microdata
• Local Storage
• Web Sockets
• Web Workers

Fun Facts
• HTML5 is the brainchild of WHATWG and was adopted by the W3C after much hesitation
• Apple’s ongoing battle with Adobe was sparked by Apple choosing to support HTML5 over Flash
• Contrary to popular belief, almost all current browsers provide support for most HTML5 features
                                                                                                    Official HTML5 Logo
New Elements in HTML5
All new tags maintain the same style and element properties as <div> but have special meaning and possibly
special interpretations by markup readers (crawlers) or browsers. When declaring these tags, in order to maintain
backwards compatibility, style them as display:block in your stylesheet or internal style.

These are most of the more important tags:

• <article> – external content (news articles, blogs, etc)
• <section> – sections of the web page (can contain multiple <article> tags)
• <aside> - content related to, but not part of, the primary content
• <nav>,<menu> - the primary navigation, any subnavigation
• <header> - section before body, at the beginning of the page
• <footer> - section after body, at the end of the page
• <hgroup> - a group of headers (<h1> to <h6> tags)
• <time> - a date or time
• <figure>,<figcaption> - a figure and a caption describing it (could be a video or image)
Native Audio/Video Support
Current versions of browsers support audio/video, basic controls, a poster for video, duration hint, and more. They
allow VP8, H.264, and OGG formats depending on browser, and allow you to specify a codec in the declaration.

Code (Video):
<video id="video1" width="480" height="260" poster=”firstframe.jpg" durationHint=”59" >
      <source type="video/webm" src=“vid.webm" />
      <source src=“vid.mp4"/>
      <source src=“vid.ogv" />
      <p>Error: video not supported</p>
</video>


Code (Audio):
<audio src="song.ogg" controls="controls">
      Your browser does not support the audio element.
</audio>


Supported Formats (video; audio):
Mozilla Firefox – OGG, VP8; OGG, WAV
Internet Explorer – H.264 natively, OGG and VP8 with manual install; MP3 WAV
Google Chrome – OGG, H.264 (to be discontinued), VP8; OGG, WAV
Apple Safari – H.264 natively, OGG and VP8 with manual install; MP3, WAV
Opera – OGG, VP8; OGG, WAV
Drawing API
HTML5 supports many different APIs for drawing, eliminating the need for Flash, SilverLight, or other third-party
tools. Currently supported APIs include Canvas and SVG. Partially supported APIs include MathML and WebGL.

Canvas:
HTML
<canvas id=”canvas1" width=”600" height="200"> </canvas>

JavaScript
window.onload = function(){
      var canvas = document.getElementById("myCanvas");
      var context = canvas.getContext("2d");
      context.moveTo(100, 150);
      context.lineTo(450, 50);
      context.lineWidth = 10;
      context.strokeStyle = "#ff0000"; // line color
      context.stroke();
};



SVG:
HTML
<svg id=”svg1” xmlns="http://www.w3.org/2000/svg">
       <circle id=”circle1" cx="50" cy="50" r="50" fill="red" />
</svg>
Geolocation
Geolocation provides the user’s location. This is the closest position the User Agent can obtain, which in the case of a GPS
enabled device is exact, and in the case of non-GPS enabled device is the location from the IP address, closest cell phone
tower, or wireless network connection.

Code:
function get_location() {
      navigator.geolocation.getCurrentPosition( handlePosition );
}

function handlePosition(position){
      var longitude = position.coords.longitude;
      var latitude = position.coords.latitude;

        // use this info
}

Properties:
coords.latitude – decimal degrees
coords.longitude – decimal degrees
coords.altitude - meters
coords.accuracy - meters
coords.speed – meters/second
coords.altitudeAccuracy - meters
coords.heading – degrees clockwise from true north
timestamp – Date() Object

Warning:
User has to allow the browser to share their location. It is good practice to not to depend on this data.
Drag and Drop
Drag and Drop is natively allowed by overriding the default browser event of objects snapping back in place.

Code:
HTML
<div id=‘drag1’ draggable=‘true’>I’m Drag1</div>
<div id=‘drag2’ draggable=‘true’>I’m Drag2</div>
<div id=‘dropArea’ ></div>

JavaScript
function allowDrop(e){
      if(e.preventDefault){
            e.preventDefault();
      }
      return false;
}
var dropArea = document.getElementById(‘dropArea’);
dropArea.ondragenter = allowDrop;
dropArea.ondragover = allowDrop;


New Events:
ondragstart – when the draggable item begins to get dragged
ondragenter – when the draggable item enters the droppable area
ondragover – when the draggable item is in the droppable area
ondrop – when the draggable item is dropped
Web Forms 2.0
HTML5 has taken the more common recent input fields and officially standardized them. It provides browser built-
in GUI and basic validation as required.

New Input Types:
email – current validation checks for ‘@’ sign and ‘.’
url – current validation checks for ‘.’
number – provides up and down arrows on the gui, and validates for a number
range – provides a slider on the gui, and validates for a number
date (date, month, week, time, datetime, datetime-local) – shows a picker
search – currently behaves like a regular ‘text’ field
color – provides a color picker on the gui


New Input Type Attributes:
min – min for the number (works for number and range types)
max – max for the number (works for number and range types)
step – step increment for the number (works for number and range types)


Notes:
Support is currently limited, but coming soon. It is encouraged to use it with shims and polyfills as support comes soon. There will be
variation in the GUI and validation as each browser can handle the look and feel of the additional displayed features and the exact
validation.
Additional Features
Microdata, Local Storage, and Web Workers are some of the additional features available in HTML5.

Microdata:
Specifies additional markup language, as per the specified namespace, to identify reviews, recipes, authors, businesses, products, and other
information. This is most useful for screen readers like Google’s crawler to read and identify your content more accurately.


Local Storage:
Information can be stored in the browser without using cookies. This is less overhead and easy access to a lot of data in JSON format but it
is not safe for secure data.


Web Workers:
This is a method for running javascript concurrently and making use of multiple processor CPUs.


Additional Features:
WebSockets, native JSON functions, Cross Domain Requests using AJAX
Backwards Compatibility
Polyfills or polyfiller or shim, is a piece of code (or plugin) that provides the technology that you, the developer, expect the
browser to provide natively. Flattening the API landscape if you will. They can use third party technologies like Flash, SilverLight,
or JavaScript and JQuery libraries.

Modernizr:
Modernizr.load({
       test: Modernizr.geolocation,
       yep : 'geo.js',
       nope: 'geo-polyfill.js'
});


WebShims:
WebShims is a JavaScript library built on JQuery that provides polyfills for the most commonly used HTML5 features.
$.webshims.setOptions('canvas', { type: 'flashpro' //excanvas | flash | flashpro });



Notes:
There are polyfills available for every feature that I have covered and many more. These polyfills support browsers starting from IE6+,
Firefox 3+ and more. This is a quick and easy method that increases browser compatibility until all browsers have full support for HTML5.
Future versions of Modernizr 2.0 will have WebShims built in.
508 Compliance
HTML5 does not hinder 508 compliance as everything that is visual does not apply, and everything that is not has
similar fallbacks as HTML4 or XHTML (i.e. title tags, labels for inputs). The more descriptive tags and microdata
allow a possibility for many 508 enhancements in the future.



•All new elements available in HTML5 are the equivalent of HTML divs and can handle the ‘title’ attribute

• The media-rich enhancements are just that, ‘enhancements.’ There should be text counterparts for functionality

• Microdata offers better compliance options in the future

• Better tag structure offers more options for future screen readers for compliance
Extras: CSS3 Additions
New attributes:
•   border-image
•   border-radius
•   @font-family
•   box-shadow
•   text-shadow


Browser specific attributes:
• -moz (Mozilla Browsers)
• -o (Mozilla Browsers)
• -webkit (Mozilla Browsers)
Questions?

More Related Content

What's hot

Building Real-World Dojo Web Applications
Building Real-World Dojo Web ApplicationsBuilding Real-World Dojo Web Applications
Building Real-World Dojo Web ApplicationsAndrew Ferrier
 
JavaONE 2012 Using Java with HTML5 and CSS3
JavaONE 2012 Using Java with HTML5 and CSS3JavaONE 2012 Using Java with HTML5 and CSS3
JavaONE 2012 Using Java with HTML5 and CSS3Helder da Rocha
 
jQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesjQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesTeamstudio
 
Using Web Standards to create Interactive Data Visualizations for the Web
Using Web Standards to create Interactive Data Visualizations for the WebUsing Web Standards to create Interactive Data Visualizations for the Web
Using Web Standards to create Interactive Data Visualizations for the Webphilogb
 
Dynamic User Interfaces for Desktop and Mobile
Dynamic User Interfaces for Desktop and MobileDynamic User Interfaces for Desktop and Mobile
Dynamic User Interfaces for Desktop and Mobilepeychevi
 
Brave new world of HTML5 - Interlink Conference Vancouver 04.06.2011
Brave new world of HTML5 - Interlink Conference Vancouver 04.06.2011Brave new world of HTML5 - Interlink Conference Vancouver 04.06.2011
Brave new world of HTML5 - Interlink Conference Vancouver 04.06.2011Patrick Lauke
 
Dojo - from web page to web apps
Dojo - from web page to web appsDojo - from web page to web apps
Dojo - from web page to web appsyoavrubin
 
Web Components v1
Web Components v1Web Components v1
Web Components v1Mike Wilcox
 
jQuery Comes to XPages
jQuery Comes to XPagesjQuery Comes to XPages
jQuery Comes to XPagesTeamstudio
 
Rich internet application development using the dojo toolkit
Rich internet application development using the dojo toolkitRich internet application development using the dojo toolkit
Rich internet application development using the dojo toolkitalexklaeser
 
Great Responsive-ability Web Design
Great Responsive-ability Web DesignGreat Responsive-ability Web Design
Great Responsive-ability Web DesignMike Wilcox
 
Google Dev Day2007
Google Dev Day2007Google Dev Day2007
Google Dev Day2007lucclaes
 
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Sadaaki HIRAI
 
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考えるIt is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考えるSadaaki HIRAI
 
Getting Started with HTML5 in Tech Com (STC 2012)
Getting Started with HTML5 in Tech Com (STC 2012)Getting Started with HTML5 in Tech Com (STC 2012)
Getting Started with HTML5 in Tech Com (STC 2012)Peter Lubbers
 
CiklumJavaSat15112011:Andrew Mormysh-GWT features overview
CiklumJavaSat15112011:Andrew Mormysh-GWT features overviewCiklumJavaSat15112011:Andrew Mormysh-GWT features overview
CiklumJavaSat15112011:Andrew Mormysh-GWT features overviewCiklum Ukraine
 
HTML5ではないサイトを HTML5へ - Change HTML5 from Not HTML5.
HTML5ではないサイトを HTML5へ - Change HTML5 from Not HTML5.HTML5ではないサイトを HTML5へ - Change HTML5 from Not HTML5.
HTML5ではないサイトを HTML5へ - Change HTML5 from Not HTML5.Sadaaki HIRAI
 

What's hot (20)

Word camp nextweb
Word camp nextwebWord camp nextweb
Word camp nextweb
 
Building Real-World Dojo Web Applications
Building Real-World Dojo Web ApplicationsBuilding Real-World Dojo Web Applications
Building Real-World Dojo Web Applications
 
JavaONE 2012 Using Java with HTML5 and CSS3
JavaONE 2012 Using Java with HTML5 and CSS3JavaONE 2012 Using Java with HTML5 and CSS3
JavaONE 2012 Using Java with HTML5 and CSS3
 
jQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesjQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPages
 
Using Web Standards to create Interactive Data Visualizations for the Web
Using Web Standards to create Interactive Data Visualizations for the WebUsing Web Standards to create Interactive Data Visualizations for the Web
Using Web Standards to create Interactive Data Visualizations for the Web
 
Edge of the Web
Edge of the WebEdge of the Web
Edge of the Web
 
Html5 more than just html5 v final
Html5  more than just html5 v finalHtml5  more than just html5 v final
Html5 more than just html5 v final
 
Dynamic User Interfaces for Desktop and Mobile
Dynamic User Interfaces for Desktop and MobileDynamic User Interfaces for Desktop and Mobile
Dynamic User Interfaces for Desktop and Mobile
 
Brave new world of HTML5 - Interlink Conference Vancouver 04.06.2011
Brave new world of HTML5 - Interlink Conference Vancouver 04.06.2011Brave new world of HTML5 - Interlink Conference Vancouver 04.06.2011
Brave new world of HTML5 - Interlink Conference Vancouver 04.06.2011
 
Dojo - from web page to web apps
Dojo - from web page to web appsDojo - from web page to web apps
Dojo - from web page to web apps
 
Web Components v1
Web Components v1Web Components v1
Web Components v1
 
jQuery Comes to XPages
jQuery Comes to XPagesjQuery Comes to XPages
jQuery Comes to XPages
 
Rich internet application development using the dojo toolkit
Rich internet application development using the dojo toolkitRich internet application development using the dojo toolkit
Rich internet application development using the dojo toolkit
 
Great Responsive-ability Web Design
Great Responsive-ability Web DesignGreat Responsive-ability Web Design
Great Responsive-ability Web Design
 
Google Dev Day2007
Google Dev Day2007Google Dev Day2007
Google Dev Day2007
 
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
 
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考えるIt is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
 
Getting Started with HTML5 in Tech Com (STC 2012)
Getting Started with HTML5 in Tech Com (STC 2012)Getting Started with HTML5 in Tech Com (STC 2012)
Getting Started with HTML5 in Tech Com (STC 2012)
 
CiklumJavaSat15112011:Andrew Mormysh-GWT features overview
CiklumJavaSat15112011:Andrew Mormysh-GWT features overviewCiklumJavaSat15112011:Andrew Mormysh-GWT features overview
CiklumJavaSat15112011:Andrew Mormysh-GWT features overview
 
HTML5ではないサイトを HTML5へ - Change HTML5 from Not HTML5.
HTML5ではないサイトを HTML5へ - Change HTML5 from Not HTML5.HTML5ではないサイトを HTML5へ - Change HTML5 from Not HTML5.
HTML5ではないサイトを HTML5へ - Change HTML5 from Not HTML5.
 

Similar to HTML5: An Introduction To Next Generation Web Development

Similar to HTML5: An Introduction To Next Generation Web Development (20)

Html5
Html5Html5
Html5
 
5. HTML5
5. HTML55. HTML5
5. HTML5
 
WordCamp Thessaloniki2011 The NextWeb
WordCamp Thessaloniki2011 The NextWebWordCamp Thessaloniki2011 The NextWeb
WordCamp Thessaloniki2011 The NextWeb
 
Word camp nextweb
Word camp nextwebWord camp nextweb
Word camp nextweb
 
Html5 Future of WEB
Html5 Future of WEBHtml5 Future of WEB
Html5 Future of WEB
 
HTML5 introduction for beginners
HTML5 introduction for beginnersHTML5 introduction for beginners
HTML5 introduction for beginners
 
Html5 overview
Html5 overviewHtml5 overview
Html5 overview
 
Html5 Basics
Html5 BasicsHtml5 Basics
Html5 Basics
 
HTML5 Presentation
HTML5 PresentationHTML5 Presentation
HTML5 Presentation
 
HTML 5
HTML 5HTML 5
HTML 5
 
HTML 5
HTML 5HTML 5
HTML 5
 
WHAT IS HTML5? (at CSS Nite Osaka)
WHAT IS HTML5? (at CSS Nite Osaka)WHAT IS HTML5? (at CSS Nite Osaka)
WHAT IS HTML5? (at CSS Nite Osaka)
 
Html 5
Html 5Html 5
Html 5
 
What is HTML 5?
What is HTML 5?What is HTML 5?
What is HTML 5?
 
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
 
HTML5 Intoduction for Web Developers
HTML5 Intoduction for Web DevelopersHTML5 Intoduction for Web Developers
HTML5 Intoduction for Web Developers
 
HTML5 Technical Executive Summary
HTML5 Technical Executive SummaryHTML5 Technical Executive Summary
HTML5 Technical Executive Summary
 
Everything you need to know about HTML5 in 15 min
Everything you need to know about HTML5 in 15 minEverything you need to know about HTML5 in 15 min
Everything you need to know about HTML5 in 15 min
 
Html5 workshop part 1
Html5 workshop part 1Html5 workshop part 1
Html5 workshop part 1
 
Html5
Html5Html5
Html5
 

Recently uploaded

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 

Recently uploaded (20)

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 

HTML5: An Introduction To Next Generation Web Development

  • 1. HTML5: Next Generation Web Development Tilak Joshi Senior Web Architect NASA Goddard Space Flight Center (Contractor) August 17th 2011
  • 2. What is HTML5? “HTML5 is a language for structuring and presenting content for the World Wide Web, a core technology of the Internet. It is the fifth revision of the HTML standard (originally created in 1990 and most recently standardized as HTML4 in 1997[1]) and as of August 2011[update] is still under development. Its core aims have been to improve the language with support for the latest multimedia while keeping it easily readable by humans and consistently understood by computers and devices (web browsers, parsers etc.). HTML5 is intended to subsume not only HTML4, but XHTML1 and DOM2HTML (particularly JavaScript) as well.[1]” – Wikipedia
  • 3. What is HTML5? HTML5 is the up and coming standard for next generation web development. It reduces focus on syntax and increases focus on features. It was created by developers and browsers to facilitate web programming and increase focus on more dynamic content. Included Features • New Elements ( <article>,<section>,<aside>,<nav>, etc.) • Native Audio/Video Support • Drawing APIs (Canvas, SVG, MathML, WebGL) • Geolocation • Drag and Drop • Web Forms 2.0 • Microdata • Local Storage • Web Sockets • Web Workers Fun Facts • HTML5 is the brainchild of WHATWG and was adopted by the W3C after much hesitation • Apple’s ongoing battle with Adobe was sparked by Apple choosing to support HTML5 over Flash • Contrary to popular belief, almost all current browsers provide support for most HTML5 features Official HTML5 Logo
  • 4. New Elements in HTML5 All new tags maintain the same style and element properties as <div> but have special meaning and possibly special interpretations by markup readers (crawlers) or browsers. When declaring these tags, in order to maintain backwards compatibility, style them as display:block in your stylesheet or internal style. These are most of the more important tags: • <article> – external content (news articles, blogs, etc) • <section> – sections of the web page (can contain multiple <article> tags) • <aside> - content related to, but not part of, the primary content • <nav>,<menu> - the primary navigation, any subnavigation • <header> - section before body, at the beginning of the page • <footer> - section after body, at the end of the page • <hgroup> - a group of headers (<h1> to <h6> tags) • <time> - a date or time • <figure>,<figcaption> - a figure and a caption describing it (could be a video or image)
  • 5. Native Audio/Video Support Current versions of browsers support audio/video, basic controls, a poster for video, duration hint, and more. They allow VP8, H.264, and OGG formats depending on browser, and allow you to specify a codec in the declaration. Code (Video): <video id="video1" width="480" height="260" poster=”firstframe.jpg" durationHint=”59" > <source type="video/webm" src=“vid.webm" /> <source src=“vid.mp4"/> <source src=“vid.ogv" /> <p>Error: video not supported</p> </video> Code (Audio): <audio src="song.ogg" controls="controls"> Your browser does not support the audio element. </audio> Supported Formats (video; audio): Mozilla Firefox – OGG, VP8; OGG, WAV Internet Explorer – H.264 natively, OGG and VP8 with manual install; MP3 WAV Google Chrome – OGG, H.264 (to be discontinued), VP8; OGG, WAV Apple Safari – H.264 natively, OGG and VP8 with manual install; MP3, WAV Opera – OGG, VP8; OGG, WAV
  • 6. Drawing API HTML5 supports many different APIs for drawing, eliminating the need for Flash, SilverLight, or other third-party tools. Currently supported APIs include Canvas and SVG. Partially supported APIs include MathML and WebGL. Canvas: HTML <canvas id=”canvas1" width=”600" height="200"> </canvas> JavaScript window.onload = function(){ var canvas = document.getElementById("myCanvas"); var context = canvas.getContext("2d"); context.moveTo(100, 150); context.lineTo(450, 50); context.lineWidth = 10; context.strokeStyle = "#ff0000"; // line color context.stroke(); }; SVG: HTML <svg id=”svg1” xmlns="http://www.w3.org/2000/svg"> <circle id=”circle1" cx="50" cy="50" r="50" fill="red" /> </svg>
  • 7. Geolocation Geolocation provides the user’s location. This is the closest position the User Agent can obtain, which in the case of a GPS enabled device is exact, and in the case of non-GPS enabled device is the location from the IP address, closest cell phone tower, or wireless network connection. Code: function get_location() { navigator.geolocation.getCurrentPosition( handlePosition ); } function handlePosition(position){ var longitude = position.coords.longitude; var latitude = position.coords.latitude; // use this info } Properties: coords.latitude – decimal degrees coords.longitude – decimal degrees coords.altitude - meters coords.accuracy - meters coords.speed – meters/second coords.altitudeAccuracy - meters coords.heading – degrees clockwise from true north timestamp – Date() Object Warning: User has to allow the browser to share their location. It is good practice to not to depend on this data.
  • 8. Drag and Drop Drag and Drop is natively allowed by overriding the default browser event of objects snapping back in place. Code: HTML <div id=‘drag1’ draggable=‘true’>I’m Drag1</div> <div id=‘drag2’ draggable=‘true’>I’m Drag2</div> <div id=‘dropArea’ ></div> JavaScript function allowDrop(e){ if(e.preventDefault){ e.preventDefault(); } return false; } var dropArea = document.getElementById(‘dropArea’); dropArea.ondragenter = allowDrop; dropArea.ondragover = allowDrop; New Events: ondragstart – when the draggable item begins to get dragged ondragenter – when the draggable item enters the droppable area ondragover – when the draggable item is in the droppable area ondrop – when the draggable item is dropped
  • 9. Web Forms 2.0 HTML5 has taken the more common recent input fields and officially standardized them. It provides browser built- in GUI and basic validation as required. New Input Types: email – current validation checks for ‘@’ sign and ‘.’ url – current validation checks for ‘.’ number – provides up and down arrows on the gui, and validates for a number range – provides a slider on the gui, and validates for a number date (date, month, week, time, datetime, datetime-local) – shows a picker search – currently behaves like a regular ‘text’ field color – provides a color picker on the gui New Input Type Attributes: min – min for the number (works for number and range types) max – max for the number (works for number and range types) step – step increment for the number (works for number and range types) Notes: Support is currently limited, but coming soon. It is encouraged to use it with shims and polyfills as support comes soon. There will be variation in the GUI and validation as each browser can handle the look and feel of the additional displayed features and the exact validation.
  • 10. Additional Features Microdata, Local Storage, and Web Workers are some of the additional features available in HTML5. Microdata: Specifies additional markup language, as per the specified namespace, to identify reviews, recipes, authors, businesses, products, and other information. This is most useful for screen readers like Google’s crawler to read and identify your content more accurately. Local Storage: Information can be stored in the browser without using cookies. This is less overhead and easy access to a lot of data in JSON format but it is not safe for secure data. Web Workers: This is a method for running javascript concurrently and making use of multiple processor CPUs. Additional Features: WebSockets, native JSON functions, Cross Domain Requests using AJAX
  • 11. Backwards Compatibility Polyfills or polyfiller or shim, is a piece of code (or plugin) that provides the technology that you, the developer, expect the browser to provide natively. Flattening the API landscape if you will. They can use third party technologies like Flash, SilverLight, or JavaScript and JQuery libraries. Modernizr: Modernizr.load({ test: Modernizr.geolocation, yep : 'geo.js', nope: 'geo-polyfill.js' }); WebShims: WebShims is a JavaScript library built on JQuery that provides polyfills for the most commonly used HTML5 features. $.webshims.setOptions('canvas', { type: 'flashpro' //excanvas | flash | flashpro }); Notes: There are polyfills available for every feature that I have covered and many more. These polyfills support browsers starting from IE6+, Firefox 3+ and more. This is a quick and easy method that increases browser compatibility until all browsers have full support for HTML5. Future versions of Modernizr 2.0 will have WebShims built in.
  • 12. 508 Compliance HTML5 does not hinder 508 compliance as everything that is visual does not apply, and everything that is not has similar fallbacks as HTML4 or XHTML (i.e. title tags, labels for inputs). The more descriptive tags and microdata allow a possibility for many 508 enhancements in the future. •All new elements available in HTML5 are the equivalent of HTML divs and can handle the ‘title’ attribute • The media-rich enhancements are just that, ‘enhancements.’ There should be text counterparts for functionality • Microdata offers better compliance options in the future • Better tag structure offers more options for future screen readers for compliance
  • 13. Extras: CSS3 Additions New attributes: • border-image • border-radius • @font-family • box-shadow • text-shadow Browser specific attributes: • -moz (Mozilla Browsers) • -o (Mozilla Browsers) • -webkit (Mozilla Browsers)