SlideShare a Scribd company logo
1 of 80
Download to read offline
HTML5
DevFest 2013
Caesar Mukama
Work as
Front End Designer
for MyZiki Ltd.
Contact me at
mcaesar88@gmail.com
On the menu
● Why HTML5 is important.
● Structure
● Form Input Types and Tags
● 3 New Tags
● Features
● Error Handling
● Summary
What is HTML5?
HTML5 = XHTML + NEW MARKUP + JS APIS
Why is HTML5 important?
New Industry Standard
Starting 2014
Reduced Development
Time
Preloaded with some
CSS3 Bling
Lots of new
Features
Mobile
Friendly
HTML5 XHTML
HTML5 Structure
XHTML
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Page Title</title>
<link rel="stylesheet" href="style.css" type="text/css" media="screen" charset="
utf-8"/>
</head>
<body>
...
</body>
</html>
… minus XML declaration
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Page Title</title>
<link rel="stylesheet" href="style.css" type="text/css" media="screen" charset="
utf-8"/>
</head>
<body>
...
</body>
</html>
... minus DOCTYPE attributes
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Page Title</title>
<link rel="stylesheet" href="style.css" type="text/css" media="screen" charset="
utf-8"/>
</head>
<body>
...
</body>
</html>
… plus short meta content
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Page Title</title>
<link rel="stylesheet" href="style.css" type="text/css" media="screen" charset="
utf-8"/>
</head>
<body>
...
</body>
</html>
… minus useless definitions
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Page Title</title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
...
</body>
</html>
= HTML5
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Page Title</title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
...
</body>
</html>
That’s why we need HTML5.
28 Tags, 13 Form Input Types
New Tags
article, aside, audio, canvas,
command, datalist, details, embed,
figcaption, figure, footer,
header, hgroup, keygen, mark,
meter, nav, output, progress, rp,
rt, ruby, section, source,
summary, time, video, wbr
New Input Types
color, date, datetime,
datetime-local, email,
month, number, range,
search, tel, time,
url, week
Where did they come from?
Source: https://developers.google.com/webmasters/state-of-the-web/2005/classes
Top 20 Class Names
<div class=”header”>
<div class=”header”>
<div class=”section”>
<div class=”article”>
<div class=”footer”>
<div class=”footer”>
<div class=”nav”>
<div
class=”aside”>
<header>
<header>
<section>
<article>
<footer>
<footer>
<nav>
<aside>
28 Tags, 13 Form Input Types
New Tags
article, aside, audio, canvas,
command, datalist, details, embed,
figcaption, figure, footer,
header, hgroup, keygen, mark,
meter, nav, output, progress, rp,
rt, ruby, section, source,
summary, time, video, wbr
New Input Types
color, date, datetime,
datetime-local, email,
month, number, range,
search, tel, time,
url, week
28 Tags, 13 Form Input Types
New Tags
article, aside, audio, canvas,
command, datalist, details, embed,
figcaption, figure, footer,
header, hgroup, keygen, mark,
meter, nav, output, progress, rp,
rt, ruby, section, source,
summary, time, video, wbr
New Input Types
color, date, datetime,
datetime-local, email,
month, number, range,
search, tel, time,
url, week
<input id="event” placeholder="DevFest Makerere">
<input id=”firstName” required>
<input id=”lastName” autofocus pattern=[a-zA-Z]>
<input id="event” placeholder="DevFest Makerere">
<input id=”firstName” required>
<input id=”lastName” autofocus pattern=[a-zA-Z]>
<input type="color" name="favcolor">
<input type="date" name="birthday">
<input type="datetime" name="bdaytime">
<input type="number" name="quantity" min="1" max="5">
<input type="range" name="points" min="1" max="10">
<input id="event” placeholder="DevFest Makerere">
<input id=”firstName” required>
<input id=”lastName” autofocus pattern=[a-zA-Z]>
<input type="color" name="favcolor">
<input type="date" name="birthday">
<input type="datetime" name="bdaytime">
<input type="number" name="quantity" min="1" max="5">
<input type="range" name="points" min="1" max="10">
… much more.
28 Tags, 13 Form Input Types
New Tags
article, aside, audio, canvas,
command, datalist, details, embed,
figcaption, figure, footer,
header, hgroup, keygen, mark,
meter, nav, output, progress, rp,
rt, ruby, section, source,
summary, time, video, wbr
New Input Types
color, date, datetime,
datetime-local, email,
month, number, range,
search, tel, time,
url, week
28 Tags, 13 Form Input Types
New Tags
article, aside, audio, canvas,
command, datalist, details, embed,
figcaption, figure, footer,
header, hgroup, keygen, mark,
meter, nav, output, progress, rp,
rt, ruby, section, source,
summary, time, video, wbr
New Input Types
color, date, datetime,
datetime-local, email,
month, number, range,
search, tel, time,
url, week
Why do we need a video and an audio element?
Thousands of audio and video services
was meant for foreign objects
<object> … </object>
was meant for foreign objects
<object> … </object>
but video and audio are NOT foreign
plugins are foreign objects
<video width="320" height="240" controls src="movie.mp4" type="video/mp4" />
Syntax ?
<video width="320" height="240" controls src="movie.mp4" type="video/mp4" />
Syntax ?
<video width="320" height="240" controls src="movie.mp4" type="video/mp4" />
Syntax ?
Correct Syntax
<video width="320" height="240" controls>
<source src="movie.mp4" type="video/mp4">
<source src="movie.ogg" type="video/ogg">
<source src="movie.webm" type="video/webm">
<object data="movie.mp4" width="320" height="240">
<embed src="movie.swf" width="320" height="240">
</object>
</video>
Confused?
Confused?
All browser should have at least 2 new
Codes by default:
HTML5 Specifications said...
All browser should have at least 2 new
Codes by default:
● Ogg Vorbis for audio
● Ogg Theora for video
HTML5 Specifications said...
Google was onboard,
Everyone followed
Google was onboard,
Everyone followed
BUT
Apple and Nokia Said No.
MPEG LA
.mp3, .mp4, .m4a, .mpg ...
MPEG LA
● MPEG better quality
● Already most widely used
● Xiph.com’s BDS license not open source.
Their Suggested alternative
● H.264/MPEG most relevant video encoding
● MP3, AAC best audio compression and
quality.
Their argument
Audio & video specification is incomplete
What to do ...for now?
● Convert videos to multiple formats
● Use multiple sources
● Then control with js
FOR NOW!
<video width="320" height="240" controls>
<source src="movie.mp4" type="video/mp4">
<source src="movie.ogg" type="video/ogg">
<source src="movie.webm" type="video/webm">
<object data="movie.mp4" width="320" height="240">
<embed src="movie.swf" width="320" height="240">
</object>
</video>
Canvas
Just like MS Paint...
… in your browser.
Paint with javascript instead of a brush
Paint with javascript instead of a brush
<!DOCTYPE html>
<html>
<script>
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.beginPath();
ctx.arc(95,50,40,0,2*Math.PI);
ctx.stroke();
ctx.fill();
</script>
<body>
<canvas id="myCanvas" width="200" height="100"></canvas>
</body>
</html>
Paint with javascript instead of a brush
<!DOCTYPE html>
<html>
<script>
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.beginPath();
ctx.arc(95,50,40,0,2*Math.PI);
ctx.stroke();
ctx.fill();
</script>
<body>
<canvas id="myCanvas" width="200" height="100"></canvas>
</body>
</html>
What can I do with Canvas?
Besides .
Other 2D Drawings
Rende 3D (via Web GL)
Error Handling
( in brief )
“Tag Soup”
● 90% of pages on the web are malformed.
● In XHTML, such pages break
“Tag Soup”
● 90% of pages on the web are malformed.
● In XHTML, such pages break
● Tag Soup means HTML5 runs malformed
pages on purpose then corrects them.
“Tag Soup”
Modernizr.js
Modernizr.js
● a JavaScript library
● detects HTML5 and CSS3 features
● in the user’s browser.
Modernizr.js
Plain Javascript
function getSupportedTransform() {
var prefixes = 'transform
WebkitTransform MozTransform OTransform
msTransform'.split(' ');
for(var i = 0; i < prefixes.length; i++)
{
if(document.createElement('div').
style[prefixes[i]] !== undefined) {
return prefixes[i];
}
}
return false;
}
if ( getSupportedTransform() ) {
// Browser supports CSS3 Transforms
}
Modernizr.js
Plain Javascript
function getSupportedTransform() {
var prefixes = 'transform
WebkitTransform MozTransform OTransform
msTransform'.split(' ');
for(var i = 0; i < prefixes.length; i++)
{
if(document.createElement('div').
style[prefixes[i]] !== undefined) {
return prefixes[i];
}
}
return false;
}
if ( getSupportedTransform() ) {
// Browser supports CSS3 Transforms
}
With Modernizer
if ( Modernizer. csstransforms ) {
// Browser supports CSS3 Transforms
}
HTML5 is w i d e r
Play Time
Demo
slides.html5rocks.com
slides.html5rocks.com
diveintohtml5.com
html5boilerplate.com
w3.org
Bookmarks
Caesar Mukama
Contact me at
mcaesar88@gmail.com
Questions?

