SlideShare ist ein Scribd-Unternehmen logo
1 von 50
Downloaden Sie, um offline zu lesen
HTML5
An introduction to the language and APIs




José M. Cantera Fonseca
Senior Technologist

TELEFÓNICA I+D
Date: July 2010




© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
What is HTML5?

                      HTML5 reflects an effort, started in 2004, to study contemporary HTML
                      implementations and deployed content in order to improve interoperability
                      on the Web platform


                      HTML5
                      —          encompasses the set of technologies (language and APIs) (to be) implemented
                                 by web browsers in the short, medium-term (and perhaps long-term)
                      —          will be the core technology (delivery format) on which future Web Applications
                                 will be based on


                      The HTML5 draft:
                      —          Defines a single language called HTML5 which can be written in HTML
                                 syntax and in XML syntax.
                      —          Defines detailed processing models to foster interoperable
                                 implementations.
                      —          Improves markup for documents based on prevailing authoring practices
                      —          Introduces markup and APIs for emerging idioms, such as Web applications.




TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
HTML History (I)

         The early days (1990-1995) at CERN and IETF
         —          http://www.w3.org/People/Raggett/the-early-days-of-the-Web.html
         HTML 4.01 (24th December 1999)
         —          At this time, the W3C membership decided to stop evolving HTML
         2000 – 2004 XHTML and DOM standardization at W3C
         June 2004 (just after the W3C workshop on web apps) Apple,
         Mozilla, and Opera found the WHATWG (Web Hypertext
         Applications Working Group) http://whatwg.org
         —          The group aims to develop specifications based on HTML and
                    related technologies to ease the deployment of interoperable
                    Web Applications [...] for implementation in mass-market Web
                    browsers, in particular Safari, Mozilla, and Opera; [the group]
                    intends to ensure that all its specifications address backwards
                    compatibility concerns [...] …
TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
HTML History (II)

                 2005-2006                                 The WHATWG working underground
                 October 2006 Reinventing HTML blog entry (Tim Berners-Lee)
                 —          Some things are clearer with hindsight of several years. It is
                           necessary to evolve HTML incrementally. The attempt to get the world
                           to switch to XML, including quotes around attribute values and slashes
                           in empty tags and namespaces all at once didn't work... The plan is to
                           charter a completely new HTML group. Unlike the previous one, this
                           one will be chartered to do incremental improvements to HTML, as
                           also in parallel xHTML.
                 2007
                 —         5th W3C HTML Working Group chartered
                           http://www.w3.org/2007/03/HTML-WG-charter.html
                           –       Chairs: Chris Wilson (Microsoft), Sam Ruby (IBM). Team Contact: Dan
                                   Connolly
                 —         Apple, Mozilla, and Opera allowed the W3C to publish the
                           specification under the W3C copyright, while keeping a version with
                           the less restrictive license on the WHATWG site.
                 —         Since then, both groups have been working together.
TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
HTML History (III)

            July 2009 the end of the work on XHTML2 and XHTML
            Modularization is announced
            —          http://www.w3.org/2009/06/xhtml-faq.html
            October 2009 WHATWG announces Last Call for Comments for
            HTML5 http://blog.whatwg.org/html5-at-last-call
            June 2010 latest HTML5 WD published at W3C
            http://www.w3.org/TR/2010/WD-html5-20100624/
            More info at
            —          http://esw.w3.org/topic/HTML/history
            —          http://www.atendesigngroup.com/blog/brief-history-of-html




TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
HTML5 Main Design Principles
             Differentiating between
             —          Conforming Language : Pages syntactically correct
             —          Supported Lang. : Pages not syntactically correct but which actually work
             Compatibility
             —          Support existing content
                        –       to process existing HTML documents as HTML 5 and get results that are compatible with the
                                existing expectations of users and authors, based on the behavior of existing browsers.
                        –       Ex. <b>a<i>b</b>c</i>
             —          Degrade gracefully
                        –       Web content should degrade gracefully in older or less capable user agents, even when
                                making use of new elements, attributes, APIs and content models.
                        –       Ex. the <video> element allows to define fallback content if video is not supported
             —          Do not reinvent the wheel
                        –       Ex. contenteditable=“”
             —          Pave the cowpaths
                        –       Ex. <br/>
             —          Evolution not revolution
                        –       Switching to XML syntax requires a global change, so continue supporting classic HTML
                                syntax as well.

TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
HTML5 Main Design Principles (II)

                     Interoperability
                     —          Well-Defined behavior
                                –       Prefer to clearly define behavior that content authors could rely on, in
                                        preference to vague or implementation-defined behavior.
                                        –       This way, it is easier to author content that works in a variety of
                                                user agents. However, implementations should still be free to make
                                                improvements in areas such as user interface and quality of
                                                rendering.

                     —          Avoid needless complexity
                     —          Handle errors
                                –       Error handling should be defined so that interoperable
                                        implementations can be achieved.
                                –       Prefer graceful error recovery to hard failure, so that users are not
                                        exposed to authoring errors.



TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
                                                                           TELEFÓNICA I+D
                                                                 >lmth/<
                                                                >ydob/<
                         >p/<.tnemucod LMTH elpmaxe na si sihT>p<
                                                     >1h/<elpmaxE>1h<
                                                 >"elpmaxe"=ssalc ydob<
                                                                >daeh/<
                            >/ ssc.teehsym =ferh teehselyts =ler knil<
                              “             “         “                “
                                      >eltit/< tnemucoD LMTH nA>eltit<
                                                                >daeh<
                          >"lmthx/9991/gro.3w.www//:ptth"=snlmx lmth<
                              >?"8-FTU"=gnidocne "0.1"=noisrev lmx?<
(application/xhtml+xml) or (application/xml)
                                        XML Serialization
                                                               >lmth/<
                                                           >ydob/<
                        .tnemucod LMTH elpmaxe na si sihT>p<
                                                 >1h/<elpmaxE>1h<
                                               >elpmaxe=ssalc ydob<
                                                            >daeh/<
                            >ssc.teehsym=ferh teehselyts=ler knil<
                                 >eltit/<tnemucoD LMTH nA>eltit<
                                           > "8-FTU"=tesrahc atem<
                                                             >daeh<
                                                               >lmth<
                                                    >lmth EPYTCOD!<
                   (text/html)
                HTML Serialization
                              Getting Started
HTML5 .- XHTML vs HTML

                        XHTML taught us


                        —          lowercase tags!


                        —          close void elements! (img, meta, input, ...)


                        —          no empty attributes! (disabled=”disabled”)


                        —          always put attribute values in double quotes!


                        HTML5 says: you choose

TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
HTML5 .- XHTML vs HTML
             HTML syntax remarks
             —          HTML syntax is case-insensitive
             —          Void elements (forbidden from containing any content at all)
                        –       <link type="text/css" rel="stylesheet" href="style.css">
             —          Empty elements (any element that does not contain any content within it)
                        –       <span></span>

             —          boolean attributes, <true> value specified using an empty attribute (with no value), the empty
                        string or a value which it is equal to the name of the attribute. ‘false’ or ‘true’ are invalid
                        values!
                        –       <input disabled>
             —          Unquoted attribute values <div class=example> (provided there are no spaces or quotes)
             Any document, including a document authored with the intention of being XHTML,
             served as text/html is technically an HTML document.
             —          See current problems with XHTML served as text/html at http://www.hixie.ch/advocacy/xhtml
             Documents with an XML media type are always handled in standards (no quirks) mode
             A polyglot HTML document is a document that conforms to both the HTML and
             XHTML syntactic requirements, and which can be processed as either by browsers,
             depending on the MIME type used.
             More info at http://wiki.whatwg.org/wiki/HTML_vs._XHTML

TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
HTML5 Syntax Remarks

            Tag soup? No!
            —          small degree of freedom, but very detailed rules for parsing
            —          validation will matter
                       –       http://html5.validator.nu/
            —          keep a clean coding style, you’ll thank yourself for it later
            HTML5 is designed so that old HTML 4 browsers can
            safely ignore new HTML5 constructs
            “Documents must not use deprecated features. User
            agents should support deprecated features.”
            —          Extensive error handling by UAs



TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
Global Attributes
                         @accesskey                              Accessibility / Mobile
                         @class
                         @contenteditable                                Rich in place editing of content
                         @contextmenu                              For assigning a contextual menu to an element
                         @dir                  for the reading direction of languages
                         @draggable                              for drag&drop interaction
                         @hidden                         In HTML5 any element can be hidden
                         @id
                         @itemid, @itemprop,                                 @itemref,       @itemscope, @itemtype
                         —          Microdata (Semantics)
                         @lang
                         @spellcheck                              Activates spellchecking on a textual input
                         @style
                         @tabindex
                         @title
                         @role, @aria-xxx                                To instruct Assistive Technology, see later
                         @data-xx for extensibility, see later


TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
New Structural Elements

            They can be employed in many situations where <div> is used today and should help
            you make more readable, maintainable, HTML source.
            <section>
            —          a generic document or application section
            —          Ex. a book chapter
            <nav>
            —          A section devoted to major navigation blocks
            <article>
            —          A self-contained composition that is intended to be independently distributable or
                       reusable (e.g. in syndication)
            —          Ex. forum post, newspaper article, a Web log entry, a gadget …
            <aside>
            —          A section that consists of content that is tangentially related to the main content
            —          Ex. sidebars, ads,


TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
Sectioning Example
              If you just go through your document and blindly replace all the
              <div>s with <section>s you are doing it wrong.

              Each time you nest a <section>, you increase the outline depth by 1
              • http://gsnedders.html5.org/outliner/

                                             >lmth EPYTCOD!<
                                                        >lmth<
                                                      >daeh<
                                    > "8-FTU"=tesrahc atem<                    Document Outline
                          >eltit/<tnemucoD LMTH nA>eltit<
                                                     >daeh/<              This is the main header
                                                 >elpmaxe=ssalc ydob<     +--This is a subheader
                                    >1h/<redaeh niam eht si sihT>1h<
                                                           >noitces<          +--This is a subsubheader
                                    >1h/<redaehbus a si sihT>1h<
                                                       >noitces<          +--This is a second subheader
                             >1h/<redaehbusbus a si sihT>1h<
                                                       >noitces/<
                                                           >noitces/<
                                                           >noitces<
                             >1h/<redaehbus dnoces a si sihT>1h<
                                                           >noitces/<
                                                                >ydob/<

                          >lmth/<



TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
New Structural Elements

            <hgroup>
            —          represents the heading of a section
            <header>
            —          a group of introductory or navigational aids
            <footer>
            —          A footer for its nearest ancestor sectioning content
            —          Ex. copyright data, links to related documents, …
            <time>
            —          Represents either a time on a 24 hour clock or a precise date in the
                       proleptic Gregorian calendar
            <mark>
            —          A run of text marked or highlighred for reference purposes


TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
                                                                                                                                     TELEFÓNICA I+D
                                                                                                 >redaeh/< >van/< >llllu/<
                                                                                                 >redaeh/< >van/< > u/<
                                                                                                 >redaeh/< >van/< > u/<
                                                                                                 >redaeh/< >van/< > u/<
               > /<>a/<    ó               >
                                           >
               >iiiillll/<>a/< n inipO>4=yekssecca n inipO =eltit lmth.noinipo"=ferh a<>iiiillll<
               > /<>a/<
               > /<>a/<                    >                  ó “          “         “                             a<> <
                                                                                                                   a<> <
                                                                                                                   a<> <
                    > /<>a/<
                      > /<>a/<
                      > /<>a/<               >
                                             >
                    >iiiillll/<>a/<aporuE>3=yekssecca aporuE =eltit lmth.aporue"=ferh a<>iiiillll<
                                             >                 “          “         “                              a<> <
                                                                                                                   a<> <
                                                                                                                   a<> <
 > /<>a/<
 > /<>a/<
 > /<>a/<                        >
                                 >
 >iiiillll/<>a/<odnuM>2=yekssecca odnuM led otseR =eltit lmth.odnum"=ferh a<>iiiillll<
                                 >             “                          “         “                              a<> <
                                                                                                                   a<> <
                                                                                                                   a<> <
                > /<>a/<
                > /<>a/<    ñ               >
                                            >
                >iiiillll/<>a/<a apsE>1=yekssecca a apsE =eltit lmth.a apse"=ferh a<>iiiillll<
                > /<>a/<                    >                 ñ “          “         “       ñ                     a<> <
                                                                                                                   a<> <
                                                                                                                   a<> <
                                                                                                                           > u<
                                                                                                                          >llllu<
                                                                                                                          > u<
                                                                                                                           > u<
                                                                                                                          >van<
                                                                                                                          >van<
                                                                                                                          >van<
                                                                                                                          >van<
                                                                                                                  >puorgh/<
                                                                                                                  >puorgh/<
                                                                                                                  >puorgh/<
                                                                                                                  >puorgh/<
                               >3h/<>em t/<>rbba/<
                               >3h/<>em t/<>rbba/<        ”         “                    rbba<
                               >3h/<>emiiiit/<>rbba/<.h> saroh =eltit rbba< 73:61 odazilautcA
                               >3h/<>em t/<>rbba/<                                       rbba<
                                                                                         rbba<
                                    >
                                    >
 .9002/21/01 seveuJ>etadbup "00:10+00:73:61T01-21-9002"=emitetad emiiiit<>3h<
                                    >                                                                       em t<>3h
                                                                                                             em t<>3h
                                                                                                             em t<>3h
                                                                                ñ   >2h/<
                                                                                    >2h/<
                                                                                    >2h/<lo apsE ne laidnuM red L>2h<
                                                                                    >2h/<                        í       >2h<
                                                                                                                         >2h<
                                                                                                                         >2h<
                                                                                                >1h/<
                                                                                                >1h/<
                                                                                                >1h/<se.odnuM lE>1h<
                                                                                                >1h/<                    >1h<
                                                                                                                         >1h<
                                                                                                                         >1h<
                                                                                                                       >puorgh<
                                                                                                                       >puorgh<
                                                                                                                       >puorgh<
                                                                                                                       >puorgh<
                                                                                                                           >redaeh<
                                                                                                                           >redaeh<
                                                                                                                           >redaeh<
                                                                                                                           >redaeh<
                                                                                              >
                                                                                              >
                                                                                              >ocidoirep=ssalc niam=di noiiiitces<
                                                                                              >                                   no tces<
                                                                                                                                  no tces<
                                                                                                                                  no tces<
                                                                                                                                >redaeh/<
                                                                                                                                >redaeh/<
                                                                                                                                >redaeh/<
                                                                                                                                >redaeh/<
                                                                                                                                 >v d/<
                                                                                                                                 >v d/<
                                                                                                                                 >viiiid/<
                                                                                                                                 >v d/<
                                                                                                                          >van/<
                                                                                                                          >van/<
                                                                                                                          >van/<
                                                                                                                          >van/<
                                                                                                                          > u/<
                                                                                                                          >llllu/<
                                                                                                                          > u/<
                                                                                                                          > u/<
                                               > /<>a/<
                                               > /<>a/<
                                               > /<>a/<                                >>
                                               >iiiillll/<>a/<acetoremeH>"lmth.acetoremeh"=ferh a<>iiiillll<
                                                                                        >                              a<> <
                                                                                                                       a<> <
                                                                                                                       a<> <
                                                         > /<>a/<
                                                         > /<>a/<
                                                         > /<>a/<                        >
                                                                                         >
                                                         >iiiillll/<>a/<selaicepsE>"lmth.selaicepse"=ferh a<>iiiillll<
                                                                                         >                             a<> <
                                                                                                                       a<> <
                                                                                                                       a<> <
                                                                         > /<>a/<
                                                                         > /<>a/<
                                                                         > /<>a/<             >
                                                                                              >
                                                                                              >                        a<> <
                                                                         >iiiillll/<>a/<sgolB>"lmth.sgolb"=ferh a<>iiiillll<
                                                                                                                       a<> <
                                                                                                                       a<> <
                                                        > /<>a/<
                                                        > /<>a/<
                                                        > /<>a/<                         >
                                                                                         >
                                                        >iiiillll/<>a/<aidemitluM>"lmth.aidemitlum"=ferh a<>iiiillll<
                                                                                         >                             a<> <
                                                                                                                       a<> <
                                                                                                                       a<> <
                                                                                                                           > u<
                                                                                                                           >llllu<
                                                                                                                           > u<
                                                                                                                           > u<
                                                                                                                               >van<
                                                                                                                               >van<
                                                                                                                               >van<
                                                                                                                               >van<
                                               >
                                               >
                                               >"odnuM lE ed opitogoL =tla gnp.odnuMlEogol"=crs gmiiii<
                                               >                                “        “                                       gm <
                                                                                                                                 gm <
                                                                                                                                 gm <
                                                                                                              >
                                                                                                              >rab=ssalc viiiid<
                                                                                                              >
                                                                                                              >                       v d<
                                                                                                                                      v d<
                                                                                                                                      v d<
                                                                                                                                  >redaeh<
                                                                                                                                  >redaeh<
                                                                                                                                  >redaeh<
                                                                                                                                  >redaeh<
                                                                                                   >
                                                                                                   >
                                                                                                   >reniatnoCpot=ssalc pot=di viiiid<
                                                                                                   >                                         v d<
                                                                                                                                             v d<
                                                                                                                                             v d<
                                                                                                                                           >ydob<
                                                                                                                                           >ydob<
                                                                                                                                           >ydob<
                                                                                                                                           >ydob<
                                                                                                                                           >daeh/<
                                                                                                                                           >daeh/<
                                                                                                                                           >daeh/<
                                                                                                                                           >daeh/<
                                                                                             >
                                                                                             >
                                                                                             >"ssc.odnumle =ferh teehselyts=ler kniiiillll<
                                                                                             >           “                                     kn <
                                                                                                                                               kn <
                                                                                                                                               kn <
                                                                                                            >
                                                                                                            >
                                                                                                            >
                                                                                                            >"8-FTU"=tesrahc atem<           atem<
                                                                                                                                             atem<
                                                                                                                                             atem<
                                                                                                            >e t t/<                         >e t t<
                                                                                                                                             >e t t<
                                                                                                            >elllltiiiit/<se.odnumle>elllltiiiit<
                                                                                                            >e t t/<
                                                                                                            >e t t/<                         >e t t<
                                                                                                                                           >daeh<
                                                                                                                                            >daeh<
                                                                                                                                           >daeh<
                                                                                                                                            >daeh<
                                                                                                                                  >             mth<
                                                                                                                                                mth<
                                                                                                                                  >se=gnal llllmth<
                                                                                                                                  >
                                                                                                                                  >             mth<
                                                                                                                           >lmth EPYTCOD!<