More Related Content

What's hot

Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)Nicholas Zakas
 
HTML5: friend or foe (to Flash)?
HTML5: friend or foe (to Flash)?HTML5: friend or foe (to Flash)?
HTML5: friend or foe (to Flash)?Remy Sharp
 
HTML5 Mullet: Forms & Input Validation
HTML5 Mullet: Forms & Input ValidationHTML5 Mullet: Forms & Input Validation
HTML5 Mullet: Forms & Input ValidationTodd Anglin
 
Keypoints html5
Keypoints html5Keypoints html5
Keypoints html5dynamis
 
jQuery For Beginners - jQuery Conference 2009
jQuery For Beginners - jQuery Conference 2009jQuery For Beginners - jQuery Conference 2009
jQuery For Beginners - jQuery Conference 2009Ralph Whitbeck
 
Emerging threats jonkman_sans_cti_summit_2015
Emerging threats jonkman_sans_cti_summit_2015Emerging threats jonkman_sans_cti_summit_2015
Emerging threats jonkman_sans_cti_summit_2015Emerging Threats
 
HTML5 - Introduction
HTML5 - IntroductionHTML5 - Introduction
HTML5 - IntroductionDavy De Pauw
 
Building a JavaScript Library
Building a JavaScript LibraryBuilding a JavaScript Library
Building a JavaScript Libraryjeresig
 