Example “Diario El Mundo” as HTML5
© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
                                                                                                                                                          TELEFÓNICA I+D
                                                                                           > mth/< >ydob/<
                                                                                           > mth/< >ydob/<
                                                                                           >llllmth/< >ydob/< >-- lapicnirp euqolb led nif --!< >viiiid/<
                                                                                           > mth/< >ydob/<                                                      >v d/<
                                                                                                                                                                >v d/<
                                                                                                                                                                >v d/<
                                                                                                                                                       >ed sa/<
                                                                                                                                                       >ed sa/<
                                                                                                                                                       >ediiiisa/<
                                                                                                                                                       >ed sa/<
                                                                                                                    >no tces/<>
                                                                                                                    >no tces/<>
                                                                                                                    >no tces/<>                       no tces<
                                                                                                                                                      no tces<
                                                                                                                    >noiiiitces/<> opmeit=ssalc noiiiitces<
                                                                                                                                                      no tces<
                                                                                                                  >no tces/<>
                                                                                                                  >no tces/<>
                                                                                                                  >no tces/<>                         no tces<
                                                                                                                                                      no tces<
                                                                                                                  >noiiiitces/<>soicivres=ssalc noiiiitces<
                                                                                                                                                      no tces<
                                                                                                                                                         >ed sa<
                                                                                                                                                         >ed sa<
                                                                                                                                                         >ediiiisa<
                                                                                                                                                         >ed sa<
                                                                                                                                                       >no tces/<
                                                                                                                                                       >no tces/<
                                                                                                                          >-- ocidoirep led nif --!< >noiiiitces/<
                                                                                                                                                       >no tces/<
                                                                                                                                                        >retoof/<
                                                                                                                                                        >retoof/<
                                                                                                                                                        >retoof/<
                                                                                                                                                        >retoof/<
                                                                                                                                           >van/<> u/<
                                                                                                                                           >van/<>llllu/<
                                                                                                                                           >van/<> u/<
                                                                                                                                           >van/<> u/<
                                                                              > /<>a/<
                                                                              > /<>a/<
                                                                              > /<>a/<                              í          >
                                                                                                                               >
                                                                              >iiiillll/<>a/<dadicavirP ed acit loP>lmth.virp=ferh a<>iiiillll<
                                                                                                                               >                a<> <
                                                                                                                                                a<> <
                                                                                                                                                a<> <
                                                                                                > /<>a/<
                                                                                                > /<>a/<
                                                                                                > /<>a/<                     >
                                                                                                                             >
                                                                                                                             >                  a<> <
                                                                                                >iiiillll/<>a/<lageL osivA>lmth.osiva=ferh a<>iiiillll<
                                                                                                                                                a<> <
                                                                                                                                                a<> <
                                                                                                                                                 > u<>van<
                                                                                                                                                 >llllu<>van<
                                                                                                                                                 > u<>van<
                                                                                                                                                 > u<>van<
                                                                                                                          <!– del periódico -->          >retoof<
                                                                                                                                                         >retoof<
                                                                                                                                                         >retoof<
                                                                                                                                                         >retoof<
                                                                                                                                 >no tces/<
                                                                                                                                 >no tces/<
                                                                                                    >-- adatrop al ed nif --!< >noiiiitces/<
                                                                                                                                 >no tces/<
                                                                                                                           >e c tra/<
                                                                                                                           >e c tra/<
                                                                                                                           >ellllciiiitra/<
                                                                                                                           >e c tra/<
                                                           >v d/<>p/<
                                                           >v d/<>p/<
                                                           >viiiid/<>p/< .n isirp ne osac led sodatupmi ocnic sol ed
                                                           >v d/<>p/<           ó
 ocin le res ,o acraC leugiM ,ollitsaC led atraM anallives nevoj al ed osefnoc onisesa le ,n icalecracxe atse noC >p<
     ú    á       ñ                                                                                           ó          >p<
                                                                                                                         >p<
                                                                                                                         >p<
                                                            >>
                                                            >taolf=ssalc gnp.negami=crs "leumaS ed otoF"=tla gmiiii<>viiiid<
                                                             >                                                      gm <>v d<
                                                                                                                    gm <>v d<
                                                                                                                    gm <>v d<
                                                                                                                     >puorgh/<
                                                                                                                     >puorgh/<
                                                                                                                     >puorgh/<
                                                                                                                     >puorgh/<
              >1h/<>a/<
              >1h/<>a/<                                                                             >
                                                                                                    >
              >1h/<>a/<edrat atse rdlas euq ,leumaS a datrebil ne renop anedro aicneiduA aL >"lmth.1n"=ferh a<>1h<
              >1h/<>a/<               á                                                             >                a<>1h<
                                                                                                                     a<>1h<
                                                                                                                     a<>1h<
         >2h/<
         >2h/<                                                          >naps/<
                                                                        >naps/<                 >
                                                                                                >
         >2h/<n icneted us edsed avleuH ed lecr c al ne odatse aH >naps/< ATRAM OSAC>yrogetac=ssalc naps<>2h<
         >2h/<    ó                                   á                 >naps/<                 >                naps<>2h<
                                                                                                                 naps<>2h<
                                                                                                                 naps<>2h<
                                                                                                                      >puorgh<
                                                                                                                      >puorgh<
                                                                                                                      >puorgh<
                                                                                                                      >puorgh<
                                                                                                                            >e c tra<
                                                                                                                            >e c tra<
                                                                                                                            >ellllciiiitra<
                                                                                                                            >e c tra<
                                                                                                                           >e c tra/<
                                                                                                                           >e c tra/<
                                                                                                                           >ellllciiiitra/<
                                                                                                                           >e c tra/<
                                                                                                                         >retoof/<
                                                                                                                         >retoof/<
                                                                                                                         >retoof/<
                                                                                                                         >retoof/<
                                                >van/<>a/<
                                                >van/<>a/<                ó                           >
                                                                                                      >
                                                >van/<>a/<yeR led n icaidem al nedip satsitrA soL>"lmth.x"=ferh a<>van<
                                                >van/<>a/<                                            >              a<>van<
                                                                                                                     a<>van<
                                                                                                                     a<>van<
                                                                                                                          >retoof<
                                                                                                                          >retoof<
                                                                                                                          >retoof<
                                                                                                                          >retoof<
                                                                                                  >p/<
                                                                                                  >p/<
                                                                                                  >p/< .'radiaH osac' le ne
                                                                                                  >p/<
     "sairasecen senoitseg sal" razilaer a otseupsid artseum es solraC nauJ nod euq al ne atrac anu od el ah araL oyaC >p<    í   >p<
                                                                                                                                  >p<
                                                                                                                                  >p<
                                                                                                                        >redaeh/<
                                                                                                                        >redaeh/<
                                                                                                                        >redaeh/<
                                                                                                                        >redaeh/<
                                                                                                                    >puorgh/<
                                                                                                                    >puorgh/<
                                                                                                                    >puorgh/<
                                                                                                                    >puorgh/<
>1h/<>a/<
>1h/<>a/<
>1h/<>a/<                                                                          >
                                                                                   >               a<>
                                                                                                   a<>
>1h/<>a/< jed el on onreiboG le orep 'radiaH' osac le ne raidem osiuq yeR lE >"lmth.1n"=ferh a<>sweNtsrif=ssalc 1h<
              ó                                                                    >               a<>                   1h<
                                                                                                                         1h<
                                                                                                                         1h<
                                                                     >2h/<
                                                                     >2h/<                                             >2h<
                                                                     >2h/<iuarahas atsivitca al ed agleuh al aunitnoC>2h<
                                                                     >2h/<                                             >2h<
                                                                                                                       >2h<
                                                                                                                     >puorgh<
                                                                                                                     >puorgh<
                                                                                                                     >puorgh<
                                                                                                                     >puorgh<
                                                                                                                         >redaeh<
                                                                                                                         >redaeh<
                                                                                                                         >redaeh<
                                                                                                                         >redaeh<
                                                                                                                             >e c tra<
                                                                                                                             >e c tra<
                                                                                                                             >ellllciiiitra<
                                                                                                                             >e c tra<
                                                                                                   >1h/<
                                                                                                   >1h/<
                                                                                                   >1h/<odnuM lE ed adatroP>1h<
                                                                                                   >1h/<                               >1h<
                                                                                                                                       >1h<
                                                                                                                                       >1h<
                                                                                                    >
                                                                                                    >
                                                                                                    >anigap=ssalc adatrop=di noiiiitces<
                                                                                                    >                                   no tces<
                                                                                                                                        no tces<
                                                                                                                                        no tces<
                                Example “Diario El Mundo” as HTML5
HTML5 Forms and Application Elements
             <input> It has been extended to support automatic validations for different
             datatypes
             —         type=number, range
             —         type=date, time, datetime, month, week (using ISO8601 machine-
                       readable format)
             —         type=email, url, tel
             —         type=color

             <input> can also constrain user’s input
             —         @max, @min, @step
             —         @required, @maxlength
             —         @pattern (Javascript pattern)
             @autofocus attribute to say bye, bye to scripting, i.e. element.focus()
             @autocomplete (on,off) to enable / disable web browser autocompletion
             @readonly, @disabled

TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
HTML5 Forms and Application Elements

            @placeholder a placeholder string to help users
            @multiple to allow multiple inputs
            @list to associate a list of possible values to an input
            @formnovalidate on <input type=submit> to indicate not to perform
            validations
            @tabindex (now can be bound to any element)
            @novalidate on <form>
            @formaction on <input type=submit>
            Events
            —          forminput
            —          formchange
            —          invalid




TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
CSS Pseudo-Classes to support form styling

            Simplify styling of controls by defining a set of pseudo-classes
            corresponding to the state of elements
            —          :enabled
            —          :disabled
            —          :valid
            —          :invalid
            —          :in-range
            —          :out-of-range
            —          :required
            Example

            input:invalid {
                       border-color: red;
                       border-style: solid;
            }


TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
HTML5 Forms and Application Elements

            DOM APIs
            —          input.value
            —          input.valueAsNumber
            —          input.valueAsDate
            —          input.stepUp()
            —          input.stepDown()
            —          input.checkValidity(), form.checkValidity()
            —          input.validity
                       –       returns a ValidityState object which indicates whether the element is valid and
                               in case it is not the reason why
            —          input.validity.valid
            —          input.setCustomValidity


TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
HTML5 Forms and Application Elements

           <output> element
           —          To display a computation output, ex.
                      –       <output id=myout for=“a b” onFormChange=“this.value =
                              a.value + b.value”>
           Assigning labels to form elements
           —          <label>Name:<input type=text name=i size=10
                      title=“Enter your name”></label>
           —          @for attribute on label
           <datalist>                                element
           —          It is a set of <option> elements that represent predefined options for
                      other controls.
           —          Using the @list attribute it can be hooked up to an input
           For more details see my demo using Opera or Google WebForms 2
           http://code.google.com/p/webforms2/


TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
The <video> and <audio> elements
              They can be used to embed multimedia content on a web page
              —          without Flash or any other proprietary plugin
              Goal: accessible, open, and royalty-free video playing natively
              in the browser
              A DOM API allows authors to create their own user interface,
              although there is a default one
              Basic syntax
              —          <video src=myvideo.ogg></video> <audio
                         src=myaudio.ogg></audio>
              Safer syntax (encoders can be specified in the MIME type
              http://wiki.whatwg.org/wiki/Video_type_parameters )
                                 >slortnoc reffubotua oediVym=di oediv<
                     >'ggo/oediv'=epyt "ggo.sresworByllib"=crs ecruos<
                    >'4pm/oediv'=epyt "v4m.sresworByllib"=crs ecruos<
                                          >p/<detroppus ton oediV>p<
                                                                >oediv/<

TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
The <video> and <audio> elements (II)
                           Attributes
                           —     @autoplay the content should be played automatically as soon as possible
                           —         @autobuffer the content should be downloaded as soon as the page loads
                           —         @controls triggers the default video controls provided by the browser
                           —         @loop the content should be played again when the end is reached
                           DOM APIs
                           —  canPlayType()
                           —         play(), pause()
                           —         volume for getting / setting the volume
                           —         muted
                           —         currentTime, startTime, duration
                           —         playbackRate
                           —         currentSrc, videoWidth, videoHeight
                           —         timedTracks
                           DOM Events
                           —  timeupdate
                           —         pause
                           —         playing
                           —         ended
                           —         loadedmetadata
             —
TELEFÓNICA I+D                       ………

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
<video> and <audio> codecs

            No agreement in a common format to be supported by all web
            browsers
            Theora video and Vorbis audio in an Ogg container (royalty free)
                       –       Firefox 3.5 and later
                       –       Google Chrome 3.0 and later
                       –       Opera 9.62 (experimental release)

            —          H.264 video and AAC audio in an MP4 container (patent encumbered)
                       –       Google Chrome 3.0 and later
                       –       Safari 3.0 and later
                       –       iPhone (H.264 baseline profile, AAC low complexity)
                       –       Android (H.264 baseline profile, AAC low complexity)

            That was the situation at the end of 2009


TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
<video> and <audio> codecs (II)
            2010 : WebM to the rescue
            —          Offers high-quality video with fast seeking
                       –       YouTube is adopting it
            —          VP8 video codec (open sourced by Google)
                       –       successor of VP3, (used by Theora)
                       –       available also for streaming
            —          Vorbis audio codec (used by Spotify)
            —          All wrapped in a subset of the Matroska container format (.webm)
            WebM Support
                       –       Already available on the dev version of Google Chrome
                       –       Opera 10.60
                       –       Firefox nightly build
                       –       IE9 has also announced support
                                                                   >
                                                                   >                                oed v<
                                                                   >slortnoc reffubotua oediVym=di oediiiiv<
                                                                   >                                oed v<
                                                                                                    oed v<
                               >
                               >
                               >                                      “                ‘         ’”
                                                                                                 ecruos<
                               > 8pv ,sibrov =scedoc;mbew/oediv =epyt "mbew.sresworByllib"=crs ecruos<
                                                                                                 ecruos<
                                                                                                 ecruos<
                      >
                      >
                      >                                           “                ‘             ecruos<
                      > 2.04.a4pm ,E10E24.1cva =scedoc;4pm/oediv =epyt "4pm.sresworByllib"=crs ecruos<
                                                                                                 ecruos<
                                                                                                 ecruos< ’”
                                 >
                                 >
                                 >                               “             ‘            ’”   ecruos<
                                 > aroeht,sibrov =scedoc;ggo/oediv =epyt "ggo.sresworByllib"=crs ecruos<
                                                                                                 ecruos<
                                                                                                 ecruos<
                                                                            > p/ <
                                                                            > p/ <                   >p<
                                                                            >p/<detroppus ton oediV>p<
                                                                            > p/ <                   >p<
                                                                                                     >p<
                                                                                                  >oed v/<
                                                                                                  >oediiiiv/<
                                                                                                  >oed v/<
                                                                                                  >oed v/<

TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
The <track> element

           It is intended to improve the accessibility of media content
           A children of <audio> or <video> that links to time-based data
           —          closed captions for deaf people
           —          subtitles for i18n
           —          TADs: Textual audio descriptions, for the blind
           —          KTV: text that appears step by step intended to be used in Karaoke systems
           —          cue points: DVD style chapter markers and similar navigational landmarks
           —          Other: ex. Lyrics, …
           Proposed syntax                                                      >
                                                                                >                                 oed v<
                                                                                >slortnoc reffubotua oediVym=di oediiiiv<
                                                                                >                                 oed v<
                                                                                                                  oed v<
                                                                    >
                                                                    >                                         ecruos<
                                                                                                              ecruos<
                                                                    >'ggo/oediv'=epyt "ggo.sresworByllib"=crs ecruos<
                                                                    >                                         ecruos<
                                                                   >
                                                                   >                                          ecruos<
                                                                   >'4pm/oediv'=epyt "v4m.sresworByllib"=crs ecruos<
                                                                   >                                          ecruos<
                                                                                                              ecruos<
                                                                     >
                                                                     >                       ‘        ’         “   ”
                                                                                                                 kcart<
                                                                                                                 kcart<
                                                                     > se =gnalcrs snoitpac =dnik "trs.halb"=crs kcart<
                                                                     >                                           kcart<
                                                                 >
                                                                 >                               ‘        ’          “
                                                                                                                 kcart<
                                                                                                                 kcart<
                                                                 > ne =gnalcrs snoitpac =dnik "trs.ne_halb"=crs kcart<
                                                                 >                                               kcart<  ”
                                                                                                               >oed v/<
                                                                                                               >oed v/<
                                                                                                               >oediiiiv/<
                                                                                                               >oed v/<

           supported kinds (possible values of the kind attribute)
           —          <subtitles, captions, descriptions, chapters, metadata>
           The src attribute must point to a WebSRT file
           The srclang attribute indicates a language tag
           Issue: Format to be supported (SSA, SubRip, USF…)


TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
WebSRT

            Web SubRip Text file format
            —          Competes with other formats for timed text, including W3C’s one
            —          Based on the subrip file format
            —          MIME type : text/srt (to be registered by IANA)
            It is the format chosen (for the moment) by HTML5 for timed-based data
            Example

                              00:00:20,000 --> 00:00:24,400
                              Altocumulus clouds occur between six thousand

                              00:00:24,600 --> 00:00:27,800
                              and twenty thousand feet above ground level.


            More info at
            —          http://www.delphiki.com/websrt/
            —          http://www.whatwg.org/specs/web-apps/current-work/#websrt


TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
The <canvas> element
               a resolution-dependent bitmap canvas which can be used for rendering graphs, game
               graphics, or other visual images on the fly
               Syntax
               —          <canvas id=myCanvas
                                                 width="300" height="225"></canvas>
               The canvas is a two-dimensional grid. The coordinate (0, 0) is at the upper-left corner
               of the canvas. Along the X-axis, values increase towards the right edge of the canvas.
               Along the Y-axis, values increase towards the bottom edge of the canvas.
               Several <canvas> elements can appear on the same page.
               —          Each canvas will show up in the DOM, and each canvas maintains its own state.
               —          The drawing context is where all the drawing methods and properties are defined.
               A 3D context (compliant with OpenGL ES 2.0 API) is also planned to be standardized
               —          https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/WebGL-spec.html
               —          Nightly builds of Firefox, Chromium, and Safari have support for the draft specification
               API Example
                                                             { )(savnaCym_ward noiiiitcnuf      no tcnuf
                                                                                                no tcnuf
                                                                                                no tcnuf
                           ;)"savnaCym (dIyBtnemelEteg.tnemucod = savnace rav             “            rav
                                                                                                       rav
                                                                                                      rav
                                              ;)"d2"(txetnoCteg.savnace = xtc rav                      rav
                                                                                                       rav
                                                                                                      rav
                                                   “       ; " ) 0 , 0 , 0 0 2 ( b g r = e l yt Sllif. xt c
                                                               ; ) 0 5 , 5 5 , 0 1 , 0 1 (t c e R llif. xt c
                                                   “
                                                 ; " ) 5. 0 , 0 0 2 , 0 , 0 ( a b g r = e l yt Sllif. xt c
                                                               ; ) 0 5 , 5 5 , 0 3 , 0 3 (t c e R llif. xt c
                                                                                                             }

TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
The <canvas> API
                     Controlling filling and stroke
                    —         fillStyle, strokeStyle can be a CSS color, a pattern, or a gradient
                     Drawing Rectangles
                    —         fillRect(x, y, width, height)
                    —         strokeRect(x, y, width, height)
                    —         clearRect(x, y, width, height)
                     Drawing Lines or Polygons
                    —         moveTo(x, y) moves the pencil to the starting point.
                    —         lineTo(x, y) draws a line to an ending point.
                    —         fill()
                    —         stroke()
                     Drawing Text
                    —         fillText(‘text’,x,y)
                    —         font can be anything you would put in a CSS font rule
                     Drawing images
                    —         drawImage(image, dx, dy)
                     Gradients, patterns, transformations (rotations, scales …)



TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
Geolocation API (I)

            Allows to obtain the user’s current position (WGS-84 coordinates)
            —          latitude, longitude, altitude, speed, heading
            —          It can take advantage of a GPS device but it is independent of the location provider
                       –       IP address, mobile network, SkyHook (WiFi), …
            W3C Standard (Google Gears was the embryo)
            —          http://www.w3.org/TR/geolocation-API/
            How it works : Asynchronously
            —          Through the navigator.geolocation object
            —          getCurrentPosition(successCB,errorCB,options)
                       –       ‘errorCB’ and ‘options’ are optional but it is advisable to specify, at least the error
                               callback
            ‘options’ object composed by the following properties
            —          maximumAge : denotes a position caching time
            —          timeout : indicates a maximum time to wait for the calculation of a position




TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
Geolocation API (II)

            maximumAge       indicates that the application is willing
            to accept a cached position whose age is no greater
            than the specified time in milliseconds
            —          otherwise a new position must be calculated
            —          Values:
                       –       0 or ‘falsy’ indicates that a new position must be immediately obtained
                       –       ‘Infinity’ indicates that a previously cached position must be returned

            timeout     number of seconds to wait for position
            calculation
            —          If time is over the error callback is invoked (timeout error code)
            —          Values
                       –       If omitted, Infinity
                       –       If 0, no call to the location provider will be issued and a timeout exception will
                               be raised if there is no an already available position (according to the caching
                               policies)


TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
Geolocation API (III)

            Monitoring the user location
            —          watchLocation(successCB,errorCB,options)
                         watchId
                       –       Acquires a new position object and starts watching the user
                               location in accordance with the options
                       –       Every time a new position is available the successCB is invoked
                               –      Ex. if maximumAge == 10 minutes then every 10 minutes
                                      a new position will be made available to the application
                       –       A watchId is returned that can be used later to stop watching


            —          clearWatch(watchId)
                       –       Stops the monitoring process


TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
Geolocation API (IV)

            Privacy
            —          User agents must ask users
                       –       Opt-in / Opt-out
            —          Applications must be prepared for ‘opt-out’
                       –       through exception handling and fallback mechanisms
            —          Timeout does not include the time the user spent in deciding if opting in or out
                       –       Google’s Chrome bug

            Example: Google Chrome




TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
Web Storage (I)
                Data storage on the browser side without relying on cookies
                —          http://dev.w3.org/html5/webstorage/
                —          http://developer.apple.com/safari/library/documentation/iphone/conceptual/safarijs
                           databaseguide/Name-ValueStorage/Name-ValueStorage.html
                Two flavors
                —          window.sessionStorage                               provides storage for the current top-level
                           browsing context (window)
                           –       If the browser context is destroyed, the data is no longer available
                           –       data will be accessible to any page from the same origin opened in that window.
                           –       A session storage is cloned if a new browsing context is created (window.open)
                —          window.localStorage                             provides storage for an origin, regardless of
                           browsing contexts
                           –       designed for storage that spans multiple windows, and lasts beyond the current session.
                Methods
                —          setItem(key,object)
                —          getItem(key)                               object
                —          removeItem(key)
                —          clear()                               Removes all the items
                —          sessionStorage.<item> / localStorage.<item>

TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
Web Storage (II)

            <storage> event
            —          fired when a storage area changes
            —          event data
                       –       key, oldValue, newValue
            —          works in Opera and Firefox
            Issues
            —          Security
                       –       Cross-Directory attacks on hosting domains
                               –      host.com/account1, host.com/account2
                               –      Possible solution: Encrypt your sensitive data
                       –       DNS Spoofing


            —          Privacy
                               –      User-Agent configured policies for removing data after a period of time
                               –      Allow to store data only to trusted sites




TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
Web SQL Database

            Allows to store data on SQL local databases
            —          http://dev.w3.org/html5/webdatabase/
            —          http://developer.apple.com/safari/library/documentation/iphone/conceptu
                       al/safarijsdatabaseguide/UsingtheJavascriptDatabase/UsingtheJavascrip
                       tDatabase.html
            Asynchronous API                                     Callback functions need to be used
            —          A synchronous flavor can be used with Web Workers
            Different browser implementations based on SQLite
            —          In fact, SQLite determines the SQL subset supported
            How it works
            —          Each origin has an associated private set of databases
                       –       Each database has a name and a current version
            —          The window object gives access to the database API
                       –       if(window.openDatabase) then Web SQL DB API is supported

TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
Web SQL Database (II)
            Creating a database
            —          openDatabase(name,version,label,estimatedSize,openCB)
                       –       openCB is an optional callback to be invoked if the database has not yet been created.
            —          changeVersion() allows scripts to atomically verify the version number and
                       change it at the same time as doing a schema update.
            Executing statements
            —          db.readTransaction(txCB,txErrorCB)                                       For select
            —          db.transaction(txCB,txErrorCB)                                     For insert / update / delete
            —          The tx callback is the function which will actually do the work. It receives an
                       SQLTransaction object as parameter
            SQLTransaction
            —          sqtx.executeSql(SQL,params*,successCB,errorCB)
                       –       The successCB will receive a SQLResultSet as parameter
                       –       The SQL can be parameterized using the param = ? syntax
            SQLResultSet
            —          Encapsulates the result of executing a transaction
            —          affectedRows                              For insert / update / delete
            —          SQLResultSetRowList                                 For select

TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
Web SQL Database (III)

            SQLResultSetRowList
            —          To get access to the rows selected
            —          Methods
                       –       length
                       –       item(index)                       0 .. length – 1
                               –      null is returned if there is no such item
            —          Each item has a property whose name is equal to the corresponding
                       column
            Synchronous execution
            —          Intended to be used with Web Workers (threads)
                       –       openDatabaseSync                      DatabaseSync
                       –       dbsync.transaction(SQLTransactionSync)
                       –       txsync.executeSql(SQL,params*)                       SQLResultSet


TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
WEB SQL (IV)
                    Security considerations
                    —          User agents should establish db quotas to avoid malicious attacks
                    —          Be careful with SQL injection, use bound parameters (=?)
                    —          Information leaking
                               –       Get non-permitted access to information
                    —          Information spoofing
                               –       change a DB without permission to take advantage. This could be
                                       potentially done by users themselves!
                    —          Cross-Directory, DNS Spoofing attacks
                    Privacy considerations
                    —          Sensitive information can be exposed, ex. Navigation history, e-
                               mail, calendar
                    —          Users should be aware of what data is stored
                               –       Enabling users to drop data from the DBs
                    —          Allow to use DBs only to trusted sites


TELEFÓNICA I+D

© 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
Html5 Taller Campus Party Vfinal2l
Html5 Taller Campus Party Vfinal2l
Html5 Taller Campus Party Vfinal2l
Html5 Taller Campus Party Vfinal2l
Html5 Taller Campus Party Vfinal2l
Html5 Taller Campus Party Vfinal2l
Html5 Taller Campus Party Vfinal2l
Html5 Taller Campus Party Vfinal2l
Html5 Taller Campus Party Vfinal2l
Html5 Taller Campus Party Vfinal2l

Weitere ähnliche Inhalte

Ähnlich wie Html5 Taller Campus Party Vfinal2l

HTML5 vs Flash : Term paper at VGSOM, IIT Kharagpur
HTML5 vs Flash : Term paper at VGSOM, IIT KharagpurHTML5 vs Flash : Term paper at VGSOM, IIT Kharagpur
HTML5 vs Flash : Term paper at VGSOM, IIT KharagpurKanishka Chakraborty
 
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...ijceronline
 
HTML5--The 30,000' View (A fast-paced overview of HTML5)
HTML5--The 30,000' View (A fast-paced overview of HTML5)HTML5--The 30,000' View (A fast-paced overview of HTML5)
HTML5--The 30,000' View (A fast-paced overview of HTML5)Peter Lubbers
 
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
 
Apache Flex and the imperfect Web
Apache Flex and the imperfect WebApache Flex and the imperfect Web
Apache Flex and the imperfect Webmasuland
 
HTML5 Overview (Silicon Valley User Group)
HTML5 Overview (Silicon Valley User Group)HTML5 Overview (Silicon Valley User Group)
HTML5 Overview (Silicon Valley User Group)robinzimmermann
 
HTML5 Technical Executive Summary
HTML5 Technical Executive SummaryHTML5 Technical Executive Summary
HTML5 Technical Executive SummaryGilad Khen
 
HTML5, the Evolution of Smart Media
HTML5, the Evolution of Smart MediaHTML5, the Evolution of Smart Media
HTML5, the Evolution of Smart MediaSeungyun Lee
 

Ähnlich wie Html5 Taller Campus Party Vfinal2l (20)

HTML5 vs Flash : Term paper at VGSOM, IIT Kharagpur
HTML5 vs Flash : Term paper at VGSOM, IIT KharagpurHTML5 vs Flash : Term paper at VGSOM, IIT Kharagpur
HTML5 vs Flash : Term paper at VGSOM, IIT Kharagpur
 
HTML5 Introduction – Features and Resources for HTML5
HTML5 Introduction – Features and Resources for HTML5HTML5 Introduction – Features and Resources for HTML5
HTML5 Introduction – Features and Resources for HTML5
 
HTML5 and XHTML2
HTML5 and XHTML2HTML5 and XHTML2
HTML5 and XHTML2
 
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--The 30,000' View (A fast-paced overview of HTML5)
HTML5--The 30,000' View (A fast-paced overview of HTML5)HTML5--The 30,000' View (A fast-paced overview of HTML5)
HTML5--The 30,000' View (A fast-paced overview of 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)
 
HTML 5
HTML 5HTML 5
HTML 5
 
HTML5
HTML5HTML5
HTML5
 
Html5
Html5Html5
Html5
 
XHTML Web Designs.pdf
XHTML Web Designs.pdfXHTML Web Designs.pdf
XHTML Web Designs.pdf
 
Html5
Html5Html5
Html5
 
Mwml
MwmlMwml
Mwml
 
Apache Flex and the imperfect Web
Apache Flex and the imperfect WebApache Flex and the imperfect Web
Apache Flex and the imperfect Web
 
Html5 mobile apps
Html5 mobile appsHtml5 mobile apps
Html5 mobile apps
 
HTML5 Overview (Silicon Valley User Group)
HTML5 Overview (Silicon Valley User Group)HTML5 Overview (Silicon Valley User Group)
HTML5 Overview (Silicon Valley User Group)
 
HTML5 Technical Executive Summary
HTML5 Technical Executive SummaryHTML5 Technical Executive Summary
HTML5 Technical Executive Summary
 
Qnx html5 hmi
Qnx html5 hmiQnx html5 hmi
Qnx html5 hmi
 
sidje
sidjesidje
sidje
 
Html5 Flyover
Html5 FlyoverHtml5 Flyover
Html5 Flyover
 
HTML5, the Evolution of Smart Media
HTML5, the Evolution of Smart MediaHTML5, the Evolution of Smart Media
HTML5, the Evolution of Smart Media
 

Kürzlich hochgeladen

Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 

Kürzlich hochgeladen (20)

Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 