Html5 shubelal
Html5 shubelalHtml5 shubelal
Html5 shubelalShub
 
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
 
HTML5 vs Silverlight
HTML5 vs SilverlightHTML5 vs Silverlight
HTML5 vs SilverlightMatt Casto
 
HTML5 Introduction
HTML5 IntroductionHTML5 Introduction
HTML5 Introductiondynamis
 
2022 HTML5: The future is now
2022 HTML5: The future is now2022 HTML5: The future is now
2022 HTML5: The future is nowGonzalo Cordero
 
Progressive Downloads and Rendering
Progressive Downloads and RenderingProgressive Downloads and Rendering
Progressive Downloads and RenderingStoyan Stefanov
 

What's hot (20)

Html5 Overview
Html5 OverviewHtml5 Overview
Html5 Overview
 
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
 
Html5
Html5Html5
Html5
 
HTML5: friend or foe (to Flash)?
HTML5: friend or foe (to Flash)?HTML5: friend or foe (to Flash)?
HTML5: friend or foe (to Flash)?
 
HTML5 Mullet: Forms & Input Validation
HTML5 Mullet: Forms & Input ValidationHTML5 Mullet: Forms & Input Validation
HTML5 Mullet: Forms & Input Validation
 
jQuery UI and Plugins
jQuery UI and PluginsjQuery UI and Plugins
jQuery UI and Plugins
 
Keypoints html5
Keypoints html5Keypoints html5
Keypoints html5
 
jQuery For Beginners - jQuery Conference 2009
jQuery For Beginners - jQuery Conference 2009jQuery For Beginners - jQuery Conference 2009
jQuery For Beginners - jQuery Conference 2009
 
Emerging threats jonkman_sans_cti_summit_2015
Emerging threats jonkman_sans_cti_summit_2015Emerging threats jonkman_sans_cti_summit_2015
Emerging threats jonkman_sans_cti_summit_2015
 
HTML5 - Introduction
HTML5 - IntroductionHTML5 - Introduction
HTML5 - Introduction
 
Building a JavaScript Library
Building a JavaScript LibraryBuilding a JavaScript Library
Building a JavaScript Library
 
Html5 shubelal
Html5 shubelalHtml5 shubelal
Html5 shubelal
 
GWT
GWTGWT
GWT
 
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
 
HTML5 JS APIs
HTML5 JS APIsHTML5 JS APIs
HTML5 JS APIs
 
HTML5 vs Silverlight
HTML5 vs SilverlightHTML5 vs Silverlight
HTML5 vs Silverlight
 
HTML 5 & CSS 3
HTML 5 & CSS 3HTML 5 & CSS 3
HTML 5 & CSS 3
 
HTML5 Introduction
HTML5 IntroductionHTML5 Introduction
HTML5 Introduction
 
2022 HTML5: The future is now
2022 HTML5: The future is now2022 HTML5: The future is now
2022 HTML5: The future is now
 
Progressive Downloads and Rendering
Progressive Downloads and RenderingProgressive Downloads and Rendering
Progressive Downloads and Rendering
 

Viewers also liked

Html5 presentation slides
Html5 presentation slidesHtml5 presentation slides
Html5 presentation slideswebwizart
 
Presentation html5 css3 by thibaut
Presentation html5 css3 by thibautPresentation html5 css3 by thibaut
Presentation html5 css3 by thibautThibaut Baillet
 
HTML5 presentations on SlideShare
HTML5 presentations on SlideShareHTML5 presentations on SlideShare
HTML5 presentations on SlideShareNikhil Chandna
 
HTML5, just another presentation :)
HTML5, just another presentation :)HTML5, just another presentation :)
HTML5, just another presentation :)François Massart
 

Viewers also liked (7)

Html5 presentation slides
Html5 presentation slidesHtml5 presentation slides
Html5 presentation slides
 
Presentation html5 css3 by thibaut
Presentation html5 css3 by thibautPresentation html5 css3 by thibaut
Presentation html5 css3 by thibaut
 
HTML5 presentations on SlideShare
HTML5 presentations on SlideShareHTML5 presentations on SlideShare
HTML5 presentations on SlideShare
 
HTML5, just another presentation :)
HTML5, just another presentation :)HTML5, just another presentation :)
HTML5, just another presentation :)
 
html5.ppt
html5.ppthtml5.ppt
html5.ppt
 
Html Ppt
Html PptHtml Ppt
Html Ppt
 
5g ppt new
5g ppt new5g ppt new
5g ppt new
 

Similar to DevFest Makerere html5 presentation by caesar mukama

Ie9 dev overview (300) beta
Ie9 dev overview (300) betaIe9 dev overview (300) beta
Ie9 dev overview (300) betaKirk Yamamoto
 
HTML5 Video Player - HTML5 Dev Conf 2012
HTML5 Video Player - HTML5 Dev Conf 2012HTML5 Video Player - HTML5 Dev Conf 2012
HTML5 Video Player - HTML5 Dev Conf 2012steveheffernan
 
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Sadaaki HIRAI
 
HTML5: Markup Evolved
HTML5: Markup EvolvedHTML5: Markup Evolved
HTML5: Markup EvolvedBilly Hylton
 