Html5 Taller Campus Party Vfinal2l

  • 1. HTML5 An introduction to the language and APIs José M. Cantera Fonseca Senior Technologist TELEFÓNICA I+D Date: July 2010 © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 2. What is HTML5? HTML5 reflects an effort, started in 2004, to study contemporary HTML implementations and deployed content in order to improve interoperability on the Web platform HTML5 — encompasses the set of technologies (language and APIs) (to be) implemented by web browsers in the short, medium-term (and perhaps long-term) — will be the core technology (delivery format) on which future Web Applications will be based on The HTML5 draft: — Defines a single language called HTML5 which can be written in HTML syntax and in XML syntax. — Defines detailed processing models to foster interoperable implementations. — Improves markup for documents based on prevailing authoring practices — Introduces markup and APIs for emerging idioms, such as Web applications. TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 3. HTML History (I) The early days (1990-1995) at CERN and IETF — http://www.w3.org/People/Raggett/the-early-days-of-the-Web.html HTML 4.01 (24th December 1999) — At this time, the W3C membership decided to stop evolving HTML 2000 – 2004 XHTML and DOM standardization at W3C June 2004 (just after the W3C workshop on web apps) Apple, Mozilla, and Opera found the WHATWG (Web Hypertext Applications Working Group) http://whatwg.org — The group aims to develop specifications based on HTML and related technologies to ease the deployment of interoperable Web Applications [...] for implementation in mass-market Web browsers, in particular Safari, Mozilla, and Opera; [the group] intends to ensure that all its specifications address backwards compatibility concerns [...] … TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 4. HTML History (II) 2005-2006 The WHATWG working underground October 2006 Reinventing HTML blog entry (Tim Berners-Lee) — Some things are clearer with hindsight of several years. It is necessary to evolve HTML incrementally. The attempt to get the world to switch to XML, including quotes around attribute values and slashes in empty tags and namespaces all at once didn't work... The plan is to charter a completely new HTML group. Unlike the previous one, this one will be chartered to do incremental improvements to HTML, as also in parallel xHTML. 2007 — 5th W3C HTML Working Group chartered http://www.w3.org/2007/03/HTML-WG-charter.html – Chairs: Chris Wilson (Microsoft), Sam Ruby (IBM). Team Contact: Dan Connolly — Apple, Mozilla, and Opera allowed the W3C to publish the specification under the W3C copyright, while keeping a version with the less restrictive license on the WHATWG site. — Since then, both groups have been working together. TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 5. HTML History (III) July 2009 the end of the work on XHTML2 and XHTML Modularization is announced — http://www.w3.org/2009/06/xhtml-faq.html October 2009 WHATWG announces Last Call for Comments for HTML5 http://blog.whatwg.org/html5-at-last-call June 2010 latest HTML5 WD published at W3C http://www.w3.org/TR/2010/WD-html5-20100624/ More info at — http://esw.w3.org/topic/HTML/history — http://www.atendesigngroup.com/blog/brief-history-of-html TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 6. HTML5 Main Design Principles Differentiating between — Conforming Language : Pages syntactically correct — Supported Lang. : Pages not syntactically correct but which actually work Compatibility — Support existing content – to process existing HTML documents as HTML 5 and get results that are compatible with the existing expectations of users and authors, based on the behavior of existing browsers. – Ex. <b>a<i>b</b>c</i> — Degrade gracefully – Web content should degrade gracefully in older or less capable user agents, even when making use of new elements, attributes, APIs and content models. – Ex. the <video> element allows to define fallback content if video is not supported — Do not reinvent the wheel – Ex. contenteditable=“” — Pave the cowpaths – Ex. <br/> — Evolution not revolution – Switching to XML syntax requires a global change, so continue supporting classic HTML syntax as well. TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 7. HTML5 Main Design Principles (II) Interoperability — Well-Defined behavior – Prefer to clearly define behavior that content authors could rely on, in preference to vague or implementation-defined behavior. – This way, it is easier to author content that works in a variety of user agents. However, implementations should still be free to make improvements in areas such as user interface and quality of rendering. — Avoid needless complexity — Handle errors – Error handling should be defined so that interoperable implementations can be achieved. – Prefer graceful error recovery to hard failure, so that users are not exposed to authoring errors. TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 8. © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal TELEFÓNICA I+D >lmth/< >ydob/< >p/<.tnemucod LMTH elpmaxe na si sihT>p< >1h/<elpmaxE>1h< >"elpmaxe"=ssalc ydob< >daeh/< >/ ssc.teehsym =ferh teehselyts =ler knil< “ “ “ “ >eltit/< tnemucoD LMTH nA>eltit< >daeh< >"lmthx/9991/gro.3w.www//:ptth"=snlmx lmth< >?"8-FTU"=gnidocne "0.1"=noisrev lmx?< (application/xhtml+xml) or (application/xml) XML Serialization >lmth/< >ydob/< .tnemucod LMTH elpmaxe na si sihT>p< >1h/<elpmaxE>1h< >elpmaxe=ssalc ydob< >daeh/< >ssc.teehsym=ferh teehselyts=ler knil< >eltit/<tnemucoD LMTH nA>eltit< > "8-FTU"=tesrahc atem< >daeh< >lmth< >lmth EPYTCOD!< (text/html) HTML Serialization Getting Started
  • 9. HTML5 .- XHTML vs HTML XHTML taught us — lowercase tags! — close void elements! (img, meta, input, ...) — no empty attributes! (disabled=”disabled”) — always put attribute values in double quotes! HTML5 says: you choose TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 10. HTML5 .- XHTML vs HTML HTML syntax remarks — HTML syntax is case-insensitive — Void elements (forbidden from containing any content at all) – <link type="text/css" rel="stylesheet" href="style.css"> — Empty elements (any element that does not contain any content within it) – <span></span> — boolean attributes, <true> value specified using an empty attribute (with no value), the empty string or a value which it is equal to the name of the attribute. ‘false’ or ‘true’ are invalid values! – <input disabled> — Unquoted attribute values <div class=example> (provided there are no spaces or quotes) Any document, including a document authored with the intention of being XHTML, served as text/html is technically an HTML document. — See current problems with XHTML served as text/html at http://www.hixie.ch/advocacy/xhtml Documents with an XML media type are always handled in standards (no quirks) mode A polyglot HTML document is a document that conforms to both the HTML and XHTML syntactic requirements, and which can be processed as either by browsers, depending on the MIME type used. More info at http://wiki.whatwg.org/wiki/HTML_vs._XHTML TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 11. HTML5 Syntax Remarks Tag soup? No! — small degree of freedom, but very detailed rules for parsing — validation will matter – http://html5.validator.nu/ — keep a clean coding style, you’ll thank yourself for it later HTML5 is designed so that old HTML 4 browsers can safely ignore new HTML5 constructs “Documents must not use deprecated features. User agents should support deprecated features.” — Extensive error handling by UAs TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 12. Global Attributes @accesskey Accessibility / Mobile @class @contenteditable Rich in place editing of content @contextmenu For assigning a contextual menu to an element @dir for the reading direction of languages @draggable for drag&drop interaction @hidden In HTML5 any element can be hidden @id @itemid, @itemprop, @itemref, @itemscope, @itemtype — Microdata (Semantics) @lang @spellcheck Activates spellchecking on a textual input @style @tabindex @title @role, @aria-xxx To instruct Assistive Technology, see later @data-xx for extensibility, see later TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 13. New Structural Elements They can be employed in many situations where <div> is used today and should help you make more readable, maintainable, HTML source. <section> — a generic document or application section — Ex. a book chapter <nav> — A section devoted to major navigation blocks <article> — A self-contained composition that is intended to be independently distributable or reusable (e.g. in syndication) — Ex. forum post, newspaper article, a Web log entry, a gadget … <aside> — A section that consists of content that is tangentially related to the main content — Ex. sidebars, ads, TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 14. Sectioning Example If you just go through your document and blindly replace all the <div>s with <section>s you are doing it wrong. Each time you nest a <section>, you increase the outline depth by 1 • http://gsnedders.html5.org/outliner/ >lmth EPYTCOD!< >lmth< >daeh< > "8-FTU"=tesrahc atem< Document Outline >eltit/<tnemucoD LMTH nA>eltit< >daeh/< This is the main header >elpmaxe=ssalc ydob< +--This is a subheader >1h/<redaeh niam eht si sihT>1h< >noitces< +--This is a subsubheader >1h/<redaehbus a si sihT>1h< >noitces< +--This is a second subheader >1h/<redaehbusbus a si sihT>1h< >noitces/< >noitces/< >noitces< >1h/<redaehbus dnoces a si sihT>1h< >noitces/< >ydob/< >lmth/< TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 15. New Structural Elements <hgroup> — represents the heading of a section <header> — a group of introductory or navigational aids <footer> — A footer for its nearest ancestor sectioning content — Ex. copyright data, links to related documents, … <time> — Represents either a time on a 24 hour clock or a precise date in the proleptic Gregorian calendar <mark> — A run of text marked or highlighred for reference purposes TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 16. © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal TELEFÓNICA I+D >redaeh/< >van/< >llllu/< >redaeh/< >van/< > u/< >redaeh/< >van/< > u/< >redaeh/< >van/< > u/< > /<>a/< ó > > >iiiillll/<>a/< n inipO>4=yekssecca n inipO =eltit lmth.noinipo"=ferh a<>iiiillll< > /<>a/< > /<>a/< > ó “ “ “ a<> < a<> < a<> < > /<>a/< > /<>a/< > /<>a/< > > >iiiillll/<>a/<aporuE>3=yekssecca aporuE =eltit lmth.aporue"=ferh a<>iiiillll< > “ “ “ a<> < a<> < a<> < > /<>a/< > /<>a/< > /<>a/< > > >iiiillll/<>a/<odnuM>2=yekssecca odnuM led otseR =eltit lmth.odnum"=ferh a<>iiiillll< > “ “ “ a<> < a<> < a<> < > /<>a/< > /<>a/< ñ > > >iiiillll/<>a/<a apsE>1=yekssecca a apsE =eltit lmth.a apse"=ferh a<>iiiillll< > /<>a/< > ñ “ “ “ ñ a<> < a<> < a<> < > u< >llllu< > u< > u< >van< >van< >van< >van< >puorgh/< >puorgh/< >puorgh/< >puorgh/< >3h/<>em t/<>rbba/< >3h/<>em t/<>rbba/< ” “ rbba< >3h/<>emiiiit/<>rbba/<.h> saroh =eltit rbba< 73:61 odazilautcA >3h/<>em t/<>rbba/< rbba< rbba< > > .9002/21/01 seveuJ>etadbup "00:10+00:73:61T01-21-9002"=emitetad emiiiit<>3h< > em t<>3h em t<>3h em t<>3h ñ >2h/< >2h/< >2h/<lo apsE ne laidnuM red L>2h< >2h/< í >2h< >2h< >2h< >1h/< >1h/< >1h/<se.odnuM lE>1h< >1h/< >1h< >1h< >1h< >puorgh< >puorgh< >puorgh< >puorgh< >redaeh< >redaeh< >redaeh< >redaeh< > > >ocidoirep=ssalc niam=di noiiiitces< > no tces< no tces< no tces< >redaeh/< >redaeh/< >redaeh/< >redaeh/< >v d/< >v d/< >viiiid/< >v d/< >van/< >van/< >van/< >van/< > u/< >llllu/< > u/< > u/< > /<>a/< > /<>a/< > /<>a/< >> >iiiillll/<>a/<acetoremeH>"lmth.acetoremeh"=ferh a<>iiiillll< > a<> < a<> < a<> < > /<>a/< > /<>a/< > /<>a/< > > >iiiillll/<>a/<selaicepsE>"lmth.selaicepse"=ferh a<>iiiillll< > a<> < a<> < a<> < > /<>a/< > /<>a/< > /<>a/< > > > a<> < >iiiillll/<>a/<sgolB>"lmth.sgolb"=ferh a<>iiiillll< a<> < a<> < > /<>a/< > /<>a/< > /<>a/< > > >iiiillll/<>a/<aidemitluM>"lmth.aidemitlum"=ferh a<>iiiillll< > a<> < a<> < a<> < > u< >llllu< > u< > u< >van< >van< >van< >van< > > >"odnuM lE ed opitogoL =tla gnp.odnuMlEogol"=crs gmiiii< > “ “ gm < gm < gm < > >rab=ssalc viiiid< > > v d< v d< v d< >redaeh< >redaeh< >redaeh< >redaeh< > > >reniatnoCpot=ssalc pot=di viiiid< > v d< v d< v d< >ydob< >ydob< >ydob< >ydob< >daeh/< >daeh/< >daeh/< >daeh/< > > >"ssc.odnumle =ferh teehselyts=ler kniiiillll< > “ kn < kn < kn < > > > >"8-FTU"=tesrahc atem< atem< atem< atem< >e t t/< >e t t< >e t t< >elllltiiiit/<se.odnumle>elllltiiiit< >e t t/< >e t t/< >e t t< >daeh< >daeh< >daeh< >daeh< > mth< mth< >se=gnal llllmth< > > mth< >lmth EPYTCOD!< Example “Diario El Mundo” as HTML5
  • 17. © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal TELEFÓNICA I+D > mth/< >ydob/< > mth/< >ydob/< >llllmth/< >ydob/< >-- lapicnirp euqolb led nif --!< >viiiid/< > mth/< >ydob/< >v d/< >v d/< >v d/< >ed sa/< >ed sa/< >ediiiisa/< >ed sa/< >no tces/<> >no tces/<> >no tces/<> no tces< no tces< >noiiiitces/<> opmeit=ssalc noiiiitces< no tces< >no tces/<> >no tces/<> >no tces/<> no tces< no tces< >noiiiitces/<>soicivres=ssalc noiiiitces< no tces< >ed sa< >ed sa< >ediiiisa< >ed sa< >no tces/< >no tces/< >-- ocidoirep led nif --!< >noiiiitces/< >no tces/< >retoof/< >retoof/< >retoof/< >retoof/< >van/<> u/< >van/<>llllu/< >van/<> u/< >van/<> u/< > /<>a/< > /<>a/< > /<>a/< í > > >iiiillll/<>a/<dadicavirP ed acit loP>lmth.virp=ferh a<>iiiillll< > a<> < a<> < a<> < > /<>a/< > /<>a/< > /<>a/< > > > a<> < >iiiillll/<>a/<lageL osivA>lmth.osiva=ferh a<>iiiillll< a<> < a<> < > u<>van< >llllu<>van< > u<>van< > u<>van< <!– del periódico --> >retoof< >retoof< >retoof< >retoof< >no tces/< >no tces/< >-- adatrop al ed nif --!< >noiiiitces/< >no tces/< >e c tra/< >e c tra/< >ellllciiiitra/< >e c tra/< >v d/<>p/< >v d/<>p/< >viiiid/<>p/< .n isirp ne osac led sodatupmi ocnic sol ed >v d/<>p/< ó ocin le res ,o acraC leugiM ,ollitsaC led atraM anallives nevoj al ed osefnoc onisesa le ,n icalecracxe atse noC >p< ú á ñ ó >p< >p< >p< >> >taolf=ssalc gnp.negami=crs "leumaS ed otoF"=tla gmiiii<>viiiid< > gm <>v d< gm <>v d< gm <>v d< >puorgh/< >puorgh/< >puorgh/< >puorgh/< >1h/<>a/< >1h/<>a/< > > >1h/<>a/<edrat atse rdlas euq ,leumaS a datrebil ne renop anedro aicneiduA aL >"lmth.1n"=ferh a<>1h< >1h/<>a/< á > a<>1h< a<>1h< a<>1h< >2h/< >2h/< >naps/< >naps/< > > >2h/<n icneted us edsed avleuH ed lecr c al ne odatse aH >naps/< ATRAM OSAC>yrogetac=ssalc naps<>2h< >2h/< ó á >naps/< > naps<>2h< naps<>2h< naps<>2h< >puorgh< >puorgh< >puorgh< >puorgh< >e c tra< >e c tra< >ellllciiiitra< >e c tra< >e c tra/< >e c tra/< >ellllciiiitra/< >e c tra/< >retoof/< >retoof/< >retoof/< >retoof/< >van/<>a/< >van/<>a/< ó > > >van/<>a/<yeR led n icaidem al nedip satsitrA soL>"lmth.x"=ferh a<>van< >van/<>a/< > a<>van< a<>van< a<>van< >retoof< >retoof< >retoof< >retoof< >p/< >p/< >p/< .'radiaH osac' le ne >p/< "sairasecen senoitseg sal" razilaer a otseupsid artseum es solraC nauJ nod euq al ne atrac anu od el ah araL oyaC >p< í >p< >p< >p< >redaeh/< >redaeh/< >redaeh/< >redaeh/< >puorgh/< >puorgh/< >puorgh/< >puorgh/< >1h/<>a/< >1h/<>a/< >1h/<>a/< > > a<> a<> >1h/<>a/< jed el on onreiboG le orep 'radiaH' osac le ne raidem osiuq yeR lE >"lmth.1n"=ferh a<>sweNtsrif=ssalc 1h< ó > a<> 1h< 1h< 1h< >2h/< >2h/< >2h< >2h/<iuarahas atsivitca al ed agleuh al aunitnoC>2h< >2h/< >2h< >2h< >puorgh< >puorgh< >puorgh< >puorgh< >redaeh< >redaeh< >redaeh< >redaeh< >e c tra< >e c tra< >ellllciiiitra< >e c tra< >1h/< >1h/< >1h/<odnuM lE ed adatroP>1h< >1h/< >1h< >1h< >1h< > > >anigap=ssalc adatrop=di noiiiitces< > no tces< no tces< no tces< Example “Diario El Mundo” as HTML5
  • 18. HTML5 Forms and Application Elements <input> It has been extended to support automatic validations for different datatypes — type=number, range — type=date, time, datetime, month, week (using ISO8601 machine- readable format) — type=email, url, tel — type=color <input> can also constrain user’s input — @max, @min, @step — @required, @maxlength — @pattern (Javascript pattern) @autofocus attribute to say bye, bye to scripting, i.e. element.focus() @autocomplete (on,off) to enable / disable web browser autocompletion @readonly, @disabled TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 19. HTML5 Forms and Application Elements @placeholder a placeholder string to help users @multiple to allow multiple inputs @list to associate a list of possible values to an input @formnovalidate on <input type=submit> to indicate not to perform validations @tabindex (now can be bound to any element) @novalidate on <form> @formaction on <input type=submit> Events — forminput — formchange — invalid TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 20. CSS Pseudo-Classes to support form styling Simplify styling of controls by defining a set of pseudo-classes corresponding to the state of elements — :enabled — :disabled — :valid — :invalid — :in-range — :out-of-range — :required Example input:invalid { border-color: red; border-style: solid; } TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 21. HTML5 Forms and Application Elements DOM APIs — input.value — input.valueAsNumber — input.valueAsDate — input.stepUp() — input.stepDown() — input.checkValidity(), form.checkValidity() — input.validity – returns a ValidityState object which indicates whether the element is valid and in case it is not the reason why — input.validity.valid — input.setCustomValidity TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 22. HTML5 Forms and Application Elements <output> element — To display a computation output, ex. – <output id=myout for=“a b” onFormChange=“this.value = a.value + b.value”> Assigning labels to form elements — <label>Name:<input type=text name=i size=10 title=“Enter your name”></label> — @for attribute on label <datalist> element — It is a set of <option> elements that represent predefined options for other controls. — Using the @list attribute it can be hooked up to an input For more details see my demo using Opera or Google WebForms 2 http://code.google.com/p/webforms2/ TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 23. The <video> and <audio> elements They can be used to embed multimedia content on a web page — without Flash or any other proprietary plugin Goal: accessible, open, and royalty-free video playing natively in the browser A DOM API allows authors to create their own user interface, although there is a default one Basic syntax — <video src=myvideo.ogg></video> <audio src=myaudio.ogg></audio> Safer syntax (encoders can be specified in the MIME type http://wiki.whatwg.org/wiki/Video_type_parameters ) >slortnoc reffubotua oediVym=di oediv< >'ggo/oediv'=epyt "ggo.sresworByllib"=crs ecruos< >'4pm/oediv'=epyt "v4m.sresworByllib"=crs ecruos< >p/<detroppus ton oediV>p< >oediv/< TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 24. The <video> and <audio> elements (II) Attributes — @autoplay the content should be played automatically as soon as possible — @autobuffer the content should be downloaded as soon as the page loads — @controls triggers the default video controls provided by the browser — @loop the content should be played again when the end is reached DOM APIs — canPlayType() — play(), pause() — volume for getting / setting the volume — muted — currentTime, startTime, duration — playbackRate — currentSrc, videoWidth, videoHeight — timedTracks DOM Events — timeupdate — pause — playing — ended — loadedmetadata — TELEFÓNICA I+D ……… © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 25. <video> and <audio> codecs No agreement in a common format to be supported by all web browsers Theora video and Vorbis audio in an Ogg container (royalty free) – Firefox 3.5 and later – Google Chrome 3.0 and later – Opera 9.62 (experimental release) — H.264 video and AAC audio in an MP4 container (patent encumbered) – Google Chrome 3.0 and later – Safari 3.0 and later – iPhone (H.264 baseline profile, AAC low complexity) – Android (H.264 baseline profile, AAC low complexity) That was the situation at the end of 2009 TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 26. <video> and <audio> codecs (II) 2010 : WebM to the rescue — Offers high-quality video with fast seeking – YouTube is adopting it — VP8 video codec (open sourced by Google) – successor of VP3, (used by Theora) – available also for streaming — Vorbis audio codec (used by Spotify) — All wrapped in a subset of the Matroska container format (.webm) WebM Support – Already available on the dev version of Google Chrome – Opera 10.60 – Firefox nightly build – IE9 has also announced support > > oed v< >slortnoc reffubotua oediVym=di oediiiiv< > oed v< oed v< > > > “ ‘ ’” ecruos< > 8pv ,sibrov =scedoc;mbew/oediv =epyt "mbew.sresworByllib"=crs ecruos< ecruos< ecruos< > > > “ ‘ ecruos< > 2.04.a4pm ,E10E24.1cva =scedoc;4pm/oediv =epyt "4pm.sresworByllib"=crs ecruos< ecruos< ecruos< ’” > > > “ ‘ ’” ecruos< > aroeht,sibrov =scedoc;ggo/oediv =epyt "ggo.sresworByllib"=crs ecruos< ecruos< ecruos< > p/ < > p/ < >p< >p/<detroppus ton oediV>p< > p/ < >p< >p< >oed v/< >oediiiiv/< >oed v/< >oed v/< TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 27. The <track> element It is intended to improve the accessibility of media content A children of <audio> or <video> that links to time-based data — closed captions for deaf people — subtitles for i18n — TADs: Textual audio descriptions, for the blind — KTV: text that appears step by step intended to be used in Karaoke systems — cue points: DVD style chapter markers and similar navigational landmarks — Other: ex. Lyrics, … Proposed syntax > > oed v< >slortnoc reffubotua oediVym=di oediiiiv< > oed v< oed v< > > ecruos< ecruos< >'ggo/oediv'=epyt "ggo.sresworByllib"=crs ecruos< > ecruos< > > ecruos< >'4pm/oediv'=epyt "v4m.sresworByllib"=crs ecruos< > ecruos< ecruos< > > ‘ ’ “ ” kcart< kcart< > se =gnalcrs snoitpac =dnik "trs.halb"=crs kcart< > kcart< > > ‘ ’ “ kcart< kcart< > ne =gnalcrs snoitpac =dnik "trs.ne_halb"=crs kcart< > kcart< ” >oed v/< >oed v/< >oediiiiv/< >oed v/< supported kinds (possible values of the kind attribute) — <subtitles, captions, descriptions, chapters, metadata> The src attribute must point to a WebSRT file The srclang attribute indicates a language tag Issue: Format to be supported (SSA, SubRip, USF…) TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 28. WebSRT Web SubRip Text file format — Competes with other formats for timed text, including W3C’s one — Based on the subrip file format — MIME type : text/srt (to be registered by IANA) It is the format chosen (for the moment) by HTML5 for timed-based data Example 00:00:20,000 --> 00:00:24,400 Altocumulus clouds occur between six thousand 00:00:24,600 --> 00:00:27,800 and twenty thousand feet above ground level. More info at — http://www.delphiki.com/websrt/ — http://www.whatwg.org/specs/web-apps/current-work/#websrt TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 29. The <canvas> element a resolution-dependent bitmap canvas which can be used for rendering graphs, game graphics, or other visual images on the fly Syntax — <canvas id=myCanvas width="300" height="225"></canvas> The canvas is a two-dimensional grid. The coordinate (0, 0) is at the upper-left corner of the canvas. Along the X-axis, values increase towards the right edge of the canvas. Along the Y-axis, values increase towards the bottom edge of the canvas. Several <canvas> elements can appear on the same page. — Each canvas will show up in the DOM, and each canvas maintains its own state. — The drawing context is where all the drawing methods and properties are defined. A 3D context (compliant with OpenGL ES 2.0 API) is also planned to be standardized — https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/WebGL-spec.html — Nightly builds of Firefox, Chromium, and Safari have support for the draft specification API Example { )(savnaCym_ward noiiiitcnuf no tcnuf no tcnuf no tcnuf ;)"savnaCym (dIyBtnemelEteg.tnemucod = savnace rav “ rav rav rav ;)"d2"(txetnoCteg.savnace = xtc rav rav rav rav “ ; " ) 0 , 0 , 0 0 2 ( b g r = e l yt Sllif. xt c ; ) 0 5 , 5 5 , 0 1 , 0 1 (t c e R llif. xt c “ ; " ) 5. 0 , 0 0 2 , 0 , 0 ( a b g r = e l yt Sllif. xt c ; ) 0 5 , 5 5 , 0 3 , 0 3 (t c e R llif. xt c } TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 30. The <canvas> API Controlling filling and stroke — fillStyle, strokeStyle can be a CSS color, a pattern, or a gradient Drawing Rectangles — fillRect(x, y, width, height) — strokeRect(x, y, width, height) — clearRect(x, y, width, height) Drawing Lines or Polygons — moveTo(x, y) moves the pencil to the starting point. — lineTo(x, y) draws a line to an ending point. — fill() — stroke() Drawing Text — fillText(‘text’,x,y) — font can be anything you would put in a CSS font rule Drawing images — drawImage(image, dx, dy) Gradients, patterns, transformations (rotations, scales …) TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 31. Geolocation API (I) Allows to obtain the user’s current position (WGS-84 coordinates) — latitude, longitude, altitude, speed, heading — It can take advantage of a GPS device but it is independent of the location provider – IP address, mobile network, SkyHook (WiFi), … W3C Standard (Google Gears was the embryo) — http://www.w3.org/TR/geolocation-API/ How it works : Asynchronously — Through the navigator.geolocation object — getCurrentPosition(successCB,errorCB,options) – ‘errorCB’ and ‘options’ are optional but it is advisable to specify, at least the error callback ‘options’ object composed by the following properties — maximumAge : denotes a position caching time — timeout : indicates a maximum time to wait for the calculation of a position TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 32. Geolocation API (II) maximumAge indicates that the application is willing to accept a cached position whose age is no greater than the specified time in milliseconds — otherwise a new position must be calculated — Values: – 0 or ‘falsy’ indicates that a new position must be immediately obtained – ‘Infinity’ indicates that a previously cached position must be returned timeout number of seconds to wait for position calculation — If time is over the error callback is invoked (timeout error code) — Values – If omitted, Infinity – If 0, no call to the location provider will be issued and a timeout exception will be raised if there is no an already available position (according to the caching policies) TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 33. Geolocation API (III) Monitoring the user location — watchLocation(successCB,errorCB,options) watchId – Acquires a new position object and starts watching the user location in accordance with the options – Every time a new position is available the successCB is invoked – Ex. if maximumAge == 10 minutes then every 10 minutes a new position will be made available to the application – A watchId is returned that can be used later to stop watching — clearWatch(watchId) – Stops the monitoring process TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 34. Geolocation API (IV) Privacy — User agents must ask users – Opt-in / Opt-out — Applications must be prepared for ‘opt-out’ – through exception handling and fallback mechanisms — Timeout does not include the time the user spent in deciding if opting in or out – Google’s Chrome bug Example: Google Chrome TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 35. Web Storage (I) Data storage on the browser side without relying on cookies — http://dev.w3.org/html5/webstorage/ — http://developer.apple.com/safari/library/documentation/iphone/conceptual/safarijs databaseguide/Name-ValueStorage/Name-ValueStorage.html Two flavors — window.sessionStorage provides storage for the current top-level browsing context (window) – If the browser context is destroyed, the data is no longer available – data will be accessible to any page from the same origin opened in that window. – A session storage is cloned if a new browsing context is created (window.open) — window.localStorage provides storage for an origin, regardless of browsing contexts – designed for storage that spans multiple windows, and lasts beyond the current session. Methods — setItem(key,object) — getItem(key) object — removeItem(key) — clear() Removes all the items — sessionStorage.<item> / localStorage.<item> TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 36. Web Storage (II) <storage> event — fired when a storage area changes — event data – key, oldValue, newValue — works in Opera and Firefox Issues — Security – Cross-Directory attacks on hosting domains – host.com/account1, host.com/account2 – Possible solution: Encrypt your sensitive data – DNS Spoofing — Privacy – User-Agent configured policies for removing data after a period of time – Allow to store data only to trusted sites TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 37. Web SQL Database Allows to store data on SQL local databases — http://dev.w3.org/html5/webdatabase/ — http://developer.apple.com/safari/library/documentation/iphone/conceptu al/safarijsdatabaseguide/UsingtheJavascriptDatabase/UsingtheJavascrip tDatabase.html Asynchronous API Callback functions need to be used — A synchronous flavor can be used with Web Workers Different browser implementations based on SQLite — In fact, SQLite determines the SQL subset supported How it works — Each origin has an associated private set of databases – Each database has a name and a current version — The window object gives access to the database API – if(window.openDatabase) then Web SQL DB API is supported TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 38. Web SQL Database (II) Creating a database — openDatabase(name,version,label,estimatedSize,openCB) – openCB is an optional callback to be invoked if the database has not yet been created. — changeVersion() allows scripts to atomically verify the version number and change it at the same time as doing a schema update. Executing statements — db.readTransaction(txCB,txErrorCB) For select — db.transaction(txCB,txErrorCB) For insert / update / delete — The tx callback is the function which will actually do the work. It receives an SQLTransaction object as parameter SQLTransaction — sqtx.executeSql(SQL,params*,successCB,errorCB) – The successCB will receive a SQLResultSet as parameter – The SQL can be parameterized using the param = ? syntax SQLResultSet — Encapsulates the result of executing a transaction — affectedRows For insert / update / delete — SQLResultSetRowList For select TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 39. Web SQL Database (III) SQLResultSetRowList — To get access to the rows selected — Methods – length – item(index) 0 .. length – 1 – null is returned if there is no such item — Each item has a property whose name is equal to the corresponding column Synchronous execution — Intended to be used with Web Workers (threads) – openDatabaseSync DatabaseSync – dbsync.transaction(SQLTransactionSync) – txsync.executeSql(SQL,params*) SQLResultSet TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal
  • 40. WEB SQL (IV) Security considerations — User agents should establish db quotas to avoid malicious attacks — Be careful with SQL injection, use bound parameters (=?) — Information leaking – Get non-permitted access to information — Information spoofing – change a DB without permission to take advantage. This could be potentially done by users themselves! — Cross-Directory, DNS Spoofing attacks Privacy considerations — Sensitive information can be exposed, ex. Navigation history, e- mail, calendar — Users should be aware of what data is stored – Enabling users to drop data from the DBs — Allow to use DBs only to trusted sites TELEFÓNICA I+D © 2009 Telefónica Investigación y Desarrollo, S.A. Unipersonal