[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
HTML5 Video for WordPress
HTML5 Video for WordPressHTML5 Video for WordPress
HTML5 Video for WordPresssteveheffernan
 
HTML5 History & Features
HTML5 History & FeaturesHTML5 History & Features
HTML5 History & FeaturesDave Ross
 
Repaso rápido a los nuevos estándares web
Repaso rápido a los nuevos estándares webRepaso rápido a los nuevos estándares web
Repaso rápido a los nuevos estándares webPablo Garaizar
 
Upgrade to HTML5 Video
Upgrade to HTML5 VideoUpgrade to HTML5 Video
Upgrade to HTML5 Videosteveheffernan
 
[2015/2016] HTML5 and CSS3 Refresher
[2015/2016] HTML5 and CSS3 Refresher[2015/2016] HTML5 and CSS3 Refresher
[2015/2016] HTML5 and CSS3 RefresherIvano Malavolta
 
Course Tech 2013, Sasha Vodnik, A Crash Course in HTML5
Course Tech 2013, Sasha Vodnik, A Crash Course in HTML5Course Tech 2013, Sasha Vodnik, A Crash Course in HTML5
Course Tech 2013, Sasha Vodnik, A Crash Course in HTML5Cengage Learning
 

Similar to DevFest Makerere html5 presentation by caesar mukama (20)

Ie9 dev overview (300) beta
Ie9 dev overview (300) betaIe9 dev overview (300) beta
Ie9 dev overview (300) beta
 
HTML5 Video Player - HTML5 Dev Conf 2012
HTML5 Video Player - HTML5 Dev Conf 2012HTML5 Video Player - HTML5 Dev Conf 2012
HTML5 Video Player - HTML5 Dev Conf 2012
 
HTML5 Refresher
HTML5 RefresherHTML5 Refresher
HTML5 Refresher
 
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
 
The Devil and HTML5
The Devil and HTML5The Devil and HTML5
The Devil and HTML5
 
HTML5: Markup Evolved
HTML5: Markup EvolvedHTML5: Markup Evolved
HTML5: Markup Evolved
 
[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design
 
Introduccion a HTML5
Introduccion a HTML5Introduccion a HTML5
Introduccion a HTML5
 
html5
html5html5
html5
 
Html 5
Html 5Html 5
Html 5
 
HTML5 Video for WordPress
HTML5 Video for WordPressHTML5 Video for WordPress
HTML5 Video for WordPress
 
Html5 - Novas Tags na Prática!
Html5 - Novas Tags na Prática!Html5 - Novas Tags na Prática!
Html5 - Novas Tags na Prática!
 
HTML5 History & Features
HTML5 History & FeaturesHTML5 History & Features
HTML5 History & Features
 
Repaso rápido a los nuevos estándares web
Repaso rápido a los nuevos estándares webRepaso rápido a los nuevos estándares web
Repaso rápido a los nuevos estándares web
 
HTML5, the new buzzword
HTML5, the new buzzwordHTML5, the new buzzword
HTML5, the new buzzword
 
HTML5 - A Whirlwind tour
HTML5 - A Whirlwind tourHTML5 - A Whirlwind tour
HTML5 - A Whirlwind tour
 
Upgrade to HTML5 Video
Upgrade to HTML5 VideoUpgrade to HTML5 Video
Upgrade to HTML5 Video
 
[2015/2016] HTML5 and CSS3 Refresher
[2015/2016] HTML5 and CSS3 Refresher[2015/2016] HTML5 and CSS3 Refresher
[2015/2016] HTML5 and CSS3 Refresher
 
Looking into HTML5 + CSS3
Looking into HTML5 + CSS3Looking into HTML5 + CSS3
Looking into HTML5 + CSS3
 
Course Tech 2013, Sasha Vodnik, A Crash Course in HTML5
Course Tech 2013, Sasha Vodnik, A Crash Course in HTML5Course Tech 2013, Sasha Vodnik, A Crash Course in HTML5
Course Tech 2013, Sasha Vodnik, A Crash Course in HTML5
 

Recently uploaded

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
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
 
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
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
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)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
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
 
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
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
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...
 

DevFest Makerere html5 presentation by caesar mukama

  • 2. Caesar Mukama Work as Front End Designer for MyZiki Ltd. Contact me at mcaesar88@gmail.com
  • 3.
  • 4. On the menu ● Why HTML5 is important. ● Structure ● Form Input Types and Tags ● 3 New Tags ● Features ● Error Handling ● Summary
  • 6. HTML5 = XHTML + NEW MARKUP + JS APIS
  • 7. Why is HTML5 important?
  • 15. XHTML <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Page Title</title> <link rel="stylesheet" href="style.css" type="text/css" media="screen" charset=" utf-8"/> </head> <body> ... </body> </html>
  • 16. … minus XML declaration <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Page Title</title> <link rel="stylesheet" href="style.css" type="text/css" media="screen" charset=" utf-8"/> </head> <body> ... </body> </html>
  • 17. ... minus DOCTYPE attributes <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Page Title</title> <link rel="stylesheet" href="style.css" type="text/css" media="screen" charset=" utf-8"/> </head> <body> ... </body> </html>
  • 18. … plus short meta content <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>Page Title</title> <link rel="stylesheet" href="style.css" type="text/css" media="screen" charset=" utf-8"/> </head> <body> ... </body> </html>
  • 19. … minus useless definitions <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>Page Title</title> <link rel="stylesheet" href="style.css"/> </head> <body> ... </body> </html>
  • 20. = HTML5 <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>Page Title</title> <link rel="stylesheet" href="style.css"/> </head> <body> ... </body> </html>
  • 21. That’s why we need HTML5.
  • 22.
  • 23. 28 Tags, 13 Form Input Types New Tags article, aside, audio, canvas, command, datalist, details, embed, figcaption, figure, footer, header, hgroup, keygen, mark, meter, nav, output, progress, rp, rt, ruby, section, source, summary, time, video, wbr New Input Types color, date, datetime, datetime-local, email, month, number, range, search, tel, time, url, week
  • 24. Where did they come from?
  • 26. <div class=”header”> <div class=”header”> <div class=”section”> <div class=”article”> <div class=”footer”> <div class=”footer”> <div class=”nav”> <div class=”aside”>
  • 28. 28 Tags, 13 Form Input Types New Tags article, aside, audio, canvas, command, datalist, details, embed, figcaption, figure, footer, header, hgroup, keygen, mark, meter, nav, output, progress, rp, rt, ruby, section, source, summary, time, video, wbr New Input Types color, date, datetime, datetime-local, email, month, number, range, search, tel, time, url, week
  • 29. 28 Tags, 13 Form Input Types New Tags article, aside, audio, canvas, command, datalist, details, embed, figcaption, figure, footer, header, hgroup, keygen, mark, meter, nav, output, progress, rp, rt, ruby, section, source, summary, time, video, wbr New Input Types color, date, datetime, datetime-local, email, month, number, range, search, tel, time, url, week
  • 30. <input id="event” placeholder="DevFest Makerere"> <input id=”firstName” required> <input id=”lastName” autofocus pattern=[a-zA-Z]>
  • 31. <input id="event” placeholder="DevFest Makerere"> <input id=”firstName” required> <input id=”lastName” autofocus pattern=[a-zA-Z]> <input type="color" name="favcolor"> <input type="date" name="birthday"> <input type="datetime" name="bdaytime"> <input type="number" name="quantity" min="1" max="5"> <input type="range" name="points" min="1" max="10">
  • 32. <input id="event” placeholder="DevFest Makerere"> <input id=”firstName” required> <input id=”lastName” autofocus pattern=[a-zA-Z]> <input type="color" name="favcolor"> <input type="date" name="birthday"> <input type="datetime" name="bdaytime"> <input type="number" name="quantity" min="1" max="5"> <input type="range" name="points" min="1" max="10"> … much more.
  • 33. 28 Tags, 13 Form Input Types New Tags article, aside, audio, canvas, command, datalist, details, embed, figcaption, figure, footer, header, hgroup, keygen, mark, meter, nav, output, progress, rp, rt, ruby, section, source, summary, time, video, wbr New Input Types color, date, datetime, datetime-local, email, month, number, range, search, tel, time, url, week
  • 34. 28 Tags, 13 Form Input Types New Tags article, aside, audio, canvas, command, datalist, details, embed, figcaption, figure, footer, header, hgroup, keygen, mark, meter, nav, output, progress, rp, rt, ruby, section, source, summary, time, video, wbr New Input Types color, date, datetime, datetime-local, email, month, number, range, search, tel, time, url, week
  • 35.
  • 36. Why do we need a video and an audio element?
  • 37. Thousands of audio and video services
  • 38. was meant for foreign objects <object> … </object>
  • 39. was meant for foreign objects <object> … </object> but video and audio are NOT foreign
  • 40.
  • 41.
  • 43. <video width="320" height="240" controls src="movie.mp4" type="video/mp4" /> Syntax ?
  • 44. <video width="320" height="240" controls src="movie.mp4" type="video/mp4" /> Syntax ?
  • 45. <video width="320" height="240" controls src="movie.mp4" type="video/mp4" /> Syntax ?
  • 46. Correct Syntax <video width="320" height="240" controls> <source src="movie.mp4" type="video/mp4"> <source src="movie.ogg" type="video/ogg"> <source src="movie.webm" type="video/webm"> <object data="movie.mp4" width="320" height="240"> <embed src="movie.swf" width="320" height="240"> </object> </video>
  • 49. All browser should have at least 2 new Codes by default: HTML5 Specifications said...
  • 50. All browser should have at least 2 new Codes by default: ● Ogg Vorbis for audio ● Ogg Theora for video HTML5 Specifications said...
  • 52. Google was onboard, Everyone followed BUT Apple and Nokia Said No.
  • 54. .mp3, .mp4, .m4a, .mpg ... MPEG LA
  • 55. ● MPEG better quality ● Already most widely used ● Xiph.com’s BDS license not open source. Their Suggested alternative ● H.264/MPEG most relevant video encoding ● MP3, AAC best audio compression and quality. Their argument
  • 56. Audio & video specification is incomplete
  • 57. What to do ...for now? ● Convert videos to multiple formats ● Use multiple sources ● Then control with js
  • 58. FOR NOW! <video width="320" height="240" controls> <source src="movie.mp4" type="video/mp4"> <source src="movie.ogg" type="video/ogg"> <source src="movie.webm" type="video/webm"> <object data="movie.mp4" width="320" height="240"> <embed src="movie.swf" width="320" height="240"> </object> </video>
  • 60. Just like MS Paint...
  • 61. … in your browser.
  • 62. Paint with javascript instead of a brush
  • 63. Paint with javascript instead of a brush <!DOCTYPE html> <html> <script> var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); ctx.beginPath(); ctx.arc(95,50,40,0,2*Math.PI); ctx.stroke(); ctx.fill(); </script> <body> <canvas id="myCanvas" width="200" height="100"></canvas> </body> </html>
  • 64. Paint with javascript instead of a brush <!DOCTYPE html> <html> <script> var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); ctx.beginPath(); ctx.arc(95,50,40,0,2*Math.PI); ctx.stroke(); ctx.fill(); </script> <body> <canvas id="myCanvas" width="200" height="100"></canvas> </body> </html>
  • 65. What can I do with Canvas? Besides .
  • 67. Rende 3D (via Web GL)
  • 70. ● 90% of pages on the web are malformed. ● In XHTML, such pages break “Tag Soup”
  • 71. ● 90% of pages on the web are malformed. ● In XHTML, such pages break ● Tag Soup means HTML5 runs malformed pages on purpose then corrects them. “Tag Soup”
  • 73. Modernizr.js ● a JavaScript library ● detects HTML5 and CSS3 features ● in the user’s browser.
  • 74. Modernizr.js Plain Javascript function getSupportedTransform() { var prefixes = 'transform WebkitTransform MozTransform OTransform msTransform'.split(' '); for(var i = 0; i < prefixes.length; i++) { if(document.createElement('div'). style[prefixes[i]] !== undefined) { return prefixes[i]; } } return false; } if ( getSupportedTransform() ) { // Browser supports CSS3 Transforms }
  • 75. Modernizr.js Plain Javascript function getSupportedTransform() { var prefixes = 'transform WebkitTransform MozTransform OTransform msTransform'.split(' '); for(var i = 0; i < prefixes.length; i++) { if(document.createElement('div'). style[prefixes[i]] !== undefined) { return prefixes[i]; } } return false; } if ( getSupportedTransform() ) { // Browser supports CSS3 Transforms } With Modernizer if ( Modernizer. csstransforms ) { // Browser supports CSS3 Transforms }
  • 76. HTML5 is w i d e r
  • 80. Caesar Mukama Contact me at mcaesar88@gmail.com Questions?