You are on page 1of 71

HTML5

PDF generated using the open source mwlib toolkit. See http://code.pediapress.com/ for more information.
PDF generated at: Thu, 29 Jul 2010 11:32:16 UTC
Contents
Articles
Canvas element 1
Comparison of layout engines (HTML5) 4
HTML5 15
HTML5 video 19
Immediate mode 25
DOM storage 26
Web Storage 29
Drag-and-drop 32
MIME type 34
W3C Geolocation API 38
Web SQL Database 40
Indexed Database API 41
SVG 42
MathML 54

References
Article Sources and Contributors 66
Image Sources, Licenses and Contributors 68

Article Licenses
License 69
Canvas element 1

Canvas element
HTML

• HTML and HTML5


• Dynamic HTML
• XHTML
• XHTML Mobile Profile and
C-HTML
• Canvas element
• Character encodings
• Document Object Model
• Font family
• HTML editor
• HTML element
• HTML Frames
• HTML5 video
• HTML scripting
• Web browser engine
• Quirks mode
• Style sheets
• Unicode and HTML
• W3C and WHATWG
• Web colors
• WebGL
• Web Storage
• Comparison of
• document markup languages
• web browsers
• layout engines for
• HTML
• HTML5
• HTML5 Canvas
• HTML5 Media
• Non-standard HTML
• XHTML

The canvas element is part of HTML5 and allows for dynamic, scriptable rendering of 2D shapes and bitmap
images. It is a low level, procedural model that updates a bit map and does not have a built in scene graph.
Canvas element 2

History
It was initially introduced by Apple for use inside their own Mac OS X WebKit component, powering applications
like Dashboard widgets and the Safari browser. Later, it was adopted by Gecko browsers and Opera[1] and
standardized by the WHATWG on new proposed specifications for next generation web technologies.
In August 2009, text API and pixel manipulation were added and implemented in web browsers.

Usage
Canvas consists of a drawable region defined in HTML code with height and width attributes. JavaScript code may
access the area through a full set of drawing functions similar to other common 2D APIs, thus allowing for
dynamically generated graphics. Some anticipated uses of the canvas include building graphs, animations, games,
and image composition.

Example
The following code creates a Canvas element in an HTML page:

<canvas id="example" width="200" height="200">


This text is displayed if your browser does not support HTML5 Canvas.
</canvas>

Using JavaScript, you can draw on the canvas:

var example = document.getElementById('example');


var context = example.getContext('2d');
context.fillStyle = "rgb(255,0,0)";
context.fillRect(30, 30, 50, 50);

This code draws a red rectangle on the screen.

Canvas vs Scalable Vector Graphics (SVG)


SVG is an earlier standard for drawing shapes in browsers. However, it is at a fundamentally higher level because
each drawn shape is remembered as objects in a scene graph or DOM, which are subsequently rendered to a bit map.
This means that if attributes of the object are changed, the SVG can automatically re-render the scene.
In the example above, once the rectangle is drawn, the fact that it was drawn is forgotten by the system. If its
position was to be changed, the entire scene would need to be redrawn, including any objects that might have been
covered by the rectangle. But in the equivalent SVG API, one could simply change the position attributes of the
rectangle and the browser would determine how to repaint it. That said, it is also possible to create a canvas in layers
and then recreate specific layers.
The SVG DOM can be represented in static XML, and complex scenes created and manipulated with XML editing
tools.
The SVG scene graph enables events to be associated with objects, so one can create a rectangle with an
onmousedown event. To get the same functionality with canvas one must manually match the coordinates of the
mouse click with the coordinates of the drawn rectangle to determine whether it was clicked.
Conceptually, the Canvas is a lower level protocol upon which SVG might be built. However, this is not (normally)
the case—they are independent standards. The situation is complicated because there are scene graph libraries for
Canvas, and SVG has some bit map manipulation functionality.
Canvas element 3

Reactions
At the time of its introduction the canvas element was met with mixed reactions from the web standards community.
There have been arguments against Apple's decision to create a new proprietary element instead of supporting the
SVG standard. There are other concerns about syntax e.g. the absence of a namespace.[2]

Intellectual property over canvas


On March 14, 2007, WebKit developer Dave Hyatt forwarded an email from Apple's Senior Patent Counsel, Helene
Plotka Workman[3] , which stated that Apple reserved all intellectual property rights relative to WHATWG’s Web
Applications 1.0 Working Draft, dated March 24, 2005, Section 10.1, entitled “Graphics: The bitmap canvas” [4] , but
left the door open to licensing the patents should the specification be transferred to a standards body with a formal
patent policy. This caused considerable discussion among web developers, and raised questions concerning the
WHATWG's lack of a policy on patents in comparison to the W3C's explicit favoring of royalty-free licenses. Apple
later disclosed the patents under the W3C's royalty-free patent licensing terms.[5] The disclosure means that Apple is
required to provide royalty-free licensing for the patent whenever the Canvas element becomes part of a future W3C
recommendation created by the HTML working group.[6]

Support
The element is currently supported by the latest versions of Mozilla Firefox, Google Chrome, Safari, and Opera. It is
not natively implemented by Internet Explorer as of version 8[7] , though support is in development for Internet
Explorer 9, however many of the Canvas element's features can be supported via JavaScript libraries that rely on
either Adobe Flash, or more recently, Internet Explorer's inbuilt support for VML.[8]

See also
• Cairo (graphics)
• Comparison of layout engines (HTML5 Canvas)
• Display PostScript
• GDI+
• Processing (programming language)#Processing.js
• Quartz 2D
• SVG
• Wii Opera SDK / HullBreach SDK - JavaScript 3D canvas library
• WebGL

External links
• Canvas description in WHATWG Web Applications draft specifications [9]
• Canvas reference page in Apple Developers Connection [10]
• Basic Canvas Tutorial on Opera Developer Community [11]
• Canvas tutorial and introductory page on Mozilla Developer center [12]
• Canvas Demos [13] A comprehensive list of demos, tutorials and tools for the canvas element.
• Wii Opera SDK 3D Canvas Library for Internet Gaming [14]
• An interactive blob [15] Test your browser.
• Canvas example [16] using Gnuplot driver
• w3 html5 canvas element [17]
• w3 html5 canvas 2d methods [18]
• Processing.js [19]
Canvas element 4

References
[1] Opera 9.0 changelog (http:/ / www. opera. com/ docs/ changelogs/ windows/ 900/ )
[2] Ian Hickson remarks regarding canvas and other Apple extensions to HTML (http:/ / ln. hixie. ch/ ?start=1089635050& count=1)
[3] [whatwg] Web Applications 1.0 Draft, David Hyatt, Wed Mar 14 14:31:53 PDT 2007 (http:/ / lists. whatwg. org/ pipermail/ whatwg-whatwg.
org/ 2007-March/ 010129. html)
[4] Web Applications 1.0 Early Working Draft - Dynamic graphics: The bitmap canvas (http:/ / www. whatwg. org/ specs/ web-apps/ /
#scs-dynamic)
[5] HTML Working Group Patent Policy Status – Known Disclosures (http:/ / www. w3. org/ 2004/ 01/ pp-impl/ 40318/
status#current-disclosures)
[6] W3C patent policy in use by HTML working group (http:/ / www. w3. org/ Consortium/ Patent-Policy-20040205/ #sec-W3C-RF-license)
[7] Sucan, Mihai (4 Feb, 2010). "SVG or Canvas? Сhoosing between the two" (http:/ / dev. opera. com/ articles/ view/
svg-or-canvas-choosing-between-the-two/ ). Opera Software. . Retrieved 3 May 2010.
[8] "Mozilla drags IE into the future with Canvas element plugin" (http:/ / arstechnica. com/ software/ news/ 2008/ 08/
mozilla-drags-ie-into-the-future-with-canvas-element-plugin. ars). Ars Technica. 19 Aug, 2008. . Retrieved 12 May 2010.
[9] http:/ / www. whatwg. org/ specs/ web-apps/ current-work/ multipage/ the-canvas-element. html
[10] http:/ / developer. apple. com/ documentation/ AppleApplications/ Conceptual/ SafariJSProgTopics/ Tasks/ Canvas. html
[11] http:/ / dev. opera. com/ articles/ view/ html-5-canvas-the-basics/
[12] https:/ / developer. mozilla. org/ en/ Canvas_tutorial
[13] http:/ / www. canvasdemos. com
[14] http:/ / wiioperasdk. com
[15] http:/ / www. blobsallad. se/
[16] http:/ / skuld. bmsc. washington. edu/ ~merritt/ gnuplot/ canvas_demos/
[17] http:/ / dev. w3. org/ html5/ spec/ Overview. html#the-canvas-element
[18] http:/ / dev. w3. org/ html5/ spec/ Overview. html#the-2d-context
[19] http:/ / processingjs. org/

Comparison of layout engines (HTML5)


HTML

• HTML and HTML5


• Dynamic HTML
• XHTML
• XHTML Mobile Profile and
C-HTML
• Canvas element
• Character encodings
• Document Object Model
• Font family
• HTML editor
• HTML element
• HTML Frames
• HTML5 video
• HTML scripting
Comparison of layout engines (HTML5) 5

• Web browser engine


• Quirks mode
• Style sheets
• Unicode and HTML
• W3C and WHATWG
• Web colors
• WebGL
• Web Storage
• Comparison of
• document markup languages
• web browsers
• layout engines for
• HTML
• HTML5
• HTML5 Canvas
• HTML5 Media
• Non-standard HTML
• XHTML

The following tables compare support of HTML5 differences from HTML4 for a number of layout engines.
The specification is still a working draft, not a W3C recommendation, and thus not stable. Unless otherwise
specified in footnotes, comparisons are based on the stable versions of the programs without any add-ons, extensions
or external programs.

Explanation of the tables

Engine nomenclature
Rather than the names of web browsers, the names of the underlying engines are used. The browsers that use the
various engines are listed below.

Layout Release Preview Used by


engine version version

Amaya 11.3.1 11.3-pre Amaya

1.9.2.6 2.0b2pre All Mozilla software, including Firefox; SeaMonkey and Galeon; Camino; K-Meleon; Flock;
Gecko
Epiphany-gecko; GNU IceCat; Debian Iceweasel, Icedove, Iceape and Iceowl

iCab iCab 1-3

KHTML Konqueror

Presto 2.6.30 — Opera; Opera Mobile, Nintendo DS & DSi Browser; Internet Channel

Prince 7.1 — Prince XML

Tasman 1.0 — Mac OS X versions of Internet Explorer and MSN

Trident 4.0 (IE 8) 5.0 (IE 9) Internet Explorer and other Internet Explorer shells (Microsoft Windows operating systems only)

533 — Apple Safari (including OS X for desktops and iOS for iPhones and iPads), Google Chrome, Shiira, iCab 4,
WebKit OmniWeb 5.5+, Epiphany, Adobe AIR, Midori, Adobe Dreamweaver CS4, Google Android browser, Palm
WebOS browser, Symbian S60 browser, OWB, Steam
Comparison of layout engines (HTML5) 6

Values
Values indicate the level of support in the most recent version of the layout engine, or (if a version number is given)
in the specified version. Version numbers without any other value indicate the version at which the layout engine
first fully supported the feature.

Value Meaning

Yes Indicates that the layout engine fully supports this property/element when valid values are used.

No Indicates that the property/element is completely ignored.

Partial Indicates that the property/element is understood, but that not all values are supported. Supported values are implemented correctly.

Incorrect Indicates that the property/element is understood, but that it is not implemented correctly in all cases.

Experimental Indicates that the property/element is understood, but supported under an alternate name. May be incomplete or buggy.

Dropped Indicates that the property/element is no longer supported.

Nightly build Indicates that the property/element is supported to some extent in an experimental/nightly build. Future support is expected.

Depends Indicates that the property/element is supported only on certain platforms, or if certain settings are configured.

Elements
While many of these elements, such as section, have not been implemented natively in layout engines, support may
be very easy to emulate using CSS or JavaScript.

Trident Gecko WebKit Presto

section No [3] No
533

nav No [4] No
533

article No [5] No
533

aside No [1] [2] [6] No


2.0 533

hgroup No [7] No
533

header No [8] No
533

footer No [8] No
533

time No No No No

mark
[9] Nightly
No 2.0 [10] No
build

ruby, rt, rp [11] [12] [13] [14] No


Yes No 533

figure No [15] No No
2.0

figcaption No [15] No No
2.0

embed 3.0 1.7 85 1.0

video 9.0 [17] [18]


[16] 1.9.1 525 2.5
(Partial)

audio 9.0 [19] [20]


[16] 1.9.1 525 2.5
(Partial)
Comparison of layout engines (HTML5) 7

source 9.0 [21] []


[16] 1.9.1 525 2.5
(Partial)

canvas 9.0 [23] [24]


[22] 1.9.2 Partial 2.0
(Partial)

Inline [25] [26] [27]


No 2.0 No 2.1
MathML

Inline SVG [16] [25] [28] [28]


9.0 2.0 Partial 1.0

details No No No No

summary No No No No

command No No No No

menu No No No No

Trident Gecko WebKit Presto

Attributes

Element Specific

Attribute Element Trident Gecko WebKit Presto

manifest html No 1.9 Yes [29] [30]


2.6.30

sizes link No No [31] No


No

charset meta Yes Yes Yes Yes

scoped style No [32] No No


No

async script No [33] [34] No


1.9.2 No

reversed ol No No [35] No
No

sandbox iframe No [36] [37] No


No 533

seamless iframe No No No No

Attribute Element Trident Gecko WebKit Presto

Global
Comparison of layout engines (HTML5) 8

Trident Gecko WebKit Presto

Datasets (data-*)
[38] Nightly
No No [39] No
build

contextmenu No [40] No No
No

hidden No [41] [42] No


No No

[43] 5.5 1.9 Yes 2.0


contenteditable

[44] No [45] [46] No


spellcheck 1.8 Incorrect

draggable No [47] [48] No


1.9.1 533

Trident Gecko WebKit Presto

Form elements and attributes


Many of these features can be emulated with third-party libraries.

Trident [49] [50] [51]


Gecko WebKit Presto

Attributes

autocomplete Yes Yes Yes 2.0

list No [52] [53] 2.0


No No

required No [54] 528 2.0


No

multiple No [55] [56] [55] [57] No


1.9.2 526

pattern No [58] [59] 2.0


No 528

min, max No [60] [61] 2.0


No Partial

step No [62] [63] 2.0


No 528

placeholder No [64] Yes No


2.0

form No [65] No 2.0


2.0

autofocus No [66] [67] 2.0


2.0 528

maxlength No [68] [69] 2.0


2.0 528

novalidate No [70] [71] No


No 528

control No [72] No No
2.0

accept No [73] No No
2.0

formtarget No [74] No No
No

formaction No [75] No No
No

Elements

datalist No [76] [77] 2.0


No No

[78] [79] [80] 125 1.0


keygen No 1.0
Comparison of layout engines (HTML5) 9

output No [81] [82] 2.0


2.0 No

progress
[83] Nightly
No No [84] No
build

meter
[85] Nightly
No No [86] No
build

Input types

search No [87] [88] No


2.0 312

tel No [89] [90] No


2.0 528

url No [91] [90] 2.0


No 528

email No [92] [90] 2.0


No 528

datetime

date

month
No [93] [94] [95] 2.0
No Partial
week

time

datetime-local

number No [96] [90] 2.0


No 528

range No [97] Yes 2.0


No

color No [98] [99] No


No 528

Trident Gecko WebKit Presto

APIs
Trident Gecko WebKit Presto

[100] [101] [102] 525 2.1


getElementsByClassName 9.0 1.9

registerProtocolHandler No [103] No No
1.9

registerContentHandler No [104] No No
1.8

[105] 8.0 [106] Nightly build 2.0


Cross-document messaging 1.9

Drag-and-drop Partial [47] Partial No


1.9.1

pushState() and replaceState() No [107] [108] No


2.0 528

Trident Gecko WebKit Presto


Comparison of layout engines (HTML5) 10

Other features
Trident Gecko WebKit Presto

Microdata No No No No

HTML5 Tokenizer
[109] Nightly [111]
No 2.0 [110] Partial
build

HTML5 Tree Builder No [109] No ?


2.0

<a rel="noreferrer"> No [112] [113] No


No Yes

window.onhashchange 8.0[114] 1.9.2[115] [116] [117]


528 2.6

element.classList No [118] [119] No


1.9.2 No

Trident Gecko WebKit Presto

Next-generation additions
The WHATWG version of HTML5 also includes additional features that are not technically HTML5, which are
called "next-generation additions still in development" by the spec.[120]

Trident Gecko WebKit Presto

<device> No No No No

<track> No No No No

<a ping> [121]


Depends
No [122] No No

Related specifications
Trident Gecko WebKit Presto

[123] [124] [125] [126] [127]


Selectors API 8.0 1.9.1 525 2.2

[128] 8.0 [129] 525 [130]


Web Storage 1.9.1 2.5

[131] No [132] Partial No


Indexed Database API 2.0 (Partial)

[133] No [134] [135] [130]


Web SQL Database No Yes 2.5

[136] [138]
File API [137] Partial
No 1.9.2 [139] No

[140] No [141] [142] No No


Media Capture API 2.0 (Depends/Partial)

[143] No [144] [145] [146]


Server-sent Events No Yes Experimental

[147] No [148] 533 No


Web Sockets 2.0

[149] [150] No [151] Yes [29] [30]


Web Workers 1.9.1 2.6.30

[152] No [153] [154] [155]


Geolocation API 1.9.1 533 2.6.30

Offline Web [157] [29] [30]


[156] No 1.9.1 Yes 2.6.30
applications
Comparison of layout engines (HTML5) 11

Trident Gecko WebKit Presto

References

External links
• HTML5 specification [158]
• Implementations in Web browsers [159] – WHATWG wiki page tracking features implemented in various Web
browsers.

References
[1] Bug 559284 - Support for HTML5 sectioning elements (article, aside, footer, header, hgroup, nav, section): style as display:block (https:/ /
bugzilla. mozilla. org/ show_bug. cgi?id=559284), Mozilla,
[2] Bug 562008 - HTML5 section DOM elements should be of type HTMLElement (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=562008),
Mozilla,
[3] Bug 32936 - HTML5 <section> element support (https:/ / bugs. webkit. org/ show_bug. cgi?id=32936), WebKit,
[4] Bug 27937 - Implement HTML5 nav element (https:/ / bugs. webkit. org/ show_bug. cgi?id=27937), WebKit,
[5] Bug 32942 - HTML5 <article> element support (https:/ / bugs. webkit. org/ show_bug. cgi?id=32942), WebKit,
[6] Bug 32943 - HTML5 <aside> element support (https:/ / bugs. webkit. org/ show_bug. cgi?id=32943), WebKit,
[7] Bug 33369 - Implement HTML5 <hgroup> element. (https:/ / bugs. webkit. org/ show_bug. cgi?id=33369), WebKit,
[8] Bug 32944 - HTML5 <header> and <footer> elements support (https:/ / bugs. webkit. org/ show_bug. cgi?id=32944), WebKit,
[9] Bug 485377 - Implement HTML5's <mark> tag (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=485377), Mozilla,
[10] Bug 41144 - Implement the HTML5 <mark> element. (https:/ / bugs. webkit. org/ show_bug. cgi?id=41144), WebKit,
[11] Ruby (http:/ / docs. google. com/ View?id=dcgd8hk6_0ccsw4td4),
[12] Bug 33339 - HTML5 <ruby> support (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=33339), Mozilla, , retrieved 2010-03-13
[13] Bug 28420 - Implement HTML5 <ruby> rendering (https:/ / bugs. webkit. org/ show_bug. cgi?id=28420), WebKit,
[14] Steiner, Roland (2010-01-20), "Ruby Rendering in WebKit" (http:/ / webkit. org/ blog/ 948/ ruby-rendering-in-webkit/ ), Surfin’ Safari
(WebKit), , retrieved 2010-01-21
[15] Implement the figure element (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=573356), Mozilla,
[16] Bisson, Simon (2010-09-17), Microsoft previews Internet Explorer 9 with HTML 5 support (http:/ / www. zdnet. co. uk/ news/ desktop-apps/
2010/ 03/ 17/ microsoft-previews-internet-explorer-9-with-html-5-support-40088334/ ), ZDNet,
[17] loop attribute not supported, Bug 449157 - Implement the looping attributes in media elements (https:/ / bugzilla. mozilla. org/ show_bug.
cgi?id=449157), Mozilla, poster attribute supported as of 1.9.2. Bug 449156 - Implement the poster attribute for the <video> element (https:/ /
bugzilla. mozilla. org/ show_bug. cgi?id=449156), Mozilla,
[18] Beginning in 2007, A call for video on the web - Opera <video> release on Labs (http:/ / dev. opera. com/ articles/ view/
a-call-for-video-on-the-web-opera-vid/ ), Opera, several experimental builds have been released with Ogg Theora support. Full support for the
video element is included in Presto 2.5. Opera Core Concerns - (re-)Introducing <video> (http:/ / my. opera. com/ core/ blog/ 2009/ 12/ 31/
re-introducing-video), Opera,
[19] loop attribute not supported.
[20] Presto added very limited support for the ECMAScript API related to the audio element in version 2.0 using only the WAV PCM codec,
while not implementing the element itself. Web specifications supported in Opera 9.5 (http:/ / www. opera. com/ docs/ specs/ opera95/ ),
Opera, Full support for the audio element with the Ogg Vorbis and WAV codecs is included in Presto 2.5.
[21] media attribute not implemented. Source - MDC (https:/ / developer. mozilla. org/ En/ HTML/ Element/ Source), Mozilla,
[22] Hachamovitch, Dean (2010-06-23), HTML5, Native: Third IE9 Platform Preview Available for Developers (http:/ / blogs. msdn. com/ b/ ie/
archive/ 2010/ 06/ 23/ html5-native-third-ie9-platform-preview-available-for-developers. aspx), Microsoft,
[23] Canvas - MDC (https:/ / developer. mozilla. org/ en/ HTML/ Canvas), Mozilla,
[24] canvas Support in Opera (http:/ / www. opera. com/ docs/ specs/ opera9/ canvas/ ), Opera,
[25] Supported in XHTML and in HTML when the html5.enable preference is set.Zbarsky, Boris (2009-07-03), MathML in non-XML documents
(http:/ / lists. whatwg. org/ htdig. cgi/ whatwg-whatwg. org/ 2009-July/ 020741. html),
[26] Bug 3251 - Implement MathML (master bug) (https:/ / bugs. webkit. org/ show_bug. cgi?id=3251), WebKit,
[27] MathML for CSS, XHTML onlyChavchanidze, George (2008-06-12), Opera 9.5 released (http:/ / my. opera. com/ mathml/ blog/ 2008/ 06/
12/ opera-9-5-released), Opera,
[28] XHTML only
[29] Haavard (2010-06-14), HTML5, and then some (http:/ / my. opera. com/ desktopteam/ blog/ 2010/ 06/ 14/ html5-and-then-some), Opera,
Comparison of layout engines (HTML5) 12

[30] Kleinhout, Huib (2010-07-01), Opera 10.60 goes final (http:/ / my. opera. com/ desktopteam/ blog/ 2010/ 07/ 01/ opera-10-60-goes-final),
Opera,
[31] Bug 37674 - Implement sizes attribute for link tag from HTML5 (https:/ / bugs. webkit. org/ show_bug. cgi?id=37674), WebKit,
[32] Bug 508725 - Implement HTML 5 scoped attribute on STYLE tag (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=508725), Mozilla,
[33] Bug 503481 - Implement async attribute of script element (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=503481), Mozilla,
[34] Bug 20710 - WebKit should support defer and async on script elements (https:/ / bugs. webkit. org/ show_bug. cgi?id=20710), WebKit,
[35] Bug 36724 - Add support for ol reversed (https:/ / bugs. webkit. org/ show_bug. cgi?id=36724), WebKit,
[36] Bug 341604- Implement IFRAME's sandbox attribute (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=341604), Mozilla,
[37] Bug 21288 - Implement HTML5's sandbox attribute for iframes (https:/ / bugs. webkit. org/ show_bug. cgi?id=21288), WebKit,
[38] Bug 560112 - Implement HTML5 dataset attribute (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=560112), Mozilla,
[39] Bug 41146 - Implement the .dataset DOM property (https:/ / bugs. webkit. org/ show_bug. cgi?id=41146), WebKit,
[40] Bug 512221 - oncontextmenu attribute is not working when applied to elements other than the body-tag (https:/ / bugzilla. mozilla. org/
show_bug. cgi?id=512221), Mozilla,
[41] Bug 567663 - Implement the hidden attribute (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=567663), Mozilla,
[42] Bug 40511 - Implement HTML5 hidden attribute (https:/ / bugs. webkit. org/ show_bug. cgi?id=40511), WebKit,
[43] Pilgrim, Mark (2009-03-06), The Road to HTML 5: contentEditable (http:/ / blog. whatwg. org/ the-road-to-html-5-contenteditable),
[44] Pilgrim, Mark (2009-03-04), The Road to HTML 5: spellchecking (http:/ / blog. whatwg. org/ the-road-to-html-5-spellchecking),
[45] Controlling spell checking in HTML forms (https:/ / developer. mozilla. org/ en/ Controlling_spell_checking_in_HTML_forms), Mozilla,
[46] Bug 25537 - WebKit does not follow HTML5 spellcheck attribute logic for words split by spans (https:/ / bugs. webkit. org/ show_bug.
cgi?id=25537), WebKit,
[47] Blizzard, Christopher (2009-07-15), HTML5 drag and drop in Firefox 3.5 (http:/ / hacks. mozilla. org/ 2009/ 07/ html5-drag-and-drop/ ),
[48] Bug 26262 - Implement HTML5 draggable (https:/ / bugs. webkit. org/ show_bug. cgi?id=26262), WebKit,
[49] User:Mounir.lamouri/HTML5 Forms (https:/ / wiki. mozilla. org/ User:Mounir. lamouri/ HTML5_Forms), Mozilla,
[50] Bug 19264 - HTML5 Forms Implementation - Master bug (https:/ / bugs. webkit. org/ show_bug. cgi?id=19264), WebKit,
[51] HTML 5 Forms support in Opera Presto 2.2 (http:/ / www. opera. com/ docs/ specs/ presto22/ forms/ ), Opera,
[52] Bug 556007 - Implement list attribute (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=556007), Mozilla,
[53] Bug 27247 - [HTML5][Forms] Part 5 of datalist&list: UI of `list' attribute of <input> (https:/ / bugs. webkit. org/ show_bug.
cgi?id=27247), WebKit,
[54] Bug 345822 - Implement required attribute for <input type="text">, <textarea> (https:/ / bugzilla. mozilla. org/ show_bug.
cgi?id=345822), Mozilla,
[55] For file inputs only.
[56] Bug 523771 - Support <input type=file multiple> (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=523771), Mozilla,
[57] Almaer, Dion (2009-03-06), input type=”file” multiple; now in a real browser! (http:/ / ajaxian. com/ archives/
input-typefile-multiple-now-in-a-real-browser), Ajaxian,
[58] Bug 345512 - Implement pattern attribute for <input type="text">, <textarea> (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=345512),
Mozilla,
[59] Bug 25552 - Support for HTML5 Forms "pattern" attribute (https:/ / bugs. webkit. org/ show_bug. cgi?id=25552), WebKit,
[60] Bug 556010 - Implement min and max attributes (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=556010), Mozilla,
[61] Bug 27450 - Support HTML5 min/max attributes and associated CSS selectors (https:/ / bugs. webkit. org/ show_bug. cgi?id=27450),
WebKit,
[62] Bug 556009 - Implement step attribute (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=556009), Mozilla,
[63] Bug 27451 - Support HTML5 step attribute (https:/ / bugs. webkit. org/ show_bug. cgi?id=27451), WebKit,
[64] Bug 457800 - Implement placeholder attribute for text input fields (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=457800), Mozilla,
[65] Bug 555567 - Fix the form attribute behavior of the legend element (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=555567), Mozilla,
[66] Bug 546995 - Implement autofocus attribute for some form elements (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=546995), Mozilla,
[67] Bug 18887 - WF2 Support for autofocus controls (https:/ / bugs. webkit. org/ show_bug. cgi?id=18887), WebKit,
[68] Bug 535043 - Support maxlength on textarea (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=535043), Mozilla,
[69] Bug 29292 - [HTML5][Forms] Support for <textarea maxlength=N> (https:/ / bugs. webkit. org/ show_bug. cgi?id=29292), WebKit,
[70] Bug 556013 - Implement novalidate attribute for form elements (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=556013), Mozilla,
[71] Bug 28145 - novalidate/formnovalidate support (https:/ / bugs. webkit. org/ show_bug. cgi?id=28145), WebKit,
[72] Bug 562932 - Implement control attribute for label element (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=562932), Mozilla,
[73] Bug 377624 - Implement the accept attribute for the form and file upload controls form "image/*" (https:/ / bugzilla. mozilla. org/
show_bug. cgi?id=377624), Mozilla,
[74] Bug 566064 - HTMLInputElement and HTMLButtonElement should implement formtarget attribute which override HTMLFormElement
target attribute (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=566064), Mozilla,
[75] Bug 566160 - HTMLInputElement and HTMLButtonElement should implement formaction attribute which override HTMLFormElement
action attribute (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=566160), Mozilla,
[76] Bug 555840 - Implement datalist element (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=555840), Mozilla,
Comparison of layout engines (HTML5) 13

[77] Bug 27247 - Master bug of datalist element and list attribute implementation (https:/ / bugs. webkit. org/ show_bug. cgi?id=27247),
WebKit,
[78] "keygen" (https:/ / developer. mozilla. org/ En/ HTML/ Element/ keygen), Mozilla Developer Center (Mozilla), , retrieved 2010-03-13
[79] PRB: HTML Tag KEYGEN Not Supported in Internet Explorer (http:/ / support. microsoft. com/ kb/ 190282), Microsoft,
[80] Bug 101019 - Implement keygen element (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=101019), Mozilla,
[81] Bug 346485 - Implement Web Forms 2 <html:output/> (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=346485), Mozilla,
[82] Bug 29363 - [HTML5][Forms] Support for <output> element (https:/ / bugs. webkit. org/ show_bug. cgi?id=29363), WebKit,
[83] Bug 514437 - Implement HTML 5 progress element (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=514437), Mozilla,
[84] Bug 37307 - [Chromium] Support for <progress> element (https:/ / bugs. webkit. org/ show_bug. cgi?id=37307), WebKit,
[85] Bug 555985 - Implement meter element (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=555985), Mozilla,
[86] Bug 37074 - Support for HTMLMeterElement (https:/ / bugs. webkit. org/ show_bug. cgi?id=37074), WebKit,
[87] Bug 456229 - Implement <input type="search"> for compatibility with Safari (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=456229),
Mozilla,
[88] Hyatt, David (July 2004), The Search Field (http:/ / weblogs. mozillazine. org/ hyatt/ archives/ 2004_07. html#005890),
[89] Bug 557620 - Implement <input type="telephone"> (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=557620), Mozilla,
[90] Bug 25554 - Implement HTML5 Input element types for Text Fields (https:/ / bugs. webkit. org/ show_bug. cgi?id=25554), WebKit,
[91] Bug 344615 - Implement <input type="url"> (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=344615), Mozilla,
[92] Bug 555559- Implement <input type="email"> (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=555559), Mozilla,
[93] Bug 446510 - Implement <input type="date"> and other date controls (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=446510), Mozilla,
[94] Bug 29004 - [HTML5][Forms] simple implementation of date&time types of INPUT element (https:/ / bugs. webkit. org/ show_bug.
cgi?id=29004), WebKit,
[95] Bug 29359 – Add UIs for date and time types of <input> (https:/ / bugs. webkit. org/ show_bug. cgi?id=29359),
[96] Bug 344616 - Implement <input type="number"> (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=344616), Mozilla,
[97] Bug 344618 - Implement <input type="range"> (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=344618), Mozilla,
[98] Bug 547004 - Implement <input type="color"> (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=547004), Mozilla, , retrieved 2010-02-18
[99] Bug 28966 - [HTML5][Forms] <input type=color> simple implementation (https:/ / bugs. webkit. org/ show_bug. cgi?id=28966), WebKit,
[100] Koch, Peter-Paul, W3C DOM Compatibility - Core (http:/ / www. quirksmode. org/ dom/ w3c_core. html), QuirksMode,
[101] getElementsByClassName (http:/ / ie. microsoft. com/ testdrive/ HTML5/ 80getElementsByClassName/ Default. html), Microsoft,
[102] Bug 357450 - Implement getElementsByClassName (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=357450), Mozilla,
[103] Limited to the feed protocol in 1.8; fully supported in 1.9. window.navigator.registerProtocolHandler (https:/ / developer. mozilla. org/ en/
DOM/ window. navigator. registerProtocolHandler), Mozilla,
[104] Limited to feed MIME types in 1.8 and 1.9. window.navigator.registerContentHandler (https:/ / developer. mozilla. org/ en/ DOM/
window. navigator. registerContentHandler), Mozilla,
[105] Holzschlag, Molly (June 2009), A Selection of Supported Features in HTML5 (http:/ / molly. com/ html5/ html5-0709. html),
[106] Bug 387706 - (postMessage) Implement HTML5's cross-document messaging API (postMessage) (https:/ / bugzilla. mozilla. org/
show_bug. cgi?id=387706), Mozilla,
[107] Bug 500328 - Add support for HTML5 History.pushState(), History.replaceState() methods (https:/ / bugzilla. mozilla. org/ show_bug.
cgi?id=500328), Mozilla,
[108] Bug 32052 - Implement HTML5 state object history API (https:/ / bugs. webkit. org/ show_bug. cgi?id=32052), WebKit,
[109] Bug 373864 - Replace HTML parser with an HTML5 parser (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=373864), Mozilla,
[110] Bug 39259 – MASTER: WebKit needs an HTML5 Tokenizer (https:/ / bugs. webkit. org/ show_bug. cgi?id=39259),
[111] Web specifications supported in Opera Presto 2.2 (http:/ / www. opera. com/ docs/ specs/ presto22/ ), Opera, 2009-10-19, , retrieved
2010-02-18
[112] Bug 530396 - Support for <a rel="noreferrer"> functionality (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=530396), Mozilla,
[113] Chapin, Nate (2009-11-19), WebKit nightlies support HTML5 noreferrer link relation (http:/ / webkit. org/ blog/ 907/
webkit-nightlies-support-html5-noreferrer-link-relation/ ), , retrieved 2009-11-20
[114] onhashchange Event (http:/ / msdn. microsoft. com/ en-us/ library/ cc288209(VS. 85). aspx), Microsoft,
[115] Bug 385434 - Add support for HTML5 onhashchange (event for named anchor changes) (https:/ / bugzilla. mozilla. org/ show_bug.
cgi?id=385434), Mozilla,
[116] Bug 21605 - Support for HTML5 "hashchange" event (https:/ / bugs. webkit. org/ show_bug. cgi?id=21605), WebKit,
[117] Haavard (2010-05-31), Opera 10.60 Alpha 1: Speed, eye-candy, and bug fixing (http:/ / my. opera. com/ desktopteam/ blog/ 2010/ 05/ 31/
opera-10-60-alpha-1), Opera,
[118] Bug 501257 - Implement HTML 5's HTMLElement.classList property (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=501257), Mozilla,
[119] Bug 20709 - Implement HTML 5's HTMLElement.classList property (https:/ / bugs. webkit. org/ show_bug. cgi?id=20709), WebKit,
[120] , http:/ / www. whatwg. org/ specs/ web-apps/ current-work/ #is-this-html5?
[121] Bug 319368 - Implement <a ping> (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=319368), Mozilla,
[122] The ping attribute is disabled by default, due to privacy concerns. Bug 324645 - <a ping> support should be opt-in, not opt-out, for
Gecko-based apps (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=324645), Mozilla, Bug 319368 - Implement <a ping> (Comment 64)
(https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=319368#c64), Mozilla,
Comparison of layout engines (HTML5) 14

[123] Selectors API Level 1 (http:/ / dev. w3. org/ 2006/ webapi/ selectors-api/ ), W3C,
[124] Resig, John (2008-03-06), JavaScript in Internet Explorer 8 (http:/ / ejohn. org/ blog/ javascript-in-internet-explorer-8/ ),
[125] document.querySelector (https:/ / developer. mozilla. org/ En/ DOM/ Document. querySelector),
[126] Smith, David (2008-02-07), querySelector and querySelectorAll (http:/ / webkit. org/ blog/ 156/ queryselector-and-queryselectorall/ ),
[127] Hunt, Lachlan (2008-05-22), Selectors API (http:/ / my. opera. com/ core/ blog/ selectors-api), Opera,
[128] Web Storage (http:/ / dev. w3. org/ html5/ webstorage/ ), W3C,
[129] DOM Storage (https:/ / developer. mozilla. org/ En/ DOM:Storage), Mozilla,
[130] Dixit, Shwetank (2009-12-16), Opera 10.5 Pre-Alpha build released: the new additions (http:/ / my. opera. com/ ODIN/ blog/
opera-10-5-pre-alpha-build-released-here-is-whats-new), Opera,
[131] Indexed Database API (http:/ / www. w3. org/ TR/ IndexedDB/ ), W3C,
[132] Implement Indexed Database API (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=IndexedDB), Mozilla,
[133] Web SQL Database (http:/ / dev. w3. org/ html5/ webdatabase/ ), W3C,
[134] Bug 416327 - Implement Client-side database storage (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=416327), Mozilla,
[135] Eidson, Brady (2007-10-19), WebKit Does HTML5 Client-side Database Storage (http:/ / webkit. org/ blog/ 126/
webkit-does-html5-client-side-database-storage/ ), , retrieved 2009-10-22
[136] File API (http:/ / www. w3. org/ TR/ FileAPI/ ), W3C, 2009-11-17,
[137] Using files from web applications (https:/ / developer. mozilla. org/ en/ Using_files_from_web_applications), Mozilla,
[138] Bug 36567 - Implement FileAPI/FileWriter (https:/ / bugs. webkit. org/ show_bug. cgi?id=36567), WebKit,
[139] Bug 38157 - Implement FileReader class (https:/ / bugs. webkit. org/ show_bug. cgi?id=38157), WebKit,
[140] Media Capture API (http:/ / dev. w3. org/ 2009/ dap/ camera/ ), W3C,
[141] Currently partially supported in nightly builds for the Linux platform.
[142] Expose camera functionality to web content (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=451674), Mozilla,
[143] Server-Sent Events (http:/ / dev. w3. org/ html5/ eventsource/ ), W3C,
[144] Bug 338583 - Add support for Server-Sent DOM Events (Remote Events) (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=338583),
Mozilla,
[145] Bug 14997 - Support for server-sent DOM events (https:/ / bugs. webkit. org/ show_bug. cgi?id=14997), WebKit,
[146] Bersvendsen, Arve (2006-09-01), Event Streaming to Web Browsers (http:/ / my. opera. com/ WebApplications/ blog/ show. dml/ 438711),
Opera,
[147] The Web Sockets API (http:/ / dev. w3. org/ html5/ websockets/ ), W3C,
[148] Bug 472529 - Support for Web sockets' HTML5 Draft Recommendation (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=472529),
Mozilla,
[149] Web Workers (http:/ / dev. w3. org/ html5/ workers/ ), W3C,
[150] Resig, John (2009-07-21), Computing with JavaScript Web Workers (http:/ / ejohn. org/ blog/ web-workers/ ),
[151] Bug 437152 - implement worker threads (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=437152), Mozilla,
[152] Geolocation API Specification (http:/ / dev. w3. org/ geo/ api/ spec-source. html), W3C,
[153] Using geolocation (https:/ / developer. mozilla. org/ En/ Using_geolocation), Mozilla,
[154] Bug 21475 - Provide support for the Geolocation API (https:/ / bugs. webkit. org/ show_bug. cgi?id=21475), WebKit,
[155] Geolocation support was added in Presto 2.5, but was not enabled by default until 2.6.30.Nilsen, Petter (2010-02-05), Skin fixes, Unite, and
then some (http:/ / my. opera. com/ desktopteam/ blog/ 2010/ 02/ 05/ skin-fixes-unite-and-then-some), Opera, Web specifications supported in
Opera Presto 2.5 (http:/ / www. opera. com/ docs/ specs/ presto25/ ), Opera,
[156] 5.6 Offline Web applications — HTML5 (http:/ / dev. w3. org/ html5/ spec/ offline. html#offline), W3C,
[157] Offline resources in Firefox (https:/ / developer. mozilla. org/ en/ offline_resources_in_firefox), Mozilla,
[158] http:/ / dev. w3. org/ html5/ spec/ Overview. html
[159] http:/ / wiki. whatwg. org/ wiki/ Implementations_in_Web_browsers
HTML5 15

HTML5
Filename extension HTML: .html, .htm
XHTML: .xhtml, .xht, .xml

Internet media type HTML: text/html


XHTML: application/xhtml+xml, application/xml

Type code TEXT

Uniform Type Identifier public.html

Developed by W3C HTML WG, WHATWG

Type of format Markup language

Standard(s) [1]
• WHATWG Editor's draft
[2]
• W3C Editor's draft

HTML5 is currently under development as the next major revision of the HTML standard. Like its immediate
predecessors, HTML 4.01 and XHTML 1.1, HTML5 is a standard for structuring and presenting content on the
World Wide Web. The new standard incorporates features like video playback and drag-and-drop that have been
previously dependent on third-party browser plug-ins such as Adobe Flash, Microsoft Silverlight, and Google Gears.

W3C standardization process


The Web Hypertext Application Technology Working Group (WHATWG) started work on the specification in June
2004 under the name Web Applications 1.0.[3] As of March 2010, the specification is in the Draft Standard state at
the WHATWG, and in Working Draft state at the W3C. Ian Hickson of Google, Inc. is the editor of HTML5.[4]
The HTML5 specification was adopted as the starting point of the work of the new HTML working group of the
World Wide Web Consortium (W3C) in 2007. This working group published the First Public Working Draft of the
specification on January 22, 2008.[5] The specification is an ongoing work, and is expected to remain so for many
years, although parts of HTML5 are going to be finished and implemented in browsers before the whole
specification reaches final Recommendation status.[6]
According to the W3C timetable, it is estimated that HTML5 will reach W3C Recommendation by late 2010.
However, the First Public Working Draft estimate was missed by 8 months, and Last Call and Candidate
Recommendation were expected to be reached in 2008,[7] but as of July 2010 HTML5 is still at Working Draft stage
in the W3C.[8] HTML5 has been at Last Call in the WHATWG since October 2009.[9]
Ian Hickson, editor of the HTML5 specification, expects the specification to reach the Candidate Recommendation
stage during 2012.[10] The criteria for the specification becoming a W3C Recommendation is “two 100% complete
and fully interoperable implementations”.[10] In an interview with TechRepublic, Hickson guessed that this would
occur in the year 2022 or later.[11] However, many parts of the specification are stable and may be implemented in
products:
Some sections are already relatively stable and there are implementations that are already quite close to
completion, and those features can be used today (e.g. <canvas>).
– WHAT Working Group, When will HTML5 be finished?[10] , FAQ
HTML5 16

Markup
HTML

• HTML and HTML5


• Dynamic HTML
• XHTML
• XHTML Mobile Profile and C-HTML
• Canvas element
• Character encodings
• Document Object Model
• Font family
• HTML editor
• HTML element
• HTML Frames
• HTML5 video
• HTML scripting
• Web browser engine
• Quirks mode
• Style sheets
• Unicode and HTML
• W3C and WHATWG
• Web colors
• WebGL
• Web Storage
• Comparison of
• document markup languages
• web browsers
• layout engines for
• HTML
• HTML5
• HTML5 Canvas
• HTML5 Media
• Non-standard HTML
• XHTML
HTML5 17

HTML5 introduces a number of new elements and attributes that reflect typical usage on modern websites. Some of
them are semantic replacements for common uses of generic block (<div>) and inline (<span>) elements, for
example <nav> (website navigation block) and <footer> (usually referring to bottom of web page or to last lines of
html code). Other elements provide new functionality through a standardized interface, such as the multimedia
elements <audio> and <video>.[12] [13] [14] Some deprecated elements from HTML 4.01 have been dropped,
including purely presentational elements such as <font> and <center>, whose effects are achieved using Cascading
Style Sheets. There is also a renewed emphasis on the importance of DOM scripting (e.g., JavaScript) in Web
behavior.
The HTML5 syntax is no longer based on SGML despite the similarity of its markup. It has, however, been designed
to be backward compatible with common parsing of older versions of HTML. It comes with a new introductory line
that looks like an SGML document type declaration, <!DOCTYPE html>, which enables standards-compliant
rendering in all browsers that use "DOCTYPE sniffing".
HTML5 also incorporates Web Forms 2.0, another WHATWG specification.

New APIs
In addition to specifying markup, HTML5 specifies scripting application programming interfaces (APIs).[15]
Existing document object model (DOM) interfaces are extended and de facto features documented. There are also
new APIs, such as:
• The canvas element for immediate mode 2D drawing. See Canvas 2D API Specification 1.0 specification [16]
• Timed media playback
• Offline storage database (offline web applications). See Web Storage [17]
• Document editing
• Drag-and-drop
• Cross-document messaging[18]
• Browser history management
• MIME type and protocol handler registration.
• Microdata
• Geolocation
• Local SQL Database[19] . Web SQL Database
• Indexed hierarchical key-value store (formerly WebSimpleDB)[20] . Indexed Database API
Some of the new features are part of HTML5 and some are maintained in separate specifications.[21]

Differences from HTML 4.01 and XHTML 1.x


The following is a cursory list of differences and some specific examples.
• New parsing rules: oriented towards flexible parsing and compatibility; not based on SGML
• Ability to use inline SVG and MathML in text/html
• New elements: article, aside, audio, canvas, command, datalist, details, embed, figcaption, figure, footer, header,
hgroup, keygen, mark, meter, nav, output, progress, rp, rt, ruby, section, source, summary, time, video, wbr
• New types of form controls: dates and times, email, url, search, color[22]
• New attributes: ping (on a and area), charset (on meta), async (on script)
• Global attributes (that can be applied for every element): id, tabindex, hidden, data-* (custom data attributes)
• Forms will get support for PUT and DELETE methods too instead of just GET and POST (see Representational
State Transfer for use cases)
• Deprecated elements will be dropped altogether: acronym, applet, basefont, big, center, dir, font, frame, frameset,
isindex, noframes, s, strike, tt, u
HTML5 18

[23][24]
dev.w3.org provides the latest Editors Draft (last dated 24 June 2010) of HTML5 differences from HTML4
which provides a complete outline of additions, removals and changes between HTML5.

Error handling
An HTML5 (text/html) browser will be flexible in handling incorrect syntax. HTML5 is designed so that old
browsers can safely ignore new HTML5 constructs. In contrast to HTML 4.01, the HTML5 specification gives
detailed rules for lexing and parsing, with the intent that different compliant browsers will produce the same result in
the case of incorrect syntax.[25] Although HTML5 now defines a consistent behavior for "tag soup" documents, those
documents are not regarded as conforming to the HTML5 standard.[25]

See also
• HTML5 video
• Comparison of layout engines (HTML5)
• Microdata (HTML5)
• HTTP(P2P)
• CSS 3

External links
• WHAT Working Group [26] and Editor's draft [1]
• W3C HTML Working Group [27] and Editor's draft [2]
• W3C HTML 5: The Markup Language [28] and HTML 5 Reference [29]
• W3C HTML Design Principles [30]
• W3C HTML5 differences from HTML4 [23]
• Compatibility tables for features in HTML5, CSS3, SVG and other upcoming web technologies [31]
• HTML5 Unleashed: Tips, Tricks and Techniques [32]
• HTML5 demo [33]
• HTML5 Quick Reference Guide [34]
• HTML5 test for your browser [35]

References
[1] http:/ / www. whatwg. org/ specs/ web-apps/ current-work/ multipage/
[2] http:/ / dev. w3. org/ html5/ spec/ spec. html
[3] "[whatwg] WHAT open mailing list announcement" (http:/ / lists. whatwg. org/ htdig. cgi/ whatwg-whatwg. org/ 2004-June/ 000005. html).
Lists.whatwg.org. . Retrieved 2010-03-04.
[4] "HTML 5: A vocabulary and associated APIs for HTML and XHTML (Editor's Draft)." (http:/ / dev. w3. org/ html5/ spec/ ). World Wide
Web Consortium. . Retrieved 2010-04-12.
[5] "HTML 5: A vocabulary and associated APIs for HTML and XHTML." (http:/ / www. w3. org/ TR/ html5/ ). World Wide Web Consortium. .
Retrieved 2009-01-28.
[6] "When will HTML5 be finished?" (http:/ / wiki. whatwg. org/ wiki/ FAQ#When_will_HTML5_be_finished. 3F). WHATWG. WHATWG
Wiki. . Retrieved 2009-09-10.
[7] "HTML Working Group" (http:/ / www. w3. org/ 2007/ 03/ HTML-WG-charter. html#deliverables). W3.org. . Retrieved 2010-03-04.
[8] "HTML 5" (http:/ / www. w3. org/ TR/ html5/ ). W3.org. 2009-08-25. . Retrieved 2010-03-04.
[9] "[whatwg] HTML5 at Last Call (at the WHATWG)" (http:/ / lists. whatwg. org/ pipermail/ whatwg-whatwg. org/ 2009-October/ 023849.
html). Lists.whatwg.org. . Retrieved 2010-03-04.
[10] "When will HTML5 be finished?" (http:/ / wiki. whatwg. org/ wiki/ FAQ#When_will_HTML5_be_finished. 3F). FAQ. WHAT Working
Group. . Retrieved 2009-11-29.
[11] "HTML 5 Editor Ian Hickson discusses features, pain points, adoption rate, and more" (http:/ / blogs. techrepublic. com. com/
programming-and-development/ ?p=718). . Retrieved 2010-06-21.
[12] Introduction to HTML5 video (http:/ / dev. opera. com/ articles/ view/ introduction-html5-video/ )
HTML5 19

[13] IBM Developer Works New elements in HTML5: Structure and semantics (http:/ / www. ibm. com/ developerworks/ library/ x-html5/
?ca=dgr-lnxw01NewHTML)
[14] ICAMD.org Finalcut Silverlight Films that Videographers share Quicktime in a Flash : Video on the Web using HTML5 and other Codecs
(http:/ / www. amazon. com/ Finalcut-Silverlight-Videographers-Quicktime-ebook/ dp/ B003H05Q18/ ref=sr_1_1?ie=UTF8&
m=AG56TWVU5XWC2& s=books& qid=1275670456& sr=8-1)
[15] HTML5 differences from HTML4 – APIs (http:/ / www. w3. org/ html/ wg/ html5/ diff/ #apis) W3.org
[16] Canvas 2D API Specification 1.0 (http:/ / dev. w3. org/ html5/ canvas-api/ canvas-2d-api. html) W3.org
[17] Web Storage Specification (http:/ / dev. w3. org/ html5/ webstorage/ ) W3.org
[18] HTML5 Web Messaging (http:/ / dev. w3. org/ html5/ postmsg/ ) W3.org
[19] Web SQL Database (http:/ / dev. w3. org/ html5/ webdatabase/ ) W3.org
[20] Indexed Database (http:/ / www. w3. org/ TR/ IndexedDB/ ) W3.org
[21] Hickson, Ian (2008-10-27). "HTML5 Specification – List of sections and corresponding work estimates" (http:/ / lists. w3. org/ Archives/
Public/ public-html/ 2008Oct/ 0127. html). public-html@w3.org (http:/ / lists. w3. org/ Archives/ Public/ public-html/ ) mailing list. .
Retrieved 2008-12-10.
[22] http:/ / dev. w3. org/ html5/ markup/ input. color. html
[23] http:/ / dev. w3. org/ html5/ html4-differences/
[24] "HTML5 differences from HTML4" (http:/ / dev. w3. org/ html5/ html4-differences/ ). FAQ. W3.org. 2010-06-10. . Retrieved 2010-06-13.
[25] "FAQ – WHATWG Wiki" (http:/ / wiki. whatwg. org/ wiki/ FAQ#Why_does_HTML5_legitimise_tag_soup. 3F). WHATWG. . Retrieved
2008-02-25.
[26] http:/ / www. whatwg. org/
[27] http:/ / www. w3. org/ html/ wg/
[28] http:/ / dev. w3. org/ html5/ markup/
[29] http:/ / dev. w3. org/ html5/ html-author/
[30] http:/ / dev. w3. org/ html5/ html-design-principles/
[31] http:/ / a. deveria. com/ caniuse/
[32] http:/ / www. w3avenue. com/ 2010/ 05/ 07/ html5-unleashed-tips-tricks-and-techniques/
[33] http:/ / apirocks. com/ html5/ html5. html
[34] http:/ / veign. com/ reference/ html5-guide. php
[35] http:/ / html5test. com

HTML5 video
HTML

• HTML and HTML5


• Dynamic HTML
• XHTML
• XHTML Mobile Profile and
C-HTML
• Canvas element
• Character encodings
• Document Object Model
• Font family
• HTML editor
• HTML element
HTML5 video 20

• HTML Frames
• HTML5 video
• HTML scripting
• Web browser engine
• Quirks mode
• Style sheets
• Unicode and HTML
• W3C and WHATWG
• Web colors
• WebGL
• Web Storage
• Comparison of
• document markup languages
• web browsers
• layout engines for
• HTML
• HTML5
• HTML5 Canvas
• HTML5 Media
• Non-standard HTML
• XHTML

HTML5 video is an element introduced in the HTML5 draft specification for the purpose of playing videos or
movies[1] , partially replacing the object element.
Adobe Flash Player is widely used to embed video on web sites such as YouTube, since the majority of web
browsers have Adobe's Flash Player installed (with exceptions such as the browsers on the Apple iPhone and iPad
and on Android 2.1 or less). HTML5 video is intended by its creators to become the new standard way to show video
online, but has been hampered by lack of agreement as to which video formats should be supported in the video tag.

Example
The following HTML5 code fragment will embed a WebM video into a web page.

<video src="movie.webm" controls>


Your browser does not support the video element.
</video>

Supported video formats


The current HTML5 draft specification does not specify which video formats browsers should support in the video
tag. User agents are free to support any video formats they feel are appropriate.
HTML5 video 21

Default video format debate


It is desirable to specify at least one video format which all user agents (browsers) should support. The ideal format
should:
• Have good compression, good image quality, and low decode processor use.
• Be royalty-free.
• In addition to software decoders, a hardware video decoder should exist for the format, as many embedded
processors do not have the performance to decode video.
Initially, Ogg Theora was the recommended standard video format in HTML5, because it was not affected by any
known patents. But on December 10, 2007, the HTML5 specification was updated,[2] replacing the reference to
concrete formats:
User agents should support Theora video and Vorbis audio, as well as the Ogg container format.
with a placeholder:[3]
It would be helpful for interoperability if all browsers could support the same codecs. However, there are no
known codecs that satisfy all the current players: we need a codec that is known to not require per-unit or
per-distributor licensing, that is compatible with the open source development model, that is of sufficient
quality as to be usable, and that is not an additional submarine patent risk for large companies. This is an
ongoing issue and this section will be updated once more information is available.[4]
Although Theora is not affected by known patents, companies such as Apple and (reportedly) Nokia are concerned
about unknown patents that might affect it, whose owners might be waiting for a corporation with extensive financial
resources to use the format before suing.[5] [6] Formats like H.264 might also be subject to unknown patents in
principle, but they have been deployed much more widely and so it is presumed that any patent-holders would have
already sued someone. Apple has also opposed requiring Ogg format support in the HTML standard (even as a
"should" requirement) on the grounds that some devices might support other formats much more easily, and that
HTML has historically not required particular formats for anything.[6]
Some web developers criticized the removal of the Ogg formats from the specification.[7] [8] [9]
A follow-up
discussion also occurred on the W3C questions and answers blog.[10]
H.264/MPEG-4 AVC is widely used, and has good speed, compression, hardware decoders, and video quality, but is
covered by patents.[11] Except in particular cases, users of H.264 have to pay licensing fees to the MPEG LA, a
group of patent-holders including Microsoft and Apple.[12] As a result, it has not been considered as a required
default codec.
Google's acquisition of On2 resulted in the WebM Project, a royalty-free, open source release of VP8, in a Matroska
container with Vorbis audio. It is supported by Google Chrome, Opera Browser and Mozilla Firefox.

Browser support

Values
Values indicate the level of support in the most recent version of the layout engine, or (if a version number is given)
in the specified version. Version numbers without any other value indicate the version at which the layout engine
first fully supported the feature.
HTML5 video 22

Value Meaning

Yes Indicates that the layout engine fully supports this property/element when valid values are used.

No Indicates that the property/element is completely ignored.

Partial Indicates that the property/element is understood, but that not all values are supported. Supported values are implemented correctly.

Incorrect Indicates that the property/element is understood, but that it is not implemented correctly in all cases.

Experimental Indicates that the property/element is understood, but supported under an alternate name. May be incomplete or buggy.

Dropped Indicates that the property/element is no longer supported.

Nightly build Indicates that the property/element is supported to some extent in an experimental/nightly build. Future support is expected.

Depends Indicates that the property/element is supported only on certain platforms, or if certain settings are configured.

Table

Browser Latest stable release version date Native video format support

Ogg Theora H.264 VP8 (WebM) Others

Internet Explorer [13] [14] [15] [16] [17]


8.0  (March 19, 2009) No 9.0 No No

[18] [19] [20] [21] [22] [23] No


Mozilla Firefox 3.6.8  (July 23, 2010) 3.5 No 4.0

Google Chrome [24] ?


5.0.375.125 (Windows, Mac & Linux)  (July 26, [25] [26] [27] [28] [29]
3.0 3.0 6.0
2010)

Safari [30] [31] [32] [33] No [34]


5.0.1  (July 28, 2010) No 3.1 Depends

Opera [35] [36] [37] [38] [39] [37]


10.60 (Build 3445)  (July 1, 2010) 10.50 No 10.60 Depends

Konqueror [40] [41] [42] [43] [43] [43]


4.4.5  (30 June 2010) 4.4 No Depends Depends

Epiphany [44] [45]


2.30.2  (April 8, 2010) [45] [45] Depends [45]
2.28 No [46] Depends

Origyn Web 1.7 for MorphOS 1.7 for 1.7 for [47]
No Depends
Browser March 5, 2010 MorphOS MorphOS

BOLT browser [48] [49] [49] No ?


2.1  (May 24, 2010) 2.1 2.1

In cases where decoders are not built into the browser, the format support will be dictated by the multimedia
framework of the operating system. Consequently, browser support for multimedia formats are influenced by the
problem that DirectShow and QuickTime do not support free formats like Theora by default, whereas GStreamer and
Phonon cannot safely support other than free formats by default on the free operating systems that they are intended
to run on.
HTML5 video 23

Usage
As of April 2010, in the wake of Apple iPad launch, a number of high-profile sites have started to serve H.264
HTML5 video instead of Flash for user-agents identifying as iPad.[50]
As of May 2010, HTML5 video is not currently as widespread as Flash videos, though recent rollouts of
experimental HTML5-based video players from DailyMotion[51] (using Ogg Theora and Vorbis format),
YouTube[52] (using the H.264 and WebM formats) and Vimeo[53] (using the H.264 format) suggest that interest in
adopting HTML5 video is increasing.
According to a Youtube blog post, the <video> tag does not currently meet all the needs of a site like YouTube[54] .
Main reasons include the lack of a standard format, the absence of an effective and reliable means of delivering the
video to the browser, javascript unable to display video fullscreen and content protection issues.

External links
• HTML5 - The Video Element [55], W3C
• Lawson, Bruce; Lauke, Patrick H. (2010-02-11), Introduction to HTML5 video [56], Opera
• HTML5Video.org - html5 video platform software and news [57]
• Pieters, Simon (2010-03-03), Everything you need to know about HTML5 video and audio [58], Opera
• Javascript HTML5 Video Wrapper (GPL) [59]
• jQuery HTML5 Video Player (GPL) [60]
• Cross-browser HTML5 Audio/Video Development Kit (GPL/MIT) [61]
• Kaltura HTML5 Video JavaScript Library (GPL) [62]

References
[1] 4.8.6 The video element — HTML 5 (http:/ / www. w3. org/ TR/ html5/ video. html#video)
[2] Hickson, Ian (10 December 2007). "[whatwg] Video codec requirements changed" (http:/ / lists. whatwg. org/ pipermail/ whatwg-whatwg.
org/ 2007-December/ 013135. html). whatwg mailing list mailing list. . Retrieved 2008-02-25.
[3] "(X)HTML5 Tracking" (http:/ / html5. org/ tools/ web-apps-tracker?from=1142& to=1143). HTML5.org. . Retrieved 2009-06-23.
[4] "[whatwg] Removal of Ogg is *preposterous*" (http:/ / lists. whatwg. org/ pipermail/ whatwg-whatwg. org/ 2007-December/ 013152. html).
WHATWG mailing list. Lists.whatwg.org. 11 December. . Retrieved 2009-08-25.
[5] Hickson, Ian (2007-12-11). "Re: [whatwg] Removal of Ogg is *preposterous*" (http:/ / lists. whatwg. org/ pipermail/ whatwg-whatwg. org/
2007-December/ 013154. html). whatwg mailing list mailing list. . Retrieved 2008-02-25.
[6] Stachowiak, Maciej (21 March 2007). "[whatwg] Codecs (was Re: Apple Proposal for Timed Media Elements)" (http:/ / lists. whatwg. org/
htdig. cgi/ whatwg-whatwg. org/ 2007-March/ 010392. html). whatwg mailing list mailing list. . Retrieved 2008-02-25.
[7] "The Attack Against Ogg Theora or: How I Learned to Stop Worrying and Love the Proprietary Web" (http:/ / 209. 85. 229. 132/
search?q=cache:Fmc-sySHE0oJ:metavid. org/ blog/ 2007/ 12/ 11/
the-attack-against-ogg-theora-or-how-i-learned-to-stop-worrying-and-love-the-proprietary-web/ + http:/ / metavid. org/ blog/ 2007/ 12/ 11/
the-attack-against-ogg-theora-or-how-i-learned-to-stop-worrying-and-love-the-proprietary-web/ & cd=1& hl=en& ct=clnk& gl=uk&
client=firefox-a). Metavid. 11 December 2007. Archived from the original (http:/ / metavid. org/ blog/ 2007/ 12/ 11/
the-attack-against-ogg-theora-or-how-i-learned-to-stop-worrying-and-love-the-proprietary-web/ ) on 23 June 2009. . Retrieved 2009-06-30.
[8] "rudd-o.com" (http:/ / rudd-o. com/ archives/ 2007/ 12/ 11/ removal-of-ogg-vorbis-and-theora-from-html5-an-outrageous-disaster/ ).
rudd-o.com. 2007-12-11. . Retrieved 2009-06-30.
[9] "Abbadingo » Blog » Removal of Ogg Vorbis and Theora from HTML 5: an outrageous disaster" (http:/ / delcorp. org/ abbadingo/ index. php/
2007/ 12/ 12/ removal-of-ogg-vorbis-and-theora-from-html5-an-outrageous-disaster). Delcorp.org. 2007-12-12. . Retrieved 2009-06-30.
[10] Connolly, Dan (December 18, 2007). "When will HTML 5 support <video>? Sooner if you help" (http:/ / www. w3. org/ QA/ 2007/ 12/
when_will_html_5_support_soone. html). W3C. . Retrieved 2009-06-23.
[11] (PDF) AVC/H.264 Patent List (http:/ / www. mpegla. com/ main/ programs/ avc/ Documents/ avc-att1. pdf), MPEG LA, 2010-02-01,
[12] AVC/H.264 Licensors (http:/ / www. mpegla. com/ main/ programs/ AVC/ Pages/ Licensors. aspx), MPEG LA,
[13] http:/ / en. wikipedia. org/ wiki/ Template%3Alatest_stable_software_release%2Finternet_explorer
[14] Indirectly possible if Google Chrome Frame is installed Kevin Carle and Chris Zacharias (2010-01-20), Introducing YouTube HTML5
Supported Videos (http:/ / youtube-global. blogspot. com/ 2010/ 01/ introducing-youtube-html5-supported. html), Official YouTube Blog, ,
retrieved 2010-03-12Dougherty, Brad (2010-01-21), Try our new HTML5 player! (http:/ / vimeo. com/ blog:268), Vimeo Staff Blog, ,
retrieved 2010-03-12
HTML5 video 24

[15] McCracken, Harry (2010-03-16), Microsoft Previews the Revamped Internet Explorer 9 Platform (http:/ / technologizer. com/ 2010/ 03/ 16/
ie9-platform-preview/ ), Technologizer,
[16] Possible if the user has installed a VP8 codec on Windows for the IE9.Hachamovitch, Dean (2010-05-19), Another Follow-up on HTML5
Video in IE9 (http:/ / blogs. msdn. com/ ie/ archive/ 2010/ 05/ 19/ another-follow-up-on-html5-video-in-ie9. aspx), Microsoft,
[17] Hachamovitch, Dean (2010-04-29), HTML5 Video (http:/ / blogs. msdn. com/ ie/ archive/ 2010/ 04/ 29/ html5-video. aspx), Microsoft, ,
retrieved 2010-05-05
[18] Media formats supported by the audio and video elements (https:/ / developer. mozilla. org/ En/
Media_formats_supported_by_the_audio_and_video_elements), Mozilla,
[19] http:/ / en. wikipedia. org/ wiki/ Template%3Alatest_stable_software_release%2Fmozilla_firefox
[20] Mozilla Firefox 3.5 Release Notes (http:/ / www. mozilla. com/ en-US/ firefox/ 3. 5/ releasenotes/ ), Mozilla, 2009-06-30, , retrieved
2010-02-15
[21] Indirectly possible if IE Tab and Google Chrome Frame are installed. Can I Play HTML5 YouTube Videos in Firefox Right Now? (http:/ /
lifehacker. com/ 5488607/ can-i-play-html5-youtube-videos-in-firefox-right-now), Lifehacker, 2010-03-09, , retrieved 2010-03-11
[22] Bug 566243 - Merge mozilla-webmedia repository to mozilla-central (https:/ / bugzilla. mozilla. org/ show_bug. cgi?id=566243), Mozilla,
[23] Firefox Nightly Builds (http:/ / nightly. mozilla. org/ ), Mozilla,
[24] http:/ / en. wikipedia. org/ wiki/ Template%3Alatest_stable_software_release%2Fgoogle_chrome
[25] Google Chrome support Theora and Vorbis (http:/ / code. google. com/ p/ chromium/ wiki/ ChromiumBrowserVsGoogleChrome), Google,
2010-05-20,
[26] Google Chrome 3.0 will support <video> tag (http:/ / www. cnetfrance. fr/ news/ google-chrome-3-39503164. htm),
[27] Google Chrome support H.264 and AAC (http:/ / code. google. com/ p/ chromium/ wiki/ ChromiumBrowserVsGoogleChrome), Google,
2010-05-20,
[28] Bankoski, Jim (2010-05-19), WebM and VP8 land in Chromium (http:/ / blog. chromium. org/ 2010/ 05/ webm-and-vp8-land-in-chromium.
html), Google,
[29] Kersey, Jason (2010-06-03), Google Chrome Releases: Dev Channel Update (http:/ / googlechromereleases. blogspot. com/ 2010/ 06/
dev-channel-update. html), Google, , retrieved 2010-07-01
[30] http:/ / en. wikipedia. org/ wiki/ Template%3Alatest_stable_software_release%2Fsafari
[31] Unless XiphQT is installed.
[32] About the Safari 3.1 Update (http:/ / support. apple. com/ kb/ TA25197), 2008-03-17, , retrieved 2010-02-15
[33] Dalrymple, Jim (2009-03-10), Apple shows off Safari's HTML 5 support (http:/ / www. macworld. com/ article/ 139285/ 2009/ 03/
safarihtml5. html), Macworld, , retrieved 2010-03-13
[34] Any format supported by QuickTime or Core Video on OS X. HTML5 Media Support (http:/ / webkit. org/ blog/ 140/ html5-media-support/
), WebKit Open Source Project: Surfin' Safari, 2007-11-12, , retrieved 2010-03-11
[35] http:/ / en. wikipedia. org/ wiki/ Template%3Alatest_stable_software_release%2Fopera
[36] Jägenstedt, Philip (2009-12-31), (re-)Introducing <video> - Official blog for Core developers at Opera (http:/ / my. opera. com/ core/ blog/
2009/ 12/ 31/ re-introducing-video), Opera, , retrieved 2010-02-06
[37] On Linux or FreeBSD, supports all formats supported by GStreamer. Everything you need to know about HTML5 video and audio (http:/ /
dev. opera. com/ articles/ view/ everything-you-need-to-know-about-html5-video-and-audio/ ), Opera, March 10, 2010, , retrieved 2010-03-11
[38] Lie, Håkon Wium (2010-05-19), Welcome, WebM <video>! (http:/ / labs. opera. com/ news/ 2010/ 05/ 19/ ), Opera,
[39] Mills, Chris (2010-05-19), Opera supports the WebM video format (http:/ / dev. opera. com/ articles/ view/ opera-supports-webm-video/ ),
Opera,
[40] http:/ / en. wikipedia. org/ wiki/ Template%3Alatest_stable_software_release%2Fkde_software_compilation_4
[41] "KDE 4.4 Release Schedule" (http:/ / techbase. kde. org/ Schedules/ KDE4/ 4. 4_Release_Schedule). .
[42] Davison, Peter (2010-03-03), KHTML Browsers including Konqueror (http:/ / www. legendscrolls. co. uk/ webstandards/ khtml), Legend
Scrolls, , retrieved 2010-03-12
[43] Any format supported by Phonon on Qt 4.5.Vestbø, Tor Arne (2008-05-13), Top Secret, Hush Hush! (http:/ / labs. trolltech. com/ blogs/
2008/ 05/ 13/ top-secret-hush-hush/ ), Nokia Corporation, , retrieved 2010-03-14, which includes GStreamer and xine
[44] http:/ / en. wikipedia. org/ wiki/ Template%3Alatest_stable_software_release%2Fepiphany_%28web_browser%29
[45] Toker, Alp (2007-12-08), HTML5 media support with GStreamer (http:/ / www. atoker. com/ blog/ 2007/ 12/ 08/
html5-media-support-with-gstreamer/ ), , retrieved 2010-03-12
[46] YouTube and WebM support (http:/ / fedoraproject. org/ wiki/ Flash#YouTube_and_WebM_support), Fedora Project, , retrieved 2010-07-01
[47] Any format supported by FFmpeg on 1.7 version for MorphOS. Origyn Web Browser for MorphOS (http:/ / fabportnawak. free. fr/ owb/ ),
Fabian Coeurjoly, , retrieved 2010-01-04Holwerda, Thom (2010-03-08), Origyn Web Browser 1.7 Supports HTML5 Media, More (http:/ /
www. osnews. com/ story/ 22971/ Origyn_Web_Browser_1_7_Supports_HTML5_Media_More), OSNews, , retrieved 2010-03-08
[48] http:/ / en. wikipedia. org/ wiki/ Template%3Alatest_stable_software_release%2Fbolt_browser
[49] New version of Bolt browser fully supports HTML5 video (http:/ / www. html5trends. com/ browsers/
new-version-of-bolt-browser-fully-supports-html5-video/ ), HTML5 Trends, 2010-05-25,
[50] "iPad-ready websites" (http:/ / www. apple. com/ ipad/ ready-for-ipad/ ). Apple, Inc.. . Retrieved 2010-04-05.
[51] "Watch Video…without Flash" (http:/ / blog. dailymotion. com/ index. php/ 2009/ 05/ 27/ watch-videowithout-flash/ ). Dailymotion.
2009-05-27. . Retrieved 2010-05-18.
HTML5 video 25

[52] Carle, Kevin; Zacharias, Chris (2010-01-20). "Introducing YouTube HTML5 Supported Videos" (http:/ / youtube-global. blogspot. com/
2010/ 01/ introducing-youtube-html5-supported. html). Youtube. . Retrieved 2010-03-07.
[53] Dougherty, Brad (2010-01-21). "Try our new HTML5 player!" (http:/ / vimeo. com/ blog:268). Vimeo. . Retrieved 2010-03-07.
[54] "Flash and the HTML5 <video> tag" (http:/ / apiblog. youtube. com/ 2010/ 06/ flash-and-html5-tag. html). .
[55] http:/ / www. whatwg. org/ specs/ web-apps/ current-work/ multipage/ video. html
[56] http:/ / dev. opera. com/ articles/ view/ introduction-html5-video/
[57] http:/ / html5video. org
[58] http:/ / my. opera. com/ core/ blog/ 2010/ 03/ 03/ everything-you-need-to-know-about-html5-video-and-audio-2
[59] http:/ / www. projekktor. com
[60] http:/ / www. mediafront. org/ project/ osmplayer
[61] http:/ / protofunc. com/ jme
[62] http:/ / www. kaltura. org/ project/ HTML5_Video_Media_JavaScript_Library

Immediate mode
Immediate mode rendering is a style for application programming interfaces of graphics libraries, in which client
calls directly cause rendering of graphics objects to the display. It does not preclude the use of double-buffering. In
contrast to retained mode, lists of objects to be rendered are not saved by the API library. Instead, the application
must re-issue all drawing commands required to describe the entire scene each time a new frame is required,
regardless of actual changes. This method provides the maximum amount of control and flexibility to the application
program.
Although drawing commands have to be re-issued for each new frame, modern systems using this method are
generally able to avoid the unnecessary duplication of more memory-intensive display data by referring to that
unchanging data in the relatively short drawing commands.

See also
• Display list
• Retained mode - The opposite of immediate mode
• Scene graph
DOM storage 26

DOM storage
HTML

• HTML and HTML5


• Dynamic HTML
• XHTML
• XHTML Mobile Profile and
C-HTML
• Canvas element
• Character encodings
• Document Object Model
• Font family
• HTML editor
• HTML element
• HTML Frames
• HTML5 video
• HTML scripting
• Web browser engine
• Quirks mode
• Style sheets
• Unicode and HTML
• W3C and WHATWG
• Web colors
• WebGL
• Web Storage
• Comparison of
• document markup languages
• web browsers
• layout engines for
• HTML
• HTML5
• HTML5 Canvas
• HTML5 Media
• Non-standard HTML
• XHTML

Web Storage and DOM Storage (Document Object Model) are web application software methods and protocols
that are used to store data in a web browser. Web storage supports persistent data storage, similar to cookies, as well
as window-local storage.
Web storage is being standardized by the World Wide Web Consortium (W3C). It was originally part of the HTML
5 specification, but is now in a separate specification[1] . It is supported by Internet Explorer 8, Mozilla-based
DOM storage 27

browsers (e.g., Firefox 2+, officially from 3.5)[2] , Safari 4, Google Chrome 4 (sessionStorage is from 5), and Opera
10.50. As of 14 July 2010 only Opera supports the DOM Storage events[3] .

Features
Web storage can be viewed simplistically as an improvement on cookies, providing much greater storage capacity
(5MB per domain in Mozilla Firefox[4] , Google Chrome, and Opera, 10MB per storage area in Internet Explorer[5] )
and better programmatic interfaces. However, it differs from cookies in some key ways.

Client-side interface
Unlike cookies, which can be accessed by both the server and client side, Web storage falls exclusively under the
purview of client-side scripting. Web storage data is not transmitted to the server in every HTTP request, and a web
server can't directly write to Web storage.

Local and session storage


Web storage offers two different storage areas -- local storage and session storage -- which differ in scope and
lifetime. Data placed in local storage is per domain (it's available to all scripts from the domain that originally stored
the data) and persists after the browser is closed. Session storage is per-page-per-window and is limited to the
lifetime of the window. Session storage is intended to allow separate instances of the same web application to run in
different windows without interfering with each other, a use case that's not well-supported by cookies.[6]

Data model
Web storage currently provides an associative array data model where the keys and values are both strings. An
additional API for accessing structured data, perhaps based on SQL, is being considered by the W3C Web
Applications Working Group.[7]

Nomenclature
The W3C draft is titled "Web Storage", but "DOM storage" is also commonly used name.[8] [9]
The "DOM" in DOM storage doesn't literally refer to the Document Object Model. "The term DOM is used to refer
to the API set made available to scripts in Web applications, and does not necessarily imply the existence of an
actual Document object..."[10]

Web Storage Management


Storage of Web Storage Objects is enabled per default in Mozilla Firefox and Seamonkey, but can be disabled by
setting the "about:config" parameter "dom.storage.enabled" to false [11]
Mozilla Firefox stores all Web Storage objects in a single file named webappsstore.sqlite. The sqlite3 command can
be used to show the elements stored therein. [12]
There are browser add-ons for Mozilla Firefox available that let the user deal with web Storage, such as "Better
Privacy" which can be configured to remove the whole Web Storage automatically on a regular basis.[13] [14]
DOM storage 28

Similar technologies
• HTTP cookies
• Indexed Database API[15] (formerly WebSimpleDB)
• Web SQL Database
• Local Shared Objects in Adobe Flash
• userData Behavior in Internet Explorer
• Google Gears for IE, Firefox, Safari and Windows Mobile

External links
• W3C: Web Storage [16]
• MSDN: Introduction to DOM Storage [17]
• Mozilla Developer Center: DOM Storage [18]
• Opera: Web Storage: easier, more powerful client-side data storage [19]
• DOMCached - a memcached like caching system for JavaScript using DOM storage [20]
• Dive Into JavaScript: Web Storage (DOM Storage) Reference [21] and Web Storage Tutorial: Creating an Address
Book Application [22]

References
[1] Web Storage (http:/ / www. w3. org/ TR/ webstorage/ )
[2] Mozilla Developer Center: DOM Storage (https:/ / developer. mozilla. org/ En/ DOM:Storage#Description)
[3] Dive Into JavaScript: Web Storage (DOM Storage) (http:/ / www. diveintojavascript. com/ javascript-apis/ web-storage-dom-storage)
[4] John Resig: DOM Storage (http:/ / ejohn. org/ blog/ dom-storage/ )
[5] MSDN: Introduction to DOM Storage (http:/ / msdn. microsoft. com/ en-us/ library/ cc197062(VS. 85). aspx#_dom)
[6] W3C: Web Storage draft standard (http:/ / dev. w3. org/ html5/ webstorage/ #introduction)
[7] W3C: Web SQL Database (working draft) (http:/ / www. w3. org/ TR/ webdatabase)
[8] Mozilla Developer Center: DOM Storage (https:/ / developer. mozilla. org/ En/ DOM:Storage)
[9] MSDN: Introduction to DOM Storage (http:/ / msdn. microsoft. com/ en-us/ library/ cc197062(VS. 85). aspx)
[10] W3C: Web Storage draft standard (http:/ / dev. w3. org/ html5/ webstorage/ #terminology)
[11] Mozillazine article on disabling Web Storage Objects in about:config (http:/ / kb. mozillazine. org/ Dom. storage. enabled)
[12] http:/ / www. cerias. purdue. edu/ site/ blog/ post/ firefoxs-super-cookies CERIAS Blog -- Firefox’s Super Cookies
[13] Mozilla add-ons page for "Better Privacy" (https:/ / addons. mozilla. org/ en-US/ firefox/ addon/ 6623?from=/ de/ firefox/ addon/ 6623)
[14] Homepage of "Better Privacy", with some further references to blogs and articles (http:/ / netticat. ath. cx/ extensions. html)
[15] http:/ / www. w3. org/ TR/ IndexedDB/
[16] http:/ / www. w3. org/ TR/ webstorage/
[17] http:/ / msdn. microsoft. com/ en-us/ library/ cc197062(VS. 85). aspx
[18] https:/ / developer. mozilla. org/ En/ DOM:Storage
[19] http:/ / dev. opera. com/ articles/ view/ web-storage/
[20] http:/ / www. domcached. com/
[21] http:/ / www. diveintojavascript. com/ javascript-apis/ web-storage-dom-storage
[22] http:/ / www. diveintojavascript. com/ tutorials/ web-storage-tutorial-creating-an-address-book-application
Web Storage 29

Web Storage
HTML

• HTML and HTML5


• Dynamic HTML
• XHTML
• XHTML Mobile Profile and
C-HTML
• Canvas element
• Character encodings
• Document Object Model
• Font family
• HTML editor
• HTML element
• HTML Frames
• HTML5 video
• HTML scripting
• Web browser engine
• Quirks mode
• Style sheets
• Unicode and HTML
• W3C and WHATWG
• Web colors
• WebGL
• Web Storage
• Comparison of
• document markup languages
• web browsers
• layout engines for
• HTML
• HTML5
• HTML5 Canvas
• HTML5 Media
• Non-standard HTML
• XHTML

Web Storage and DOM Storage (Document Object Model) are web application software methods and protocols
that are used to store data in a web browser. Web storage supports persistent data storage, similar to cookies, as well
as window-local storage.
Web storage is being standardized by the World Wide Web Consortium (W3C). It was originally part of the HTML
5 specification, but is now in a separate specification[1] . It is supported by Internet Explorer 8, Mozilla-based
Web Storage 30

browsers (e.g., Firefox 2+, officially from 3.5)[2] , Safari 4, Google Chrome 4 (sessionStorage is from 5), and Opera
10.50. As of 14 July 2010 only Opera supports the DOM Storage events[3] .

Features
Web storage can be viewed simplistically as an improvement on cookies, providing much greater storage capacity
(5MB per domain in Mozilla Firefox[4] , Google Chrome, and Opera, 10MB per storage area in Internet Explorer[5] )
and better programmatic interfaces. However, it differs from cookies in some key ways.

Client-side interface
Unlike cookies, which can be accessed by both the server and client side, Web storage falls exclusively under the
purview of client-side scripting. Web storage data is not transmitted to the server in every HTTP request, and a web
server can't directly write to Web storage.

Local and session storage


Web storage offers two different storage areas -- local storage and session storage -- which differ in scope and
lifetime. Data placed in local storage is per domain (it's available to all scripts from the domain that originally stored
the data) and persists after the browser is closed. Session storage is per-page-per-window and is limited to the
lifetime of the window. Session storage is intended to allow separate instances of the same web application to run in
different windows without interfering with each other, a use case that's not well-supported by cookies.[6]

Data model
Web storage currently provides an associative array data model where the keys and values are both strings. An
additional API for accessing structured data, perhaps based on SQL, is being considered by the W3C Web
Applications Working Group.[7]

Nomenclature
The W3C draft is titled "Web Storage", but "DOM storage" is also commonly used name.[8] [9]
The "DOM" in DOM storage doesn't literally refer to the Document Object Model. "The term DOM is used to refer
to the API set made available to scripts in Web applications, and does not necessarily imply the existence of an
actual Document object..."[10]

Web Storage Management


Storage of Web Storage Objects is enabled per default in Mozilla Firefox and Seamonkey, but can be disabled by
setting the "about:config" parameter "dom.storage.enabled" to false [11]
Mozilla Firefox stores all Web Storage objects in a single file named webappsstore.sqlite. The sqlite3 command can
be used to show the elements stored therein. [12]
There are browser add-ons for Mozilla Firefox available that let the user deal with web Storage, such as "Better
Privacy" which can be configured to remove the whole Web Storage automatically on a regular basis.[13] [14]
Web Storage 31

Similar technologies
• HTTP cookies
• Indexed Database API[15] (formerly WebSimpleDB)
• Web SQL Database
• Local Shared Objects in Adobe Flash
• userData Behavior in Internet Explorer
• Google Gears for IE, Firefox, Safari and Windows Mobile

External links
• W3C: Web Storage [16]
• MSDN: Introduction to DOM Storage [17]
• Mozilla Developer Center: DOM Storage [18]
• Opera: Web Storage: easier, more powerful client-side data storage [19]
• DOMCached - a memcached like caching system for JavaScript using DOM storage [20]
• Dive Into JavaScript: Web Storage (DOM Storage) Reference [21] and Web Storage Tutorial: Creating an Address
Book Application [22]

References
[1] Web Storage (http:/ / www. w3. org/ TR/ webstorage/ )
[2] Mozilla Developer Center: DOM Storage (https:/ / developer. mozilla. org/ En/ DOM:Storage#Description)
[3] Dive Into JavaScript: Web Storage (DOM Storage) (http:/ / www. diveintojavascript. com/ javascript-apis/ web-storage-dom-storage)
[4] John Resig: DOM Storage (http:/ / ejohn. org/ blog/ dom-storage/ )
[5] MSDN: Introduction to DOM Storage (http:/ / msdn. microsoft. com/ en-us/ library/ cc197062(VS. 85). aspx#_dom)
[6] W3C: Web Storage draft standard (http:/ / dev. w3. org/ html5/ webstorage/ #introduction)
[7] W3C: Web SQL Database (working draft) (http:/ / www. w3. org/ TR/ webdatabase)
[8] Mozilla Developer Center: DOM Storage (https:/ / developer. mozilla. org/ En/ DOM:Storage)
[9] MSDN: Introduction to DOM Storage (http:/ / msdn. microsoft. com/ en-us/ library/ cc197062(VS. 85). aspx)
[10] W3C: Web Storage draft standard (http:/ / dev. w3. org/ html5/ webstorage/ #terminology)
[11] Mozillazine article on disabling Web Storage Objects in about:config (http:/ / kb. mozillazine. org/ Dom. storage. enabled)
[12] http:/ / www. cerias. purdue. edu/ site/ blog/ post/ firefoxs-super-cookies CERIAS Blog -- Firefox’s Super Cookies
[13] Mozilla add-ons page for "Better Privacy" (https:/ / addons. mozilla. org/ en-US/ firefox/ addon/ 6623?from=/ de/ firefox/ addon/ 6623)
[14] Homepage of "Better Privacy", with some further references to blogs and articles (http:/ / netticat. ath. cx/ extensions. html)
[15] http:/ / www. w3. org/ TR/ IndexedDB/
Drag-and-drop 32

Drag-and-drop
In computer graphical user interfaces, drag-and-drop is the action of (or support for the action of) clicking on a
virtual object and dragging it to a different location or onto another virtual object. In general, it can be used to invoke
many kinds of actions, or create various types of associations between two abstract objects.
As a feature, support for drag-and-drop is not found in all software, though it is sometimes a fast and easy-to-learn
technique for users to perform tasks. However, the lack of affordances in drag-and-drop implementations means that
it is not always obvious that an item can be dragged.[1]

Actions
The basic sequence involved in drag-and-drop is:
• Press, and hold down, the button on the mouse or other pointing
device, to "grab" the object,
• "Drag" the object/cursor/pointing device to the desired location,
Drag image and drop onto browser in Windows

• "Drop" the object by releasing the button.


Dragging requires more physical effort than moving the same pointing device without holding down any buttons.
Because of this, a user cannot move as quickly and precisely while dragging (see Fitts' law). However,
drag-and-drop operations have the advantage of thoughtfully chunking together two operands (the object to drag, and
the drop location) into a single action [2] . Extended dragging and dropping (as in graphic design) can stress the
mousing hand.
A design problem appears when the same button selects and drags items. Imprecise movement can cause a dragging
when the user just want to select.
Another problem is that the target of the dropping can be hidden under other objects. The user would have to stop the
dragging, make both the source and the target visible and start again. In classic Mac OS the top-of-screen menu bar
served as a universal "drag cancel" target. This issue has been dealt with in Mac OS X with the introduction of
Exposé.

In Mac OS
Drag-and-drop was used in the original Macintosh to manipulate files (for example, copying them between disks [3]
or folders.[4] ). System 7 introduced the ability to open a document in an application by dropping the document icon
onto the application's icon.
In System 7.5 drag and drop was extended to common clipboard operations like copying or moving textual content
within a document. Content could also be dragged into the filesystem to create a "clipping file" which could then be
stored and reused.
In Mac OS X, the user can install software without using a setup program. The application packaging scheme of OS
X allows the program to simply copy any required support files upon startup.
For most of its history Mac OS has used a one button mouse with the button covering a large portion of the top
surface of the mouse. This may mitigate the ergonomic concerns of keeping the button pressed while dragging.
Drag-and-drop 33

In Windows
Jeffrey Greenberg claims that the first drag & drop implementation for Windows was his shareware program called
Aporia in 1988 under Windows 2.0, and later commercialized as WinTools [5]. In Aporia/WinTools all icons had
functions that could be obtained by double clicking the left mouse button, by clicking on the right mouse button, or
by dragging onto one of several functional icons, such as printing, copying, viewing, and other actions. If an icon
was double-clicked on and ran a program, the icon changed to indicate that a program was running, and if it was then
dragged to the trash, the program was exited. (A defect in the implementation led to a workaround being built into
the Windows operating system Aporia Bits [6])
Subsequently numerous other competitors provided drag & drop desktop replacements to the standard Windows
interface including the Norton Desktop, Xerox, NewWave, and Central Point. In Windows 95, Microsoft prevented
developers from taking over the desktop, and released a drag & drop model of their own.

In OS/2
The Workplace Shell of OS/2 uses dragging and dropping extensively with the secondary mouse button, leaving the
primary one for selection and clicking. Its use like that of other advanced Common User Access features
distinguished native OS/2 applications from platform-independent ports.

In HTML
The HTML5 specification is expected to include support for drag & drop.
Google Wave and Lucidchart, tools created with HTML5 as a main resource, supports drag & drop.

On a touch screen
Very few touch screen interfaces include Click and drag. More common is long press, and then drag.

Examples
A common example is dragging an icon on a virtual desktop to a special trashcan icon to delete a file.
Further examples include:
• Dragging a data file onto a program icon or special window for viewing or processing,
• Moving or copying files to a new location/directory/folder,
• Adding objects to a list of objects to be processed,
• Rearranging widgets in a graphical user interface to customize their layout,
• Dragging a command onto an object to which the command is to be applied,
• e.g. dragging a color onto a graphical object to change its color,
• Dragging a tool to a canvas location to apply the tool at that location,
• Creating a hyperlink from one location or word to another location or document.
• Most text editors allow dragging selected text from one point to another.
• Javascript to drag and drop the list [7] DOM nodes.
Drag-and-drop 34

See also
• Mouse gesture
• Point-and-click
• Snap (computer graphics)

References
[1] Jakob Nielsen, "Top-10 Application-Design Mistakes," http:/ / www. useit. com/ alertbox/ application-mistakes. html (19 February 2008).
[2] Buxton, W. (1986). "Chunking and Phrasing and the Design of Human-Computer Dialogues" (http:/ / www. billbuxton. com/ chunking.
html). . pp. 475–480. .
[3] "Disk Swapper's Elbow" (http:/ / www. folklore. org/ StoryView. py?project=Macintosh& story=Disk_Swappers_Elbow. txt&
topic=Technical& sortOrder=Sort by Date& detail=medium& showcomments=1). folklore.org. .
[4] "The Grand Unified Model (2): The Finder" (http:/ / www. folklore. org/ StoryView. py?project=Macintosh&
story=The_Grand_Unified_Model_The_Finder. txt). folklore.org. .
[5] http:/ / www. jeffrey-greenberg. com/ book-chapters. html
[6] http:/ / support. microsoft. com/ kb/ 82860
[7] http:/ / www. pagecolumn. com/ javascript/ drag_list. htm

MIME type
An Internet media type,[1] originally called a MIME type after MIME (Multipurpose Internet Mail Extensions) and
sometimes a Content-type after the name of a header in several protocols whose value is such a type, is a two-part
identifier for file formats on the Internet. The identifiers were originally defined in RFC 2046 for use in e-mail sent
through SMTP, but their use has expanded to other protocols such as HTTP, RTP and SIP.
A media type is composed of at least two parts: a type, a subtype, and one or more optional parameters. For example,
subtypes of text type have an optional charset parameter that can be included to indicate the character encoding, and
subtypes of multipart type often define a boundary between parts.
Types or subtypes that begin with x- are nonstandard[2] (they are not registered with IANA). Subtypes that begin
with vnd. are vendor-specific; subtypes in the personal or vanity tree begin with prs..[3]
MIME is short for Multipurpose Internet Mail Extensions, a specification for formatting non-ASCII messages so that
they can be sent over the Internet. Many e-mail clients now support MIME, which enables them to send and receive
graphics, audio, and video files via the Internet mail system.
There are many predefined MIME types, such as GIF graphics files and PostScript files. It is also possible to define
your own MIME types.
In addition to e-mail applications, Web browsers also support various MIME types. This enables the browser to
display or output files that are not in HTML format.
MIME was defined in 1992 by the Internet Engineering Task Force (IETF). A new version, called S/MIME, supports
encrypted messages.
MIME type 35

List of common media types


[4]
IANA manages a registry of media types and character encodings. The organization makes a list available to the
public through the Web. Some of the more notable media types used on the Web are listed below:
• Type application: Multipurpose files
• application/EDI-X12: EDI X12 data; Defined in RFC 1767
• application/EDIFACT: EDI EDIFACT data; Defined in RFC 1767
• application/json: JavaScript Object Notation JSON; Defined in RFC 4627
• application/javascript: JavaScript; Defined in RFC 4329 but not accepted in IE 8 or earlier
• application/octet-stream: Arbitrary binary data[5] . Generally speaking this type identifies files that are not
associated with a specific application. Contrary to past assumptions by software packages such as Apache this
is not a type that should be applied to unknown files. In such a case, a server or application should not indicate
a content type, as it may be incorrect, but rather, should omit the type in order to allow the recipient to guess
the type.[6]
• application/ogg: Ogg, a multimedia bitstream container format; Defined in RFC 5334
• application/pdf: Portable Document Format, PDF has been in use for document exchange on the Internet since
1993; Defined in RFC 3778
• application/soap+xml: SOAP; Defined by RFC 3902
• application/xhtml+xml: XHTML; Defined by RFC 3236
• application/xml-dtd: DTD files; Defined by RFC 3023
• application/zip: ZIP archive files; Registered[7]
• Type audio: Audio
• audio/basic: mulaw audio at 8 kHz, 1 channel; Defined in RFC 2046
• audio/mp4: MP4 audio
• audio/mpeg: MP3 or other MPEG audio; Defined in RFC 3003
• audio/ogg: Ogg Vorbis, Speex, Flac and other audio; Defined in RFC 5334
• audio/vorbis: Vorbis encoded audio; Defined in RFC 5215
• audio/x-ms-wma: Windows Media Audio; Documented in Microsoft KB 288102 [8]
• audio/x-ms-wax: Windows Media Audio Redirector; Documented in Microsoft help page [8]
• audio/vnd.rn-realaudio: RealAudio; Documented in RealPlayer Customer Support Answer 2559 [9]
• audio/vnd.wave: WAV audio; Defined in RFC 2361
• Type image
• image/gif: GIF image; Defined in RFC 2045 and RFC 2046
• image/jpeg: JPEG JFIF image; Defined in RFC 2045 and RFC 2046
• image/png: Portable Network Graphics; Registered[10] , Defined in RFC 2083
• image/svg+xml: SVG vector image; Defined in SVG Tiny 1.2 Specification Appendix M [11]
• image/tiff: Tag Image File Format; Defined in RFC 3302
• image/vnd.microsoft.icon: ICO image; Registered[12]
• Type message
• message/http
• Type model: 3D models
• Type multipart: Archives and other objects made of more than one part
• multipart/mixed: MIME E-mail; Defined in RFC 2045 and RFC 2046
• multipart/alternative: MIME E-mail; Defined in RFC 2045 and RFC 2046
• multipart/related: MIME E-mail; Defined in RFC 2387 and used by MHTML (HTML mail)
• multipart/form-data: MIME Webform; Defined in RFC 2388
• multipart/signed: Defined in RFC 1847
MIME type 36

• multipart/encrypted: Defined in RFC 1847


• Type text: Human-readable text and source code
•text/css: Cascading Style Sheets; Defined in RFC 2318
•text/csv: Comma-separated values; Defined in RFC 4180
•text/html: HTML; Defined in RFC 2854
•text/javascript (Obsolete): JavaScript; Defined in and obsoleted by RFC 4329 in order to discourage its usage
in favor of application/javascript. However, text/javascript is allowed in HTML 4 and 5 and, unlike
application/javascript, has cross-browser support
• text/plain: Textual data; Defined in RFC 2046 and RFC 3676
• text/xml: Extensible Markup Language; Defined in RFC 3023
• Type video: Video
• video/mpeg: MPEG-1 video with multiplexed audio; Defined in RFC 2045 and RFC 2046
• video/mp4: MP4 video; Defined in RFC 4337
• video/ogg: Ogg Theora or other video (with audio); Defined in RFC 5334
• video/quicktime: QuickTime video; Registered[13]
• video/webm: WebM open media format
• video/x-ms-wmv: Windows Media Video; Documented in Microsoft KB 288102 [8]
• Type vnd: Vendor Specific Files
• application/vnd.oasis.opendocument.text: OpenDocument Text; Registered [14]
• application/vnd.oasis.opendocument.spreadsheet: OpenDocument Spreadsheet; Registered [15]
• application/vnd.oasis.opendocument.presentation: OpenDocument Presentation; Registered [16]
• application/vnd.oasis.opendocument.graphics: OpenDocument Graphics; Registered [17]
• application/vnd.ms-excel: Microsoft Excel files
• application/vnd.openxmlformats-officedocument.spreadsheetml.sheet: Microsoft Excel 2007 files.
• application/vnd.ms-powerpoint: Microsoft Powerpoint files
• application/msword: Microsoft Word files
• application/vnd.openxmlformats-officedocument.wordprocessingml.document: Microsoft Word 2007 files
• application/vnd.mozilla.xul+xml: Mozilla XUL files
• Type x: Non-standard files
• application/x-www-form-urlencoded Form Encoded Data; Documented in HTML 4.01 Specification, Section
17.13.4.1 [18]
• application/x-dvi: Digital Video files in DVI format
• application/x-latex: LaTeX files
• application/x-shockwave-flash: Adobe Flash files for example with the extension .swf; Documented in Adobe
TechNote tn_4151 [19] and Adobe TechNote tn_16509 [20]
• application/x-stuffit: StuffIt archive files
• application/x-rar-compressed: RAR archive files
• application/x-tar: Tarball files
• Type x-pkcs: PKCS standard files
• application/x-pkcs12: p12 files
• application/x-pkcs12: pfx files
• application/x-pkcs7-certificates: p7b files
• application/x-pkcs7-certificates: spc files
• application/x-pkcs7-certreqresp: p7r files
• application/x-pkcs7-mime: p7c files
• application/x-pkcs7-mime: p7m files
MIME type 37

• application/x-pkcs7-signature: p7s files

See also
• XML and MIME
• RTP audio video profile
• mime.types

External links
• IANA MIME media types list [4]
• RFC 2045 [21], RFC 2046 - Multipurpose Internet Mail Extensions (MIME), parts 1 and 2

References
[1] "Internet Media Type registration, consistency of use" (http:/ / www. w3. org/ 2001/ tag/ 2002/ 0129-mime). W3C. 2002-06-03. . Retrieved
2006-11-29.
[2] Freed, N. and Borenstein, N. (November 1996). "RFC 2045 - Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet
Message Bodies" (http:/ / tools. ietf. org/ html/ rfc2045#section-5). IETF. . Retrieved 2006-11-29.
[3] Freed, N.; Klensin, J. (December 2005). "RFC 4288 - Media Type Specifications and Registration Procedures" (http:/ / tools. ietf. org/ html/
rfc4288#section-3. 2). IETF. . Retrieved 2008-06-14.
[4] http:/ / www. iana. org/ assignments/ media-types/
[5] http:/ / tools. ietf. org/ html/ rfc2046
[6] http:/ / www. w3. org/ Protocols/ rfc2616/ rfc2616-sec7. html#sec7. 2. 1
[7] http:/ / www. iana. org/ assignments/ media-types/ application/ zip
[8] http:/ / support. microsoft. com/ kb/ 288102
[9] http:/ / real. custhelp. com/ cgi-bin/ real. cfg/ php/ enduser/ std_adp. php?p_faqid=2559& p_created=& p_sid=uz4Tpoti&
p_lva=1085179956& p_sp=2559&
p_li=cF9zcmNoPTEmcF9zb3J0X2J5PSZwX2dyaWRzb3J0PSZwX3Jvd19jbnQ9MSZwX3Byb2RzPTMsMTEmcF9jYXRzPSZwX3B2PTIuMTEmcF9jdj0mcF9zZ
p_prod_lvl1=3& p_prod_lvl2=11& tabName=tab0& p_topview=1
[10] http:/ / www. iana. org/ assignments/ media-types/ image/ png
[11] http:/ / www. w3. org/ TR/ SVGTiny12/ mimereg. html
[12] http:/ / www. iana. org/ assignments/ media-types/ image/ vnd. microsoft. icon
[13] http:/ / www. iana. org/ assignments/ media-types/ video/ quicktime
[14] http:/ / www. iana. org/ assignments/ media-types/ application/ vnd. oasis. opendocument. text
[15] http:/ / www. iana. org/ assignments/ media-types/ application/ vnd. oasis. opendocument. spreadsheet
[16] http:/ / www. iana. org/ assignments/ media-types/ application/ vnd. oasis. opendocument. presentation
[17] http:/ / www. iana. org/ assignments/ media-types/ application/ vnd. oasis. opendocument. graphics
[18] http:/ / www. w3. org/ TR/ html401/ interact/ forms. html#h-17. 13. 4. 1
[19] http:/ / www. adobe. com/ go/ tn_4151
[20] http:/ / www. adobe. com/ go/ tn_16509
[21] http:/ / www. ietf. org/ rfc/ rfc2046. txt
W3C Geolocation API 38

W3C Geolocation API


The W3C Geolocation API is an effort by the W3C to standardize an interface to retrieve the geographical location
information for a client-side device[1] . It defines a set of objects, ECMAScript standard compliant, that executing in
the client application give the client's device location through the consulting of location information servers, which
are transparent for the API. The most common sources of location information are IP address, Wi-Fi and Bluetooth
MAC address, RFID, Wi-Fi connection location, or device GPS and GSM/CDMA cell IDs. The location is returned
with a given accuracy depending on the best location information source available.

Deployment in Web Browsers


Web pages can use the Geolocation API in two ways: directly, if the web browser implements it (as is the case with
Mozilla Firefox 3.5 and the latest version of Google Chrome); or through Google Gears[2] . In the latter case, the
client browser must have the Gears plugin installed, and the web page must initialize Gears with the following
HTML:

<script type="text/javascript" src="gears_init.js"></script>

The Geolocation API is ideally suited to web applications for mobile devices such as PDAs and smartphones.
However, there is not yet widespread support on such platforms due to the wide variety of devices and mobile
browsers (which usually lack a plugin architecture). On the desktop, the W3C Geolocation API works in Firefox
since version 3.5, Google Chrome from the latest stable release[3] , iPhone and Android (firmware 2.0 +) and in
Opera 10.6.[4]
Google Gears provides geolocation support for Internet Explorer 7.0+ (as Gears plugin), and Google Chrome (which
implements Gears natively). It also supports geolocation on mobile devices as a plugin for the Android Browser (pre
version 2.0) and Opera Mobile for Windows Mobile.

Basic Use
The most important Object to declare in your code is the Geolocation one, which implements the main methods to
retrieve and populate the object Position, which will be used to show user's device position.

How does Geolocation work?


Though the implementation is not specified, W3C Geolocation API is built on existing technologies, and is heavily
influenced by Google Gears Geolocation API. In fact, Firefox’s Geolocation implementation[5] uses Google’s
network location provider[6] .
Google Gears Geolocation works by sending a set of parameters that could give a hint as to where your physical
location is, to a network location provider server, which is by default, the one provided by Google
(code.l.google.com)[7] . Some of the parameters are a list of mobile cell towers and their signal strengths, as well as a
list of detected WiFi networks and their signal strengths. These parameters are encapsulated into a JSON message
and sent to the network location provider via HTTP POST. Based on these parameters, the network location provider
can deduce your location.
W3C Geolocation API 39

Example
Simple Javascript code that checks if the browser has the Geolocation API implemented or it has the Google Gears
to create the Geolocation object and then uses it to get the current position of the device.

var gl = null;

function displayPosition(position) {
p = document.getElementById("p");
p.innerHTML = "<table border='1'><tr><th>Timestamp</th><td>"+ position.timestamp +
"<tr><th>Latitude (WGS84)</th><td>" + position.coords.latitude + " deg</td></tr>" +
"<tr><th>Longitude (WGS84)</th><td>" + position.coords.longitude + " deg</td></tr></tab
}

function displayError(positionError) {
alert("error")
}

try {
if(typeof(navigator.geolocation) == 'undefined'){
gl = google.gears.factory.create('beta.geolocation');
} else {
gl = navigator.geolocation;
}
}catch(e){}

if (gl) {
gl.getCurrentPosition(displayPosition, displayError);
} else {
alert("I'm sorry, but geolocation services are not supported by your
browser.");
}

Firefox and Google Gears have put up some demos of the Geolocation API:
• http://www.mozilla.com/en-GB/firefox/geolocation/
• http://code.google.com/apis/gears/samples/hello_world_geolocation.html
Screenshots of Firefox Geolocation Demo can be found in WebScanNotes.com [8]
W3C Geolocation API 40

External links
• Firefox 3.5 Geolocation Features [9] for developing location applications.
• Tutorial and example of Geolocation API with Google Gears [10].
• Add a network location provider [11] to Gears.
• WebScanNotes.com - W3C Geolocation API [8].

References
[1] "W3C Geolocation API Specification" (http:/ / www. w3. org/ TR/ geolocation-API/ ), Editor: Andrei Popescu from Google Inc. , 22
December 2008. Retrieved 07 July 2009
[2] Geolocation API - Gears API - Google Code (http:/ / code. google. com/ apis/ gears/ api_geolocation. html) (9 July 2009)
[3] (http:/ / chrome. blogspot. com/ 2010/ 05/ new-chrome-stable-release-welcome-mac. html)
[4] Kleinhout, Huib (1. July 2010). "Opera 10.60 goes final" (http:/ / my. opera. com/ desktopteam/ blog/ 2010/ 07/ 01/ opera-10-60-goes-final).
My Opera. Opera Software. . Retrieved 2 July 2010.
[5] http:/ / www. mozilla. com/ en-GB/ firefox/ geolocation/
[6] http:/ / code. google. com/ apis/ gears/ geolocation_network_protocol. html
[7] WebScanNotes.com - W3C Geolocation API (http:/ / webscannotes. com/ ?page_id=425), WebScanNotes.com
[8] http:/ / webscannotes. com/ ?page_id=425
[9] https:/ / developer. mozilla. org/ En/ Using_geolocation
[10] http:/ / www. ajaxapp. com/ 2009/ 03/ 25/ google-gear-geolocation-api-example-displays-your-location-on-google-map/
[11] http:/ / code. google. com/ intl/ es-ES/ apis/ gears/ geolocation_network_protocol. html

Web SQL Database


From W3C: "...an API for storing data in databases that can be queried using a variant of SQL"
Web SQL Database is supported by Google Chrome[1] , Opera and Safari but will not be implemented by
Mozilla(Firefox)[2] who instead propone Indexed Database API access.

See Also
• HTML5
• Web Storage
• Indexed Database API
• SQLite

External Links
• W3C Web SQL Database Working Draft [3]
• infoq.com article [4]

References
[1] http:/ / blog. chromium. org/ 2010/ 01/ more-resources-for-developers. html
[2] http:/ / hacks. mozilla. org/ 2010/ 06/ beyond-html5-database-apis-and-the-road-to-indexeddb/
[3] http:/ / www. w3. org/ TR/ webdatabase/
[4] http:/ / www. infoq. com/ news/ 2010/ 02/ Web-SQL-Database
Indexed Database API 41

Indexed Database API


The Indexed Database API, or Indexed DB (formerly WebSimpleDB) is a proposed[1] web browser standard
interface for a local database of records holding simple values and hierarchical objects. Indexed DB was initially
proposed by Oracle in 2009.[2]
Indexed DB could be used for browser implemented functions, such as bookmarks, as well as web applications, such
as email. An open-source reference implementation of the Indexed Database API exists for testing and
experimentation purposes.[3]
Safari, Chrome 4 and Opera support[4] an alternate variation called Web SQL Database.[5] Chromium milestone 6
has begun work on IndexedDB.[6]

See also
• HTML5
• Web SQL Database
• Web Storage

External links
• Beyond HTML5: Database APIs and the Road to IndexedDB [7]

References
[1] http:/ / www. w3. org/ TR/ IndexedDB/
[2] http:/ / www. w3. org/ TR/ 2009/ WD-WebSimpleDB-20090929/
[3] http:/ / code. google. com/ p/ indexeddb/
[4] http:/ / news. cnet. com/ 8301-30685_3-20000376-264. html
[5] http:/ / dev. w3. org/ html5/ webdatabase/
[6] http:/ / sites. google. com/ a/ chromium. org/ dev/ developers/ web-platform-status#TOC-Indexed-Database-API-IndexedDB-form
[7] http:/ / hacks. mozilla. org/ 2010/ 06/ beyond-html5-database-apis-and-the-road-to-indexeddb/
SVG 42

SVG

Filename extension .svg, .svgz

Internet media [1] [2]


image/svg+xml
type

Developed by World Wide Web


Consortium

Initial release

Latest release Tiny 1.2 / 22 December 2008

Type of format vector image format

Extended from XML

Open format? Yes

Website [3]
w3.org/Graphics/SVG/

Scalable Vector Graphics


• SXBL
• SVG Working Group
• SVG filter effects
• Precision Graphics Markup Language
• Vector Markup Language
• XHTML+MathML+SVG
• SVG animation
• Comparison of layout engines (SVG)

Scalable Vector Graphics (SVG) is a


family of specifications of an XML-based
file format for describing two-dimensional
vector graphics, both static and dynamic
(i.e. interactive or animated).
The SVG specification is an open standard
that has been under development by the
World Wide Web Consortium (W3C) since
1999.
SVG images and their behaviours are
defined in XML text files. This means that
This image illustrates the difference between bitmap and vector images. The
they can be searched, indexed, scripted and,
bitmap image is composed of a fixed set of dots, while the vector image is
if required, compressed. Since they are composed of a fixed set of shapes. In the picture, scaling the bitmap reveals the
XML files, SVG images can be created and dots and scaling the vector image preserves the shapes.
SVG 43

edited with any text editor, but specialized SVG-based drawing programs are also available.
All major modern web browsers except Microsoft Internet Explorer (IE), support and render SVG markup directly.[4]
The next major version of IE, Internet Explorer 9, will do so.[5]

Overview
SVG has been in development since 1999 by a group of companies within the W3C after the competing standards
Precision Graphics Markup Language (PGML) – developed from Adobe's PostScript – and Vector Markup
Language (VML) – developed from Microsoft's RTF – were submitted to W3C in 1998. SVG drew on experience
from the designs of both those formats.
SVG allows three types of graphic objects:
• Vector graphics
• Raster graphics
• Text
Graphical objects can be grouped, styled, transformed, and composited into previously rendered objects. SVG does
not directly support z-indices[6] that separate drawing order from document order for overlapping objects, unlike
some other vector markup languages like VML. Text can be in any XML namespace suitable to the application,
which enhances search ability and accessibility of the SVG graphics. The feature set includes nested transformations,
clipping paths, alpha masks, filter effects, template objects and extensibility.
Since 2001, the SVG specification has been updated to version 1.1 (current Recommendation) and 1.2 (still a
Working Draft). The SVG Mobile Recommendation introduced two simplified profiles of SVG 1.1, SVG Basic and
SVG Tiny, meant for devices with reduced computational and display capabilities. SVG Tiny later became an
autonomous Recommendation (current version 1.2) and the basis for SVG 1.2. In addition to these variants and
profiles, the SVG Print specification (still a Working Draft) contains guidelines for printable SVG 1.2 and SVG
Tiny 1.2 documents.
The Canvas element in HTML5 provides an approach to rendering dynamic graphics in HTML that's procedural
rather than declarative: instead of specifying the shapes to draw in XML, the author executes drawing commands
from a script. Canvas doesn't allow for static rendering, and drawn elements are not identifiable in a DOM-like way.

Printing
Though the SVG Specification primarily focuses on vector graphics markup language, its design includes the basic
capabilities of a page description language (PDL), like Adobe's PDF. It contains provisions for rich graphics, and is
also compatible with CSS for styling purposes. It is unlike XHTML and XSL-FO, whose primary purpose is
communication of content, not presentation, and so which specify objects to be displayed but not where to place such
objects. Conversely SVG is an ideal PDL for print-oriented uses, as it contains all the functionality required to place
each glyph and image in a chosen location on the final page.[7] A much more print-specialized subset of SVG (SVG
Print, authored by Canon, HP, Adobe and Corel) is currently a W3C Working Draft.[8]
SVG 44

Scripting and animation


SVG drawings can be dynamic and interactive. Time-based modifications to the elements can be described in SMIL,
or can be programmed in a scripting language (e.g., ECMAScript or JavaScript). The W3C explicitly recommends
SMIL as the standard for animation in SVG.[9] A rich set of event handlers such as onmouseover and onclick can be
assigned to any SVG graphical object.

Compression
SVG images, being XML, contain many repeated fragments of text and are thus particularly suited to compression
by gzip, though other compression methods may be used effectively. Once an SVG image has been compressed by
gzip it may be referred to as an "SVGZ" image, with the corresponding filename extension. The resulting file may be
as small as 20% of the original size.[10]

Development history
SVG was developed by the W3C SVG Working Group starting in 1998, after Macromedia and Microsoft introduced
VML whereas Adobe Systems and Sun Microsystems submitted a competing format known as PGML. The working
group was chaired by Chris Lilley of the W3C.
• SVG 1.0 became a W3C Recommendation on 4 September 2001.[11]
• SVG 1.1 became a W3C Recommendation on 14 January 2003.[12] The SVG 1.1 specification is modularized in
order to allow subsets to be defined as profiles. Apart from this, there is very little difference between SVG 1.1
and SVG 1.0.
• SVG Tiny and SVG Basic (the Mobile SVG Profiles) became W3C Recommendations on 14 January 2003.
These are described as profiles of SVG 1.1.[13]
• SVG Tiny 1.2 became a W3C Recommendation on 22 December 2008.[14]
• SVG Full 1.2 is a W3C Working Draft. SVG Tiny 1.2 was initially released as a profile, and later refactored to be
a complete specification, including all needed parts of SVG 1.1 and SVG 1.2. SVG 1.2 Full adds modules onto
the SVGT 1.2 core.
• SVG Print adds syntax for multi-page documents and mandatory color management support.
The MPEG-4 Part 20 standard - Lightweight Application Scene Representation (LASeR) and Simple Aggregation
Format (SAF) is based on SVG Tiny.[15] It was developed by MPEG (ISO/IEC JTC1/SC29/WG11) and published as
ISO/IEC 14496-20:2006.[16] SVG capabilities are enhanced in MPEG-4 Part 20 with key features for mobile
services, such as dynamic updates, binary encoding, state-of-art font representation.[17] SVG was also
accommodated in MPEG-4 Part 11, in the Extensible MPEG-4 Textual (XMT) format - a textual representation of
the MPEG-4 multimedia content using XML.[18]

Mobile profiles
Because of industry demand, two mobile profiles were introduced with SVG 1.1: SVG Tiny (SVGT) and SVG Basic
(SVGB). These are subsets of the full SVG standard, mainly intended for user agents with limited capabilities. In
particular, SVG Tiny was defined for highly restricted mobile devices such as cellphones, and SVG Basic was
defined for higher-level mobile devices, such as PDAs.
In 2003, the 3GPP adopted SVG Tiny as the mandatory vector graphics media format for next-generation phones.
SVGT is the required vector graphics format and support of SVGB is optional for Multimedia Messaging Service
(MMS) and Packet Switch Stream (PSS).[19] [20] [21] It was later added as required format for vector graphics in
3GPP IP Multimedia Subsystem (IMS).[22] Neither mobile profile includes support for the full DOM, while only
SVG Basic has optional support for scripting, but because they are fully compatible subsets of the full standard most
SVG graphics can still be rendered by devices which only support the mobile profiles.[23]
SVG 45

SVGT 1.2 adds a microDOM (μDOM), allowing all mobile needs to be met with a single profile.

Functionality
The SVG 1.1 specification defines 14 important functional areas or feature sets:[12]
Paths
Simple or compound shape outlines drawn with curved or straight lines can be filled in or outlined (or used as
a clipping path) and are expressed in a highly compact coding in which, for example, M (from 'move to')
precedes the initial numeric X and Y coordinates and L (line to) will precede a subsequent point to which a
line should be drawn. Further command letters (C, S, Q, T and A) precede data that is used to draw various
Bézier and elliptical curves. Z is used to close a path. In all cases, absolute coordinates follow capital letter
commands and relative coordinates are used after the equivalent lower-case letters.[24]
Basic Shapes
Straight-line paths or paths made up of a series of connected straight-line segments (polylines), as well as
closed polygons, circles and ellipses can be drawn. Rectangles and round-cornered "rectangles" are other
standard elements.[25]
Text
Unicode character text included in an SVG file is expressed as XML character data. Many visual effects are
possible, and the SVG specification automatically handles bidirectional text (as when composing a
combination of English and Arabic text, for example), vertical text (as Chinese was historically written) and
characters along a curved path (such as the text around the edges of the Great Seal of the United States).[26]
Painting
SVG shapes can be filled and/or outlined (painted with a color, a gradient or a pattern). Fills can be opaque or
have various degrees of transparency. "Markers" are end-of-line features, such as arrowheads, or symbols
which can appear at the vertices of a polygon.[27]
Color
Colors can be applied to all visible SVG elements, either directly or via the 'fill', 'stroke' and other properties.
Colors are specified in the same way as in CSS2, i.e. using names like black or blue, in hexadecimal such as
#2f0 or #22ff00, in decimal like rgb(255,255,127) or as percentages of the form rgb(100%,100%,50%).[28]
Gradients and Patterns
SVG shapes can be filled or outlined with solid colors as above, or with color gradients or with repeating
patterns. Color gradients can be linear or radial (circular), and can involve any number of colors as well as
repeats. Opacity gradients can also be specified. Patterns are based on predefined raster or vector graphic
objects, which can be repeated in x and/or y directions. Gradients and patterns can be animated and
scripted.[29]
Since 2008, there has been discussion[30] [31] among professional users of SVG that either gradient meshes or
preferably diffusion curves could usefully be added to the SVG specification. It is said that a "simple
representation [using diffusion curves] is capable of representing even very subtle shading effects"[32] and that
"Diffusion curve images are comparable both in quality and coding efficiency with gradient meshes, but are
simpler to create (according to several artists who have used both tools), and can be captured from bitmaps
fully automatically."[33]
Clipping, Masking and Compositing
Graphic elements, including text, paths, basic shapes and combinations of these, can be used as outlines to
define both 'inside' and 'outside' regions that can be painted (with colors, gradients and patterns)
independently. Fully opaque clipping paths and semi-transparent masks are composited together to calculate
SVG 46

the color and opacity of every pixel of the final image, using simple alpha blending.[34]
Filter Effects[35]
Interactivity
SVG images can interact with users in many ways. In addition to hyperlinks as mentioned below, any part of
an SVG image can be made to trigger events representing changes in focus, mouse clicks, scrolling or
zooming the image and other pointer, keyboard and document events. Event handlers may start, stop or alter
animations and trigger any other scripts in response to these events.[36]
Linking[37]
Scripting
All aspects of an SVG document can be accessed and manipulated using scripts in a similar way to HTML.
The default scripting language is ECMAScript (closely related to JavaScript) and there are defined Document
Object Model (DOM) objects for every SVG element and attribute. Scripts are enclosed in <script> elements.
They can run in response to pointer events, keyboard events and document events as required.[38]
Animation
SVG content can be animated using the built-in animation elements such as <animate>, <animateMotion> and
<animateColor>. Animation is also possible by manipulating the DOM using ECMAScript, using the scripting
language's built-in timers. SVG animation has been designed to be compatible with current and future versions
of Synchronized Multimedia Integration Language (SMIL). Animations can be continuous, they can loop and
repeat and they can respond to user events, as mentioned above.[39]
Fonts
As with HTML and CSS, text in SVG may reference external font files, such as system fonts. If the required
font files do not exist on the machine where the SVG file is rendered, the text may not appear as intended. To
overcome this limitation, text can be displayed in an 'SVG font', where the required glyphs are defined in SVG
as a font that is then referenced from the <text> element.[40]
Metadata
In accord with the W3C's Semantic Web initiative, SVG allows authors to provide metadata about SVG
images. The main facility is the <metadata> element, where the document can be described using Dublin Core
metadata properties (e.g., title, creator/author, subject, description, etc). Other metadata schemas may also be
used. In addition, SVG defines <title> and <desc> elements where authors can provide further plain-text
descriptive material within an SVG image to help indexing, searching and retrieval by a number of means.[41]
SVG 47

Support for SVG in web browsers


The use of SVG on the web is still limited
by the lack of support in Internet Explorer
which (as of May 2010) is the most
widely-used browser. The most widely
deployed version of IE (version 8) does not
support SVGs [42] [43] however, Microsoft
has announced that IE9 will support
SVG.[44] Many web sites that serve SVG
images, for example Wikipedia, also
provide the images in a raster format, either
automatically by HTTP content negotiation
or by allowing the user directly to choose
the file.

Native support
As of 2009, all major desktop browsers, and
many minor browsers, have some level of
SVG support, except for Internet Explorer.
The usage share of web browsers.
Other browsers' implementations are not yet
Source: Median values from summary table.      Internet Explorer (51.15%;
complete; see Comparison of layout engines Usage by version number)      Mozilla Firefox (31.03%; Usage by version
for further details. As of 2010, only Opera, number)      Google Chrome (8.30%)      Safari (4.90%)      Opera (2.01%)
Safari and Google Chrome supported
embedding via the <img> HTML element. Mozilla Firefox and some other browsers that can display SVG graphics
currently need them embedded in <object> or <iframe> elements to display them integrated as parts of an HTML
webpage.[45] However, SVG images may be included in XHTML pages using XML namespaces.[46]

Tim Berners-Lee, the inventor of the Web, has been critical of Internet Explorer for its failure to support SVG.[47]
All currently supported graphical browsers on Linux systems and the Macintosh have implemented some level of
SVG support.
• Opera (since 8.0) has support for the SVG 1.1 Tiny specification while Opera 9 includes SVG 1.1 Basic support
and some of SVG 1.1 Full. Since Opera 9.5 has partial SVG Tiny 1.2 support. It also supports SVGZ (compressed
SVG).
• Browsers based on the Gecko layout engine (such as Firefox, Flock, Camino and SeaMonkey) all have had
incomplete support for the SVG 1.1 Full specification since 2005. The Mozilla site has an overview of the
modules which are supported in Firefox[48] and of the modules which are in progress in the development.[49]
Gecko 1.9, included in Firefox 3.0, adds support for more of the SVG specification (including filters).[50]
• Browsers based on WebKit (such as Apple's Safari, Google Chrome, and The Omni Group's OmniWeb) have had
incomplete support for the SVG 1.1 Full specification since 2006.[51]
• Amaya has partial SVG support.
There are several advantages to native and full support: plugins are not needed, SVG can be freely mixed with other
content in a single document, and rendering and scripting become considerably more reliable.
SVG 48

SVG and Microsoft Internet Explorer


As of April 2010, Internet Explorer, up to and including IE8, the latest release, is the only current major browser not
to provide native SVG support, although native support is expected in Internet Explorer 9.[52] Current IE versions
requires a plug-in to render SVG content. There are a number of plug-ins available to assist including:
• Google Chrome Frame from Google can support all web elements supported by WebKit, including SVG 1.0 and
partially SVG 1.1.
• Renesis Player for Internet Explorer from examotion GmbH, supports SVG 1.1 on IE 6 and 7 and is available for
download free of charge.[53]
• Ssrc SVG Plugin from Savarese Software Research Corporation is a plug-in for rendering SVG in Internet
Explorer versions 6, 7, and 8 on Windows XP, Server 2003, Vista, Server 2008, and 7. In addition, the plug-in
enables Internet Explorer to load Mozilla XUL applications.[54]
• Batik, a widely deployed Java plugin[55]
• Bitflash, an SVG viewer intended for mobile devices, which can be installed as an IE plugin
• Ikivo, an SVG viewer intended for mobile devices, which can be installed as an IE plugin
• GPAC, targets SVGT 1.2[56]
• Adobe SVG Viewer from Adobe Systems plugin supports most of SVG 1.0/1.1. Zooming and panning of the
image are also supported to enable viewing of any area of the SVG lying outside the visible area of its containing
window, but scrolling is not supported. Adobe SVG Viewer is available for download from Adobe Systems free
of charge.[57] However, on 1 January 2009, Adobe Systems discontinued support for Adobe SVG Viewer.[58]
• Corel SVG Viewer[59] (discontinued)
Ample SDK Open-Source JavaScript GUI Framework provides partial support for SVG 1.1, SMIL, DOM and style
scripting in Internet Explorer (5.5 - 8.0) too. It is not dependent on any plugins and relies on presence of alternative
Vector Graphics format VML in Internet Explorer.
SVG Web[60] is a JavaScript library for Web developers, targeted at Internet Explorer and dependent on the presence
of an installed Adobe Flash plugin on the client machine. SVG Web provides partial support for SVG 1.1, SVG
Animation (SMIL), Fonts, Video and Audio, DOM and style scripting.[61]
On January 5, 2010, a senior manager of the Internet Explorer team at Microsoft announced on his official blog that
Microsoft had just requested to join the SVG Working Group of the W3C in order to "take part in ensuring future
versions of the SVG spec will meet the needs of developers and end users," although no plans for SVG support in
Internet Explorer were mentioned at that time.[62] During Microsoft's MIX 2010 developer conference, it was
announced that IE9 would support SVG 1.1.[63]

Software and support in applications


Images can be rasterised using a library such as ImageMagick, which provides a quick but incomplete
implementation of SVG, or Batik, which implements nearly all of SVG 1.1 and much of SVG Tiny 1.2 but requires
the Java Runtime Environment.
• 3dpaintbrush can export 3D scenes/objects to SVG files.
• ABViewer (http://www.cadsofttools.com/en/products/abviewer.html) - viewing, editing and conversion.
• The Batik SVG Toolkit can be used by Java programs to render, generate, and manipulate SVG graphics.
• Adobe Acrobat (since version 5.1) supports SVG 1.0 only in so called "alternate presentations" in PDF format.[64]
• Adobe Illustrator supports both the import and export of SVG images. When writing SVG files it has the option to
embed a copy of the associated proprietary Illustrator format for later editing. This often results in changes being
lost if another editor is used when the file is reopened in Illustrator because it ignores everything but the
embedded Illustrator file.
SVG 49

• Altsoft Xml2PDF allows converting SVG files to PDF, PS, various GDI+ formats.
• Blender will import SVG graphics as paths.
• Cairo is a vector graphics based library which can generate SVG. It has bindings for many programming
languages including Haskell, Java, Perl, Python, Scheme, Smalltalk and several others.
• CorelDRAW has an SVG export and import filter.
• Ecava IntegraXor [65] created SAGE [66] (SCADA Animation Graphic Editor) which allows SVG graphic to be
used in SCADA application.
• The GIMP allows SVG images to be imported as paths or rendered bitmaps.
• The GNOME project has had integrated SVG support throughout the desktop since 2000.
• GNU LilyPond can export musical scores to SVG.
• Google Docs can export a drawing into SVG files.
• Go-oo Draw (OpenOffice.org variant) can open and export SVG files.[67]
• Inkscape is a free software vector graphics program for Linux, Microsoft Windows and Mac OS X that uses SVG
as its native image format. Inkscape also contains tools to convert pixel-based graphics to SVG. Inkscape can
open PDF files and thus can transform content in PDF to SVG.
• ItsNat is a Java based web framework with built-in support of native SVG, Adobe SVG Viewer, Renesis,
Savarese Ssrc, Batik applet and SVGWeb plugins.
• Joffice is a Java based Office suite with built-in support of SVG.
• Mappetizer is a commercial converter for spatial data to SVG.
• Microsoft Visio can save files in the SVG format as well as the SVG compressed format.
• OpenOffice.org Draw can export SVG drawings. Import extensions are available to import SVG images into
OpenOffice.org Draw.[68]
• Opera SVG Viewer is an Opera widget image browser that allows to preview and scale all SVG files from a
directory.[69]
• OxygenOffice Draw (OpenOffice.org variant) can open and export SVG files.[70]
• PDFTron's PDF2SVG is a commercial PDF to SVG conversion software. Available as a Command-line
application and as an SDK on multiple platforms, including Windows, Mac OS X and Linux.[71]
• The Processing programming language has native support for the SVG format.
• Examotion's RENESIS Player is a free SVG browser for windows. Its Windows Thumbnail Plugin allows the
generation of thumbnail previews in any Windows Explorer window.
• Scribus can import SVG files and export separate pages in SVG.
• ShareCAD (http://www.sharecad.org/) - free on-line SVG viewer.
• sK1 is a free software vector graphics program for Linux, supports both the import and export of SVG images.
• Kiyut's Sketsa is a mature commercial SVG editor.
• SVG-edit is a lightweight, web-based, Javascript-driven SVG editor that works in any modern browser.
• SVG Kit for Adobe Creative Suite is a plug-in, which adds full-functional support of SVG images to Adobe
InDesign and Adobe Photoshop.
• SVG Pony is a commercial converter from SVG to SVG Tiny.[72]
• Universal Converter is a virtual printer that allows conversion of files to SVG format and also converts SVG files
to other file formats.
• ViewerSvg is a SVG to XAML converter. The exported XAML can be used in WPF or Silverlight
applications.[73]
• Virtual Mechanics SiteSpinner applications export to SVG.
• Xara Xtreme has an SVG export and import filter in both its free/open-source and pay versions.
• xfig and gnuplot allow export of SVG drawings.
• ACD Canvas supports importing and exporting SVG.
SVG 50

Mobile support
The most popular implementations for mobile phones are by Ikivo and Bitflash, while for PDAs, Bitflash and Intesis
have implementations. Adobe Flash Lite has optionally supported SVG Tiny since version 1.1. At the SVG Open
2005 conference, Sun demonstrated a mobile implementation of SVG Tiny 1.1 for the Connected Limited Device
Configuration (CLDC) platform.
Mobile SVG players from Ikivo and BitFlash come pre-installed, i.e., the manufacturers burn the SVG player code
into their mobiles before shipping to the customers. Mobiles can also include full web browsers (such as Opera
Mobile and the iPhone's Safari) that include SVG support.
The level of SVG Tiny support available varies from mobile to mobile, depending on the SVG engine installed.
Many newer mobile products support additional features beyond SVG Tiny 1.1, like gradient and opacity; this
standard is often referred as SVGT 1.1+. The iPhone, for example, supports declarative animation but not
interactivity.
Nokia's S60 platform has built-in support for SVG. For example, icons are generally rendered using the platform's
SVG engine. Nokia has also led the JSR 226: Scalable 2D Vector Graphics API expert group which defines Java ME
API for SVG presentation and manipulation. This API has been implemented in S60 Platform 3rd Edition Feature
Pack 1 onward.[74] Some Series 40 phones also support SVG (such as Nokia 6280).
Most Sony Ericsson phones beginning with K700 (by release date) support SVG Tiny 1.1. Phones beginning with
K750 also support such features as opacity and gradients. Phones with Sony Ericsson Java Platform-8 have support
for JSR 226.
SVG is also supported on various mobile devices from Motorola, Samsung, LG, and Siemens.

Hardware rendering
Implementations of SVG that uses the OpenVG API will be hardware accelerated on devices which have hardware
acceleration of OpenVG. Examples include Unix-like operating systems with Gallium3D based graphics drivers and
several GPUs intended for handheld devices (see OpenVG).

See also
• Canvas element • List of vector graphics markup languages
• Commons:Transition_to_SVG • Raster to vector
• Comparison of layout engines (SVG) • SVG animation
• Computer Graphics Metafile • SVG's XML Binding Language
• Geographic information system • Vector Markup Language
• List of vector graphics editors

External links
• W3C SVG page [3] specifications, list of implementations
• Army Civilian Employment [75] one of the first US Government sites to have an interface drawn with 100% SVG
• SVG [76] at the Open Directory Project
• A chart scoring desktop browser and browser plugin on their support of the SVG 1.1 specification via running
each implementation through the official W3C test suite. [77]
• Compatibility tables for features in HTML5, CSS3, SVG and other upcoming web technologies [31]
SVG 51

References
[1] "M Media Type registration for image/svg+xml" (http:/ / www. w3. org/ TR/ SVGMobile12/ mimereg. html). World Wide Web Consortium.
. Retrieved 2009-10-19.
[2] "XML Media Types, RFC 3023" (http:/ / tools. ietf. org/ html/ rfc3023#page-24). IETF. 2001-01. p. 24. . Retrieved 2009-10-24.
[3] http:/ / www. w3. org/ Graphics/ SVG/
[4] Svensson, Peter (2008-09-10). "Creator of Web spots a flaw in Internet Explorer" (http:/ / www. msnbc. msn. com/ id/ 26646919/ ).
msnbc.msn.com. Microsoft. . Retrieved 2008-11-16.
[5] Hachamovitch, Dean (March 16, 2010). "HTML5, Hardware Accelerated: First IE9 Platform Preview Available for Developers" (http:/ /
blogs. msdn. com/ ie/ archive/ 2010/ 03/ 16/ html5-hardware-accelerated-first-ie9-platform-preview-available-for-developers. aspx). Microsoft
Developer Network. Microsoft. . Retrieved 17 March 2010.
[6] "SVG(W3C) § 4.2-Drawing Order" (http:/ / www. w3. org/ TR/ 2002/ WD-SVG12-20021115/ #drawingorder). World Wide Web
Consortium. 15 November 2002. . Retrieved 2009-10-19.
[7] Alex, Danilo; Jun Fujisawa (2002). "SVG as a Page Description LanguageSVG as a Page Description Language" (http:/ / www. svgopen. org/
2002/ papers/ danilo_fujisawa__svg_as_page_description_language/ index. html). SVG Open. . Retrieved 24 February 2010.
[8] Alex, Danilo; Craig Northway, Andrew Shellshear, Anthony Grasso, Chris Lilley (21 December 2007). "SVG Print 1.2, Part 2: Language"
(http:/ / www. w3. org/ TR/ SVGPrint/ ). World Wide Web Consortium. . Retrieved 24 February 2010.
[9] Paul, Festa (January 9, 2003). "W3C releases scripting standard, caveat" (http:/ / news. cnet. com/ 2100-1023-979976. html). CNet. .
Retrieved 24 February 2010.
[10] "Saving compressed SVG (SVGZ)" (http:/ / www. adobe. com/ svg/ illustrator/ compressedsvg. html). SVG Zone. Adobe. 2009-07-14. .
Retrieved 2010-02-24.
[11] Ferraiolo, Jon; John Bowler, Craig Brown, Milt Capsimalis, Richard Cohn, Lee Cole, Thomas E Deweese, David Dodds, Andrew Donoho,
David Duce, Jerry Evans, Jon Ferraiolo, Jun Fujisawa, Scott Furman, Brent Getlin, Peter Graffagnino, Rick Graham, Vincent Hardy, Lofton
Henderson, Jan Christian Herlitz, Alan Hester, Bob Hopgood, Dean Jackson, Christophe Jolif, elvin Lawrence, Håkon Lie, Chris Lilley, Philip
Mansfield, Kevin McCluskey, Tuan Nguyen, Troy Sandal, Peter Santangeli, Haroon Sheikh, Gavriel State, Robert Stevahn, Timothy
Thompson, Rick Yardumian, Shenxue Zhou (4 September 2001). "Scalable Vector Graphics (SVG) 1.0 SpecificationScalable Vector Graphics
(SVG) 1.0 Specification" (http:/ / www. w3. org/ TR/ SVG10/ ). World Wide Web Consortium. . Retrieved 24 February 2010.
[12] Ferraiolo, Jon; Ola Andersson, Phil Armstrong, Henric Axelsson, Robin Berjon, Benoît Bézaire, John Bowler, Craig Brown, Mike
Bultrowicz, Tolga Capin, Milt Capsimalis, Mathias Larsson Carlander, Jakob Cederquist, Charilaos Christopoulos, Richard Cohn, Lee Cole,
Don Cone, Alex Danilo, Thomas DeWeese, David Dodds, Andrew Donoho, David Duce, Jerry Evans, Darryl Fuller, 藤沢 淳 (FUJISAWA
Jun), Scott Furman, Brent Getlin, Peter Graffagnino, Rick Graham, Vincent Hardy, 端山 貴也 (HAYAMA Takanari), Lofton Henderson, Jan
Christian Herlitz, Alan Hester, Bob Hopgood, 石川 雅康 (ISHIKAWA Masayasu), Dean Jackson, Christophe Jolif, Lee Klosterman, 小林
亜令 (KOBAYASHI Arei), Thierry Kormann, Yuri Khramov, Kelvin Lawrence, Håkon Lie, Chris Lilley, Philip Mansfield, Kevin
McCluskey, 水口 充 (MINAKUCHI Mitsuru), Luc Minnebo, Tuan Nguyen, 小野 修一郎 (ONO Shuichiro), Antoine Quint, 相良 毅
(SAGARA Takeshi), Troy Sandal, Peter Santangeli, Haroon Sheikh, Brad Sipes, Peter Sorotokin, Gavriel State, Robert Stevahn, Timothy
Thompson, 上田 宏高 (UEDA Hirotaka), Rick Yardumian, Charles Ying, Shenxue Zhou (14 January 2003, edited in place 30 April 2009).
"Scalable Vector Graphics (SVG) 1.1 Specification" (http:/ / www. w3. org/ TR/ SVG11/ ). World Wide Web Consortium. . Retrieved 24
February 2010.
[13] Capin, Tolga; Ola Andersson, Henric Axelsson, Phil Armstrong, Robin Berjon, Benoît Bézaire, Craig Brown, Mike Bultrowicz,
Mathias Larsson, Jakob Cederquist, Charilaos Christopoulos, Lee Cole, Don Cone, Alex Danilo, Thomas DeWeese, Jon Ferraiolo, Darryl
Fuller, 藤沢 淳 (FUJISAWA Jun), Rick Graham, Vincent Hardy, 端山 貴也 (HAYAMA Takanari), Lofton Henderson, 石川雅康
(ISHIKAWA Masayasu), Dean Jackson, Christophe Jolif, Lee Klosterman, 小林 亜令 (KOBAYASHI Arei), Thierry Kormann, Yuri
Khramov, Chris Lilley, Philip Mansfield, 水口 充 (MINAKUCHI Mitsuru), Luc Minnebo, 小野 修一郎 (ONO Shuichiro), Antoine Quint,
相良 毅 (SAGARA Takeshi), Brad Sipes, Peter Sorotokin, 上田 宏高 (UEDA Hirotaka), Rick Yardumian, Charles Ying (14 January 2003,
edited in place 15 June 2009). "Mobile SVG Profiles: SVG Tiny and SVG Basic" (http:/ / www. w3. org/ TR/ 2003/
REC-SVGMobile-20030114/ ). World Wide Web Consortium. . Retrieved 2010-02-24.
[14] Andersson, Ola; Phil Armstrong, Henric Axelsson, Selim Balcısoy, Robin Berjon, Benoît Bézaire, John Bowler, Gordon Bowman, Craig
Brown, Mike Bultrowicz, Tolga Çapin, Milt Capsimalis, Mathias Larsson Carlander, Jakob Cederquist, Suresh Chitturi, Charilaos
Christopoulos, Richard Cohn, Lee Cole, Cyril Concolato, Don Cone, Erik Dahlström, Alex Danilo, Thomas DeWeese, David Dodds, Andrew
Donoho, David Duce, Jean-Claude Dufourd, Andrew Emmons, Jerry Evans, Jon Ferraiolo, 藤沢 淳 (FUJISAWA Jun), Darryl Fuller, Scott
Furman, Brent Getlin, Diego Gibellino, Christophe Gillette, Peter Graffagnino, Rick Graham, Anthony Grasso, Niklas Hagelroth, Vincent
Hardy, 端山 貴也 (HAYAMA Takanari), Scott Hayman, Stephane Heintz, Lofton Henderson, Jan Christian Herlitz, Ivan Herman, Alan
Hester, Olaf Hoffmann, Bob Hopgood, Bin Hu, Michael Ingrassia, 石川 雅康 (ISHIKAWA Masayasu), Dean Jackson, Christophe Jolif, Lee
Klosterman, 小林 亜令 (KOBAYASHI Arei), Thierry Kormann, Yuri Khramov, Kelvin Lawrence, Håkon Lie, Chris Lilley, Vincent Mahe,
Philip Mansfield, Lee Martineau, Charles McCathieNevile, Kevin McCluskey, Cameron McCormack, 水口 充 (MINAKUCHI Mitsuru), Luc
Minnebo, Jean-Claude Moissinac, Tuan Nguyen, Craig Northway, 小野 修一郎 (ONO Shuichiro), Lars Piepel, Antoine Quint, णन्दिनि ऱमनि
(Nandini Ramani), Bruno David Simões Rodrigues, 相良 毅 (SAGARA Takeshi), Troy Sandal, Peter Santangeli, Doug Schepers, Sebastian
Schnitzenbaumer, Haroon Sheikh, Andrew Shellshear, Brad Sipes, Andrew Sledd, Пётр Соротокин (Peter Sorotokin), Gavriel State, Robert
Stevahn, Timothy Thompson, 上田 宏高 (UEDA Hirotaka), Rick Yardumian, Charles Ying, Shenxue Zhou, Atanas Zlatinski (22 December
SVG 52

2008). "Scalable Vector Graphics (SVG) Tiny 1.2 Specification" (http:/ / www. w3. org/ TR/ SVGTiny12/ ). World Wide Web Consortium. .
Retrieved 2010-02-24.
[15] "MPEG-4 LASeR white paper" (http:/ / mpeg. chiariglione. org/ technologies/ mpeg-4/ mp04-lsr/ index. htm). 2005-07. . Retrieved
2010-04-11.
[16] ISO. "ISO/IEC 14496-20:2008 - Information technology -- Coding of audio-visual objects -- Part 20: Lightweight Application Scene
Representation (LASeR) and Simple Aggregation Format (SAF)" (http:/ / www. iso. org/ iso/ iso_catalogue/ catalogue_ics/
catalogue_detail_ics. htm?csnumber=52454). ISO. . Retrieved 2009-10-30.
[17] "LASeR - the MPEG standard for Rich Media Services" (http:/ / www. mpeg-laser. org/ documents/ LASeRWhitePaper. pdf) (PDF). .
Retrieved 2010-04-11
[18] Leonardo Chiariglione (2005-03-08). "Riding the media bits - Bits and bytes" (http:/ / ride. chiariglione. org/ bits_and_bytes/
bits_and_bytes. htm). . Retrieved 2009-10-30.
[19] "SVG in 3GPP Multimedia Messaging and Streaming Services (version March 2003)" (http:/ / www. svgopen. org/ 2003/ paperAbstracts/
svgmms. htm). SVG Open. 2003. . Retrieved 2009-10-19.
[20] "3GPP Multimedia Messaging Service (MMS); Media formats and codecs (Release 5); 3GPP TS 26.140 V5.2.0 (2002-12); Technical
Specification (ftp:/ / ftp. 3gpp. org/ specs/ 2003-03/ Rel-5/ 26_series/ 26140-520. zip)"] (zipped doc). 3GPP. 02.01.2003. . Retrieved 25
February 2010.
[21] "3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; Multimedia Messaging Service (MMS);
Media formats and codecs (Release 5)" (ftp:/ / ftp. 3gpp. org/ specs/ 2003-03/ Rel-5/ 26_series/ 26234-540. zip) (zipped doc). 3GPP TS 26.140
V5.2.0 (2002-12). 3GPP. March 2003. . Retrieved 24 February 2010.
[22] "3GPP Specification detail - 3GPP TS 26.141: IP Multimedia System (IMS) Messaging and Presence; Media formats and codecs" (http:/ /
www. 3gpp. org/ ftp/ Specs/ html-info/ 26141. htm). 3GPP. 2009-12-10. . Retrieved 24 February 2010.
[23] "Listing of phones that support SVG" (http:/ / web. archive. org/ web/ 20080728034026/ http:/ / svg. org/ special/ svg_phones). Svg.org.
Archived from the original (http:/ / svg. org/ special/ svg_phones) on Jul 28, 2008. . Retrieved 2010-02-24.
[24] "SVG specification, "Paths"" (http:/ / www. w3. org/ TR/ SVG11/ paths. html). World Wide Web Consortium. 2003-01-14. . Retrieved
2009-10-19.
[25] "SVG specification, "Basic Shapes"" (http:/ / www. w3. org/ TR/ SVG11/ shapes. html). World Wide Web Consortium. 2003-01-14. .
Retrieved 2009-10-19.
[26] "SVG specification, "Text"" (http:/ / www. w3. org/ TR/ SVG11/ text. html). World Wide Web Consortium. 2003-01-14. . Retrieved
2009-10-19.
[27] "SVG specification, "Painting: Filling, Stroking and Marker Symbols"" (http:/ / www. w3. org/ TR/ SVG11/ painting. html). World Wide
Web Consortium. 2003-01-14. . Retrieved 2009-10-19.
[28] "SVG specification, "Color"" (http:/ / www. w3. org/ TR/ SVG11/ color. html). World Wide Web Consortium. 2003-01-14. . Retrieved
2009-10-19.
[29] "SVG specification, "Gradients and Patterns"" (http:/ / www. w3. org/ TR/ SVG11/ pservers. html). World Wide Web Consortium.
2003-01-14. . Retrieved 2009-10-19.
[30] "IRC log of svg on 2008-11-17" (http:/ / www. w3. org/ 2008/ 11/ 17-svg-irc). W3C. 2008. . Retrieved 2009-05-25. "DS: Priorities should
be layout, diffusion curves, 2.5D and make sure we work well with CSS on that"
[31] "Propositions for the next SVG spec" (http:/ / lists. w3. org/ Archives/ Public/ www-svg/ 2009Mar/ 0084. html). W3C. 16 Mar 2009. .
Retrieved 2009-05-25. "Indeed, we do plan to add new gradient capabilities to SVG in the next version, and we are looking into diffusion
curves, which I think will meet your needs ... *Diffusion curves* seems really a great idea."
[32] Rusin, Zack (2008). "SVG in KDE: Freedom of Beauty" (http:/ / www. svgopen. org/ 2008/ papers/ 104-SVG_in_KDE/ ). SVG Open. .
Retrieved 2009-05-25.
[33] Orzan, Alexandrina; Adrien Bousseau, Holger Winnemöller, Pascal Barla, Joëlle Thollot, David Salesin (2008). "Diffusion Curves: A
Vector Representation for Smooth-Shaded Images" (http:/ / artis. imag. fr/ Publications/ 2008/ OBWBTS08/ diffusion_curves. pdf) (PDF).
ACM Transactions on Graphics (Proceedings of SIGGRAPH 2008) 27. . Retrieved 2009-05-25.
[34] "SVG specification, "Clipping, Masking and Compositing"" (http:/ / www. w3. org/ TR/ SVG11/ masking. html). World Wide Web
Consortium. 2003-01-14. . Retrieved 2009-10-19.
[35] "SVG specification, "Filter Effects"" (http:/ / www. w3. org/ TR/ SVG11/ filters. html). World Wide Web Consortium. 2003-01-14. .
Retrieved 2009-10-19.
[36] "SVG specification, "Interactivity"" (http:/ / www. w3. org/ TR/ SVG11/ interact. html). World Wide Web Consortium. 2003-01-14. .
Retrieved 2009-10-19.
[37] "SVG specification, "Linking"" (http:/ / www. w3. org/ TR/ SVG11/ linking. html). World Wide Web Consortium. 2003-01-14. . Retrieved
2009-10-19.
[38] "SVG specification, "Scripting"" (http:/ / www. w3. org/ TR/ SVG11/ script. html). World Wide Web Consortium. 2003-01-14. . Retrieved
2009-10-19.
[39] "SVG specification, "Animation"" (http:/ / www. w3. org/ TR/ SVG11/ animate. html). World Wide Web Consortium. 2003-01-14. .
Retrieved 2009-10-19.
[40] "SVG specification, "Fonts"" (http:/ / www. w3. org/ TR/ SVG11/ fonts. html). World Wide Web Consortium. 2003-01-14. . Retrieved
2009-10-19.
SVG 53

[41] "SVG specification, "Metadata"" (http:/ / www. w3. org/ TR/ SVG11/ metadata. html). World Wide Web Consortium. . Retrieved
2009-10-19.
[42] "Windows Internet Explorer 8 Expert Zone Chat (19 June 2008)" (http:/ / www. microsoft. com/ windowsxp/ expertzone/ chats/ transcripts/
08_0619_ez_ie8. mspx). Microsoft. June 19, 2008. . Retrieved 2010-02-24.
[43] Schiller, Jeff (2010-02-13). "SVG Support" (http:/ / www. codedread. com/ svg-support. php). . Retrieved 2010-02-25.
[44] "SVG in IE9 Roadmap" (http:/ / blogs. msdn. com/ ie/ archive/ 2010/ 03/ 18/ svg-in-ie9-roadmap. aspx). IEBlog. Microsoft. March 18, 2010.
. Retrieved March 23, 2010.
[45] Lusotec (25 Feb 2009). "SVG image not shown by Firefox" (http:/ / groups. google. com/ group/ mozilla. dev. tech. svg/ browse_thread/
thread/ 75f14ac7244b0fa5/ a6ccf7261c5110b7?lnk=raot). mozilla.dev.tech.svg. Google Groups. . Retrieved 2010-02-25.
[46] Brettz9 (25 Aug 2008). "SVG In HTML Introduction" (https:/ / developer. mozilla. org/ en/ SVG_In_HTML_Introduction). Mozilla
Developer Center. Mozilla. . Retrieved 2010-02-25.
[47] Svensson, Peter (2008-09-10). "Creator of Web spots a flaw in Internet Explorer" (http:/ / www. msnbc. msn. com/ id/ 26646919).
Associated Press. MSNBC. . Retrieved 2010-02-25.
[48] "SVG in Firefox" (https:/ / developer. mozilla. org/ en/ docs/ SVG_in_Firefox). Mozilla Developer Center. Mozilla. 23 Oct 2009. .
Retrieved 2010-02-25.
[49] "Mozilla SVG Status" (http:/ / www. mozilla. org/ projects/ svg/ status. html). Mozilla. . Retrieved 2010-02-25.
[50] Mgjbot (2008-01-15). "SVG improvements in Firefox 3" (https:/ / developer. mozilla. org/ en/ docs/ SVG_improvements_in_Firefox_3).
Mozilla Developer Center. Mozilla. . Retrieved 2010-02-25.
[51] "WebKit SVG Status" (http:/ / webkit. org/ projects/ svg/ status. xml). WebKit. Jan 5th, 2010. . Retrieved 2010-02-25.
[52] "Microsoft Promises To Continue Improving SVG Support in IE 9" (http:/ / techie-buzz. com/ browsers/ microsoft-support-ie-9. html).
techie-buzz.com. . Retrieved 2010-07-03.
[53] "Renesis Player – Fast, easy and smart" (http:/ / www. examotion. com/ index. php?id=product_player). examotion GmbH. . Retrieved
2009-05-30.
[54] "Ssrc SVG: SVG Plugin for Internet Explorer" (http:/ / www. savarese. com/ software/ svgplugin/ ). Savarese Software Research
Corporation. . Retrieved 2009-05-30.
[55] "Download Batik" (http:/ / xmlgraphics. apache. org/ batik/ download. cgi). Apache Software Foundation. January 9, 2008. . Retrieved
2010-02-25.
[56] "GPAC Project on Advanced Content" (http:/ / gpac. sourceforge. net). Sourceforge. December 2008. . Retrieved 2010-02-25.
[57] "Adobe SVG Viewer download area" (http:/ / www. adobe. com/ svg/ viewer/ install/ mainframed. html). Adobe Systems. . Retrieved
2009-10-19.
[58] "Adobe SVG Viewer End of Life announcement" (http:/ / www. adobe. com/ svg/ eol. html). Adobe Systems. . Retrieved 2010-02-25.
[59] "Corel SVG Viewer" (http:/ / www. corel. com/ servlet/ Satellite?pagename=Corel2/ Products/ Content& pid=1047023276653&
cid=1047023286996). Corel Corporation. . Retrieved 2010-02-25.
[60] "svgweb: Scalable Vector Graphics for Web Browsers using Flash" (http:/ / code. google. com/ p/ svgweb/ ). Google Code. . Retrieved
2009-09-25.
[61] Clarke, Gavin (3 June 2009). "Google to slip SVG into Internet Explorer" (http:/ / www. theregister. co. uk/ 2009/ 06/ 03/
google_svg_internet_explorer/ ). The Register. . Retrieved 25 February 2010.
[62] Dengler, Patrick (January 5, 2010). "Microsoft Joins W3C SVG Working Group" (http:/ / blogs. msdn. com/ ie/ archive/ 2010/ 01/ 05/
microsoft-joins-w3c-svg-working-group. aspx). MSDN. Microsoft. . Retrieved 25 February 2010.
[63] "Internet Explorer Platform Preview Guide for Developers" (http:/ / msdn. microsoft. com/ en-us/ ie/ ff468705. aspx). Microsoft Developer
Network. Microsoft. March 16, 2010. . Retrieved 17 March 2010.
[64] Adobe Systems Incorporated (2003). "PDF Reference fourth edition - Adobe® Portable Document Format Version 1.5" (http:/ / www.
adobe. com/ devnet/ pdf/ pdfs/ PDFReference15_v6. pdf) (PDF). . Retrieved 2010-02-23
[65] "Ecava IntegraXor" (http:/ / www. integraxor. com/ index. htm?sl=wk). Integraxor.com. . Retrieved 2009-10-19.
[66] "SAGE Documentation" (http:/ / www. ecava. com/ ug. html?sl=wk-sage). Ecava.com. 2009-04-20. . Retrieved 2009-10-19.
[67] "Discover Go-OO" (http:/ / go-oo. org/ discover/ ). Go-oo. . Retrieved 2009-10-19.
[68] "SVG Import Filter" (http:/ / wiki. services. openoffice. org/ wiki/ SVG_Import_Filter). OpenOffice.org. 19. August 2009. . Retrieved
2010-02-25.
[69] SpShut (Feb 3, 2010). "Opera SVG Viewer allows to preview and scale all SVG files from a directory using Opera browser rendering
engine" (http:/ / widgets. opera. com/ widget/ 15172/ ). Opera Software. . Retrieved 2010-03-06.
[70] "OxygenOffice Professional - free and multilingual office suite" (http:/ / ooop. wiki. sourceforge. net/ ). Sourceforge. . Retrieved
2010-02-25.
[71] PDFtron.com (http:/ / www. pdftron. com/ pdf2svg/ index. html)
[72] "SVG Pony converter" (http:/ / mpaja. com/ frontpage/ SVG_Pony). Mpaja. . Retrieved 2010-01-23.
[73] "ViewerSvg" (http:/ / www. wpf-graphics. com/ ViewerSvg. aspx). www.wpf-graphics.com. 2010-02-24. . Retrieved 2010-02-24.
[74] "S60 Product info" (http:/ / www. s60. com/ business/ productinfo/ applicationsandtechnologies/ java/ supportedfeaturesin3rdedition).
S60.com. . Retrieved 2009-10-19.
[75] https:/ / cpswass2. belvoir. army. mil/ employment/ employmentPage/ employmentPage. htm
[76] http:/ / www. dmoz. org/ Computers/ Data_Formats/ Graphics/ Vector/ SVG/
SVG 54

[77] http:/ / www. codedread. com/ svg-support. php

MathML
Developed by World Wide Web Consortium

Type of Markup language


format

Extended from XML

Standard(s) [1]
W3C MathML

Mathematical Markup Language (MathML) is an application of XML for describing mathematical notations and
capturing both its structure and content. It aims at integrating mathematical formulae into World Wide Web pages
and other documents. It is a recommendation of the W3C math working group.

History
MathML 1 was released as a W3C recommendation in April 1998 as the first XML language to be recommended by
the W3C. Version 1.01 of the format was released in July 1999 and version 2.0 appeared in February 2001. In
October 2003, the second edition of MathML Version 2.0 was published as the final release by the W3C math
working group. In June 2006 the W3C has rechartered the MathML Working Group to produce a MathML 3
Recommendation until February 2008 and in November 2008 extended the charter to April 2010. A sixth Working
Draft of the MathML 3 revision was published in June 2009.
MathML was originally designed before the finalization of XML namespaces. As such, MathML markup is often not
namespaced, and applications that deal with MathML, such as the Mozilla browsers, do not require a namespace. For
applications that wish to namespace MathML, the recommended namespace URI is http:/ / www. w3. org/ 1998/
Math/MathML.

Presentation and semantics


MathML deals not only with the presentation but also the meaning of formula components (the latter part of
MathML is known as “Content MathML”). Because the meaning of the equation is preserved separate from the
presentation, how the content is communicated can be left up to the user. For example, web pages with MathML
embedded in them can be viewed as normal web pages with many browsers but visually impaired users can also
have the same MathML read to them through the use of screen readers (e.g. using the MathPlayer plugin for Internet
Explorer, Opera 9.50 build 9656+ or the Fire Vox extension for Firefox).

Presentation MathML
Presentation MathML focuses on the display of an equation, and has about 30 elements, and 50 attributes. The
elements all begin with m and include token element: <mi>x</mi> - identifiers; <mo>+</mo> - operators;
<mn>2</mn> - number. Tokens are combined using layout elements that include: <mrow> - a row; <msup> -
superscripts; mfrac - fractions. The attributes mainly control fine details of the presentation. A large number of
entities are available that represent letters &pi;, symbols &RightArrow; and some non-visible character such as
&InvisibleTimes; representing multiplication.
For valid XML documents as per the W3C specifications, a MathML file must have a doctype declaration:
MathML 55

<?xml version="1.0" encoding="UTF-8"?>


<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
"http://www.w3.org/Math/DTD/mathml2/mathml2.dtd">

Thus, the expression could be represented in a valid MathML file as:

<?xml version="1.0" encoding="UTF-8"?>


<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"
"http://www.w3.org/Math/DTD/mathml2/mathml2.dtd">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mi>a</mi>
<mo>&#x2062;<!-- &InvisibleTimes; --></mo>
<msup>
<mi>x</mi>
<mn>2</mn>
</msup>
<mo>+</mo>
<mi>b</mi>
<mo>&#x2062;<!-- &InvisibleTimes; --></mo>
<mi>x</mi>
<mo>+</mo>
<mi>c</mi>
</mrow>
</math>

Content MathML
Content MathML focuses on the semantic meaning of the expression. Central to Content MathML is the <apply>
element that represents a function or operator, given in the first child, applied to the remaining child elements. For
example <apply><sin/><ci>x</ci></apply> represents and <apply><plus/><ci>x</ci><cn>5</cn></apply>
represents x+5. The <ci> element represents an identifier, <cn> a number, and there are over a hundred different
elements for different functions and operators. Content MathML uses only a few attributes.
The expression could be represented as

<math>
<apply>
<plus/>
<apply>
<times/>
<ci>a</ci>
<apply>
<power/>
<ci>x</ci>
<cn>2</cn>
</apply>
</apply>
<apply>
<times/>
MathML 56

<ci>b</ci>
<ci>x</ci>
</apply>
<ci>c</ci>
</apply>
</math>

Example and comparison to other formats


The well-known quadratic formula:

would be marked up using LaTeX syntax like this:

x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}

in troff/eqn like this:

x={-b +- sqrt{b sup 2 - 4ac}} over 2a

in OpenOffice.org Math like this (both are valid):

x={-b plusminus sqrt {b^2 - 4 ac}} over {2 a}


x={-b +- sqrt {b^2 - 4ac}} over 2a

although the less elegant:

x={-b+-sqrt{b^2 -{4}ac} }over {{2}a}

is required to get consistent use of italics and even then OpenOffice.org Math produces inconsistent spacing when
compared to the LaTeX output.
in ASCIIMathML [2] like this:

x = (-b +- sqrt(b^2 - 4ac)) / (2a)

The above equation could be represented in Presentation MathML as an expression tree made up from layout
elements like mfrac or msqrt elements:

<math mode="display" xmlns="http://www.w3.org/1998/Math/MathML">


<mrow>
<mi>x</mi>
<mo>=</mo>
<mfrac>
<mrow>
<mo form="prefix">&#x2212;<!-- &minus; --></mo>
<mi>b</mi>
<mo>&#x00B1;<!-- &PlusMinus; --></mo>
<msqrt>
<msup>
<mi>b</mi>
<mn>2</mn>
</msup>
<mo>&#x2212;<!-- &minus; --></mo>
MathML 57

<mn>4</mn>
<mo>&#x2062;<!-- &InvisibleTimes; --></mo>
<mi>a</mi>
<mo>&#x2062;<!-- &InvisibleTimes; --></mo>
<mi>c</mi>
</msqrt>
</mrow>
<mrow>
<mn>2</mn>
<mo>&#x2062;<!-- &InvisibleTimes; --></mo>
<mi>a</mi>
</mrow>
</mfrac>
</mrow>
</math>

In Content MathML, we cannot use &PlusMinus; (±) because it is a Presentation-only operator. To encode this
statement in Content MathML, we must write both roots of the quadratic equation. This helps to illustrate the
differences between Presentation and Content MathML.

<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><in/>
<ci>x</ci>
<set>

<apply><divide/>
<apply><plus/> <!-- upper root -->
<apply><minus/>
<ci>b</ci>
</apply>
<apply><root/>
<apply><minus/>
<apply><power/>
<ci>b</ci>
<cn>2</cn>
</apply>
<apply><times/>
<cn>4</cn>
<ci>a</ci>
<ci>c</ci>
</apply>
</apply>
</apply>
</apply>
<apply><times/>
<cn>2</cn>
<ci>a</ci>
</apply>
MathML 58

</apply>

<apply><divide/>
<apply><minus/> <!-- lower root -->
<apply><minus/>
<ci>b</ci>
</apply>
<apply><root/>
<apply><minus/>
<apply><power/>
<ci>b</ci>
<cn>2</cn>
</apply>
<apply><times/>
<cn>4</cn>
<ci>a</ci>
<ci>c</ci>
</apply>
</apply>
</apply>
</apply>
<apply><times/>
<cn>2</cn>
<ci>a</ci>
</apply>
</apply>

</set>
</apply>
</math>

The <annotation> element can be used to embed a semantic annotation in non-XML format, for example to store the
formula in the format used by an equation editor such as StarMath or the markup using LaTeX syntax. Alternatively,
the equation could be represented in Content MathML as an expression tree for the functional structure elements like
apply (for function application) or eq (for the equality relation) elements:

<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>x</ci>
<apply>
<frac/>
<apply>
<csymbol definitionURL="http://www.example.com/mathops/multiops.html#plusminus">
<mo>&PlusMinus;</mo>
</csymbol>
<apply>
<minus/>
MathML 59

<ci>b</ci>
</apply>
<apply>
<power/>
<apply>
<minus/>
<apply>
<power/>
<ci>b</ci>
<cn>2</cn>
</apply>
<apply>
<times/>
<cn>4</cn>
<ci>a</ci>
<ci>c</ci>
</apply>
</apply>
<cn>0.5</cn>
</apply>
</apply>
<apply>
<times/>
<cn>2</cn>
<ci>a</ci>
</apply>
</apply>
</apply>
<annotation encoding="TeX">
x=\frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
</annotation>
<annotation encoding="StarMath 5.0">
x={-b plusminus sqrt {b^2 - 4 ac}} over {2 a}
</annotation>
</math>

In the expression tree above, elements like times are defined by the MathML specification and stand for
mathematical functions that are applied to sibling expressions that are interpreted as arguments. The csymbol
element is a generic extension element that means whatever is specified in the document referred to in the
definitionURL attribute.
Although less compact than TeX, the XML structuring promises to make it widely usable and allows for instant
display in applications such as Web browsers and facilitates a straightforward interpretation of its meaning in
mathematical software products. MathML is not intended to be written or edited directly by humans.[3]
MathML 60

Embedding MathML in XHTML files


MathML, being XML, can be embedded inside other XML files such as XHTML files using XML namespaces.
Recent browsers such as Firefox 3+ and Opera 9.6+ (support incomplete) can display Presentation MathML
embedded in XHTML.
eg. math-test.xhtml:

<?xml version="1.0" encoding="UTF-8"?>


<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN"
"http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta name="language" content="en-US"/>
<meta name="description" content="Example of MathML embedded in an XHTML file"/>
<meta name="keywords" content="Example of MathML embedded in an XHTML file"/>
<title>Example of MathML embedded in an XHTML file</title>
</head>
<body>
<h1>Example of MathML embedded in an XHTML file</h1>
<p>
Given the quadratic equation
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mi>a</mi>
<mo>&#x2062;<!-- &InvisibleTimes; --></mo>
<msup>
<mi>x</mi>
<mn>2</mn>
</msup>
<mo>+</mo>
<mi>b</mi>
<mo>&#x2062;<!-- &InvisibleTimes; --></mo>
<mi>x</mi>
<mo>+</mo>
<mi>c</mi>
</mrow>
</math>
, the roots are given by
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mi>x</mi>
<mo>=</mo>
<mfrac>
<mrow>
<mo form="prefix">&#x2212;<!-- &minus; --></mo>
<mi>b</mi>
<mo>&#x00B1;<!-- &PlusMinus; --></mo>
MathML 61

<msqrt>
<msup>
<mi>b</mi>
<mn>2</mn>
</msup>
<mo>&#x2212;<!-- &minus; --></mo>
<mn>4</mn>
<mo>&#x2062;<!-- &InvisibleTimes; --></mo>
<mi>a</mi>
<mo>&#x2062;<!-- &InvisibleTimes; --></mo>
<mi>c</mi>
</msqrt>
</mrow>
<mrow>
<mn>2</mn>
<mo>&#x2062;<!-- &InvisibleTimes; --></mo>
<mi>a</mi>
</mrow>
</mfrac>
</mrow>
</math>
.
</p>
</body>
</html>

Image of MathML example (math-test.xhtml) using Firefox 3.5 with STIX Beta fonts

Software support

Editors
Some editors with native MathML support (including copy and paste of MathML) are Publicon from Wolfram
Research and SciWriter from soft4science.
MathML is also supported by major office products such as OpenOffice.org, KOffice, and MS Office 2007, as well
as by mathematical software products such as Mathematica and the Windows version of the Casio ClassPad 300.
The W3C Browser/Editor Amaya can also be mentioned as a WYSIWYG MathML-as-is editor.
FireMath [4], an addon for Firefox, provides a WYSIWYG MathML editor.
Most editors will only produce presentation MathML. The MathDox formula editor [5] is an OpenMath [6] editor also
providing presentation and content MathML. Formulator MathML Weaver [7] uses WYSIWYG style to edit
Presentation, Content and mixed markups of MathML.
MathML 62

Conversion
Several utilities for converting mathematical expressions to MathML are available, including converters between
TeX and MathML.[8] ConTeXt does the reverse and uses TeX for typesetting MathML (usually resulting in PDF
documents). MathType from Design Science allows users to create equations in a WYSIWYG window and export
them as MathML. Also, Wolfram Research provides a web page to convert typed mathematical expressions to
MathML.[9]
GNU TeXmacs is a WYSIWYG editor with extensive support for mathematics. Converters exist for presentation
MathML in both directions. TeXmacs can be used to write mathematical articles that are exported to XHTML with
embedded MathML.

Web browsers
Of the major web browsers, recent versions of Gecko browsers (e.g., Firefox and Camino)[10] and the Opera web
browser support MathML natively.
Opera, since version 9.5, supports MathML for CSS profile [11],[12] [13] but is unable to position diacritical marks
properly.[14] Prior to version 9.5 it required User JavaScript or custom stylesheets to emulate MathML support.[15]
Internet Explorer does not support MathML natively. Support can be added by installing the MathPlayer plugin.
WebKit-based browsers such as Chrome and Safari do not currently support MathML[16] , nor does the
KHTML-based Konqueror.[17]

Web conversion
ASCIIMathML[18] provides a JavaScript library to rewrite a convenient Wiki-like text syntax used inline in web
pages into MathML on the fly; it works in Gecko-based browsers, and Internet Explorer with MathPlayer.
LaTeXMathML[19] does the same for (a subset of) the standard LaTeX mathematical syntax. ASCIIMathML syntax
would also be quite familiar to anyone used to electronic scientific calculators.
Blahtex is a TeX-to-MathML converter intended for use with MediaWiki.
Equation Server for .NET from soft4science can be used on the server side (ASP.NET) for TeX-Math[20] (Subset of
LaTeX math syntax) to MathML conversion. It can also create bitmap images (Png, Jpg, Gif, etc.) from TeX-Math
or MathML input.
LaTeXML is a perl utility to convert LaTeX documents to HTML, optionally either using MathML or converting
mathematical expressions to bitmap images.

Support of software developers


Support of MathML format accelerates software application development in such various topics, as computer-aided
education (distance learning, electronic textbooks and other classroom materials); automated creation of attractive
reports; computer algebra systems; authoring, training, publishing tools (both for web and desktop-oriented), and
many other applications for mathematics, science, business, economics, etc. Several software vendors propose a
component edition of their MathML editors, thus providing the easy way for software developers to insert
mathematics rendering/editing/processing functionality in their applications. For example, Formulator ActiveX
Control from Hermitech Laboratory can be incorporated into an application as a MathML-as-is editor, Design
Science propose a toolkit for building web pages that include interactive math (WebEQ Developers Suite,[21] ).
MathML 63

Other standards
Another standard called OpenMath that has been designed (largely by the same people who devised Content
MathML) more specifically for storing formulae semantically can also be used to complement MathML. OpenMath
data can be embedded in MathML using the <annotation-xml encoding="OpenMath"> element. OpenMath content
dictionaries can be used to define the meaning of <csymbol> elements. The following would define P1(x) to be the
first Legendre polynomial

<apply>
<csymbol encoding="OpenMath" definitionURL="http://www.openmath.org/cd/contrib/cd/orthp
<msub><mi>P</mi><mn>1</mn></msub>
</csymbol>
<ci>x</ci>
</apply>

The OMDoc format has been created for markup of larger mathematical structures than formulae, from statements
like definitions, theorems, proofs, or example, to theories and text books. Formulae in OMDoc documents can either
be written in Content MathML or in OpenMath; for presentation, they are converted to Presentation MathML.
The ISO/IEC standard Office Open XML (OOXML) defines a different XML math syntax, derived from Microsoft
Office products. However, it is partially compatible[22] through relatively simple XSL Transformations.

See also
• CSS
• List of document markup languages
• Comparison of document markup languages
• Formula editors
• GELLMU
• LaTeX2HTML

External links

References
• W3C Recommendation: Mathematical Markup Language (MathML) 1.01 Specification [23]
• W3C Recommendation: Mathematical Markup Language (MathML) Version 2.0 (Second Edition) [24]
• W3C Working Draft: Mathematical Markup Language (MathML) Version 3.0 W3C 04 June 2009 [25]

Software
• Mozilla Firefox [26], web browser.
• OpenOffice.org [27], office suite.
• Opera [28], web browser.
• Sun Microsystems — StarOffice [29], office suite.
• W3C — Amaya [30], web editor (jointly developed by W3C and INRIA.
• MathMagic - WYSIWYG MathML equation editor for Technical writing and publishing
• MimeTex on Mediawiki [31]
• WP Math Pub Wordpress Plugin [32]
• PHP Math Library [33]
• WP Math Publisher Wordpress Plugin [34]
MathML 64

• Formulator MathML editor and ActiveX Control [35]


• MathML project page for WebKit [36]

Miscellaneous
• W3C Math Home [1] — Contains the specifications, a FAQ, and a list of supporting software.
• Latest MathML Recommendation [37]
• MathML Browser Test [38]
• MathML in Mozilla [39]
• MIT's instructions, MathML on Win/Mac/Linux [40]
• The W3C MathML software list [41]
• MathMLCentral.com [42] MathML conversion and rendering web service

References
[1] http:/ / www. w3. org/ Math/
[2] http:/ / www1. chapman. edu/ ~jipsen/ mathml/ asciimath. html
[3] Buswell, Steven; Devitt, Stan; Diaz, Angel; et al. (7 July 1999). "Mathematical Markup Language (MathML) 1.01 Specification (Abstract)"
(http:/ / www. w3. org/ TR/ REC-MathML/ #abstract). . Retrieved 26 September 2006. "While MathML is human-readable it is anticipated
that, in all but the simplest cases, authors will use equation editors, conversion programs, and other specialized software tools to generate
MathML."
[4] https:/ / addons. mozilla. org/ en-US/ firefox/ addon/ 8969
[5] http:/ / www. mathdox. org/ formulaeditor
[6] http:/ / www. openmath. org
[7] http:/ / www. mmlsoft. com/ hdata/ fml_home. php
[8] MathML and Mozilla (http:/ / pear. math. pitt. edu/ mathzilla/ itex2mml. html)
[9] MathML Central: Convert Expression to MathML (http:/ / www. mathmlcentral. com/ Tools/ ToMathML. jsp)
[10] Sidje, Roger B., Authoring MathML for Mozilla (http:/ / www. mozilla. org/ projects/ mathml/ authoring. html), Mozilla,
[11] http:/ / www. w3. org/ TR/ mathml-for-css/
[12] McCathieNevile, Charles (2007-09-27), Can Kestrels do Math? MathML support in Opera Kestrel (http:/ / dev. opera. com/ articles/ view/
can-kestrels-do-math-mathml-support-in/ ), Opera,
[13] Olsen, Tommy A. (2007-11-16), Even more work (http:/ / my. opera. com/ desktopteam/ blog/ 2007/ 11/ 16/ even-more-work), Opera,
[14] http:/ / my. opera. com/ mathml/ blog/ show. dml/ 1460837#comments
[15] UserJS for MathML 2.0 (http:/ / my. opera. com/ community/ forums/ topic. dml?id=124033)
[16] Bug 3251 - Implement MathML (master bug) (https:/ / bugs. webkit. org/ show_bug. cgi?id=3251), WebKit,
[17] Bug 30526 - MathML support for Konqi (http:/ / bugs. kde. org/ show_bug. cgi?id=30526),
[18] ASCIIMathML: Math on the web for everyone (http:/ / www1. chapman. edu/ ~jipsen/ mathml/ asciimath. html)
[19] LaTeXMathML: a dynamic LaTeX mathematics to MathML converter (http:/ / www. maths. nottingham. ac. uk/ personal/ drw/ lm. html)
[20] TeX-Math (http:/ / www. tex-math. net)
[21] WebEQ (http:/ / www. dessci. com/ en/ products/ webeq)
[22] David Carlisle (2007-05-09). "XHTML and MathML from Office 2007" (http:/ / dpcarlisle. blogspot. com/ 2007/ 04/
xhtml-and-mathml-from-office-20007. html). David Carlisle. . Retrieved 2007-09-20.
[23] http:/ / www. w3. org/ 1999/ 07/ REC-MathML-19990707/
[24] http:/ / www. w3. org/ TR/ 2003/ REC-MathML2-20031021/
[25] http:/ / www. w3. org/ TR/ 2009/ WD-MathML3-20090604/
[26] http:/ / www. mozilla. com/ products/ firefox/
[27] http:/ / www. openoffice. org/
[28] http:/ / www. opera. com/
[29] http:/ / www. sun. com/ software/ staroffice/
[30] http:/ / www. w3. org/ Amaya/
[31] http:/ / jeffmcneill. com/ mathml-tex-latex-texvc-mimetex-oh-my/
[32] http:/ / wordpress. org/ extend/ plugins/ wpmathpub/
[33] http:/ / www. xm1math. net/ phpmathpublisher/
[34] http:/ / wordpress. org/ extend/ plugins/ wpmathpublisher/
[35] http:/ / www. mmlsoft. com/ downloads/ downloads. html
[36] http:/ / webkit. org/ projects/ mathml/ index. html
[37] http:/ / www. w3. org/ TR/ MathML/
MathML 65

[38] https:/ / www. eyeasme. com/ Joe/ MathML/ MathML_browser_test


[39] http:/ / www. mozilla. org/ projects/ mathml/
[40] http:/ / web. mit. edu/ is/ topics/ webpublishing/ mathml/
[41] http:/ / www. w3. org/ Math/ Software/
[42] http:/ / www. mathmlcentral. com/
Article Sources and Contributors 66

Article Sources and Contributors


Canvas element  Source: http://en.wikipedia.org/w/index.php?oldid=375391473  Contributors: AdamDecaf, Agbegin, Agilist, Andi553, Atomic1fire, BCube, Balubino, Bhny, Brianski, Chzz,
Coldacid, Cowpriest2, Crowdofone, DanielAmelang, DaveWebster, Davewild, Davidhorman, DopefishJustin, Dreftymac, Einsidan, Fenring, Folajimi, Fubar Obfusco, Geekrecon, Globbet,
Graham king 3, GregorB, Grstain, Gsdefender2, Gustavb, Gyrobo, HAl, Happywaffle, HelloAnnyong, Inputdata, Isucan, Jbanes, Jeka911, Jeltz, Jh51681, Jncraton, Josh Parris, JustinBlank,
Kesla, Kpmkpm, Lazytiger, Lethe, Logixoul, Mabdul, Madhero88, Manishearth, Marioandangel, Masterhomer, Mattbierner, Mauk, Mindmatrix, Minghong, MoreNet, Mr.Z-man, Mralston, Mrcs,
Ms2ger, Nbrouard, Netalarm, NiX0n, Nickshanks, Niffux, Pascal.Honore, Raymond Hill, Red Act, Reisio, RekishiEJ, Remember the dot, Rich Farmbrough, Richard heyes, Roger McCoy,
Rokhan, Rwxrwxrwx, Scientus, Shamesspwns, Shnout, SomPost, Stephen, Takkaria, TheBilly, TomWilsonFL, Toussaint, Tuntable, UU, XP1, Xeos, 161 anonymous edits

Comparison of layout engines (HTML5)  Source: http://en.wikipedia.org/w/index.php?oldid=375566027  Contributors: Antiufo, Barsamin, Beverloo, Carewolf, CyberSkull, De1337, Ehn,
Execvator, FatalError, Fenring, Gkanai, Gok, GreyWanderer, Gudeldar, Gyrobo, Hankwang, IMacWin95, IlliterateSage, Infofarmer, Itpastorn, Jeff schiller, Jerroleth, Koavf, Lucideer, Luiscubal,
Mabdul, Madsenfr, Marcotulio, MattCuts, Mephiles602, MeteorRain, Mikix, Mindmatrix, Minghong, Ms2ger, MySchizoBuddy, NetRolller 3D, Neustradamus, One-eyed pirate, Prowdtobegeek,
Psz, Rob7139, SPQRobin, Shamesspwns, Shnatsel, Simetrical, Sladen, Slightlyajar, Smitty, Toehead2001, UU, Volkmar, Warren, Zcorpan, Zippanova, Zirrozify, 135 anonymous edits

HTML5  Source: http://en.wikipedia.org/w/index.php?oldid=374989356  Contributors: Adrianwn, Alexius08, Alexjohnc3, AmAnisa, Andrejbuday, Ankitasdeveloper, Annevk, Anon1345,
Anym, AoV2, Armando82, Artichoker, Artw, Aubray1741, Bandito4u, Bangsanegara, Barkermn01, Bender235, Bhny, Bitbit, BradNeuberg, Brianski, Canley, Causa sui, Centrx, Cfust, Ciantic,
Clairvoyant walrus, CloudNine, CodeCaster, Coffee, Cogiati, CortlandKlein, Crissov, CyberSkull, D'oh!, Danchr, Darklilac, Darxus, Data2action, David Gerard, Debresser, Deon, Digisus, Doctor
Nick, Dog786, Dogru144, Dolphin51, Domokato, Dr. Elwin Ransom, Emurphy42, Erikdw, Eville84, Eyewax, Famous anus, FatalError, Favonian, Fenring, Filemon, Fudoreaper, Gaia Octavia
Agrippa, Gareth Aus, Giftlite, Glenn, Graeme Bartlett, Grasshoppa, Grawity, GregU, GregorB, Grosshat, Grshiplett, Gyrobo, H3llbringer, Hairy Dude, Hankwang, Happy-melon, Hkdobrev,
Hondarox715, Hoo man, Hsivonen, Html5, Html5cn, Indefatigable, Itpastorn, JHMM13, JJC1138, JLaTondre, Jackdrogba, Jay, Jeremy Visser, Jerryobject, Jetrink, Jleedev, Johnadowell,
Jonathantneal, Jonsteroo, Jrincayc, Julesd, Kalki101, KarlDubost, Keithjgrant, KohanX, L Kensington, LLarson, Lachlan Hunt, Le Sage, Leinad, Luckyz, MC10, MER-C, Mabdul, Macan55,
Macromediax, Madsenfr, Mange01, Manop, MartinRinehart, Matt Darby, MattCuts, Mdagr8, Mdale, Melnakeeb, Meow, Michael Devore, Mikldt, Mindmatrix, Mmj, Motherlover2012, Ms2ger,
Nakakapagpabagabag, NerdyNSK, Neustradamus, Nick UA, Nickshanks, Nigelj, Nil Einne, Nogburt, Nopetro, Notetp, Noz92, Nthep, Nunojpg, Oliphaunt, Oneiros, Onorem, PatrickFisher,
Pauldwaite, Peter Ballard, Peterdx, Philwiki, Pingveno, Pwjb, Quatermass, RW Marloe, Reisio, Resistor, Rodmoten, RoyBoy, RoySmith, Rugops, Runecats, Rursus, Rwxrwxrwx, SamJohnston,
Saoshyant, Scientus, Simetrical, Sligocki, Snookerman, Songcycle, SoopahMan, Spidermario, SqueakBox, Station1, Stemonitis, Stephen B Streater, Subversive.sound, Tentonbricks, The Anome,
Thue, Thumperward, Thyako, Tms, Todd Vierling, TommmL, Tommy2010, Ubernostrum, Ultimatewisdom, Vdavid2, Vicsar4, Vivekanandanpdy, Volox, Webmaren, Wiikipedian,
Wikipincompk, Willscrlt, Winterheat, Xyz98711, Zcorpan, 288 anonymous edits

HTML5 video  Source: http://en.wikipedia.org/w/index.php?oldid=374746904  Contributors: AnaTo, Auntof6, Bender235, Brian Patrie, Cbensf, Codumon, Craftyminion, CyberSkull, Emk (ja),
Frap, Gthiruva, Gyrobo, Hairy Dude, Hsivonen, J. M., Janjko, Jonik, Joshuaali, Jsidline, Lynbarn, M gol, Mabdul, Madsenfr, MattCuts, Ms2ger, O-Mann, Owl order, Pt, Raffaele Megabyte,
Reisio, Rich Farmbrough, Simetrical, Skrapion, Stephen B Streater, Thorwald, Thue, Twpol, 86 anonymous edits

Immediate mode  Source: http://en.wikipedia.org/w/index.php?oldid=359774533  Contributors: MarkBuckles, Peter L, Simeon, SteveBaker, The Anome, 4 anonymous edits

DOM storage  Source: http://en.wikipedia.org/w/index.php?oldid=347349000  Contributors: Bandito4u, Dhollm, Edratzer, Ghiaurul, MBParker, Mabdul, MoreNet, Zcorpan, 12 anonymous edits

Web Storage  Source: http://en.wikipedia.org/w/index.php?oldid=374682840  Contributors: Bandito4u, Dhollm, Edratzer, Ghiaurul, MBParker, Mabdul, MoreNet, Zcorpan, 12 anonymous edits

Drag-and-drop  Source: http://en.wikipedia.org/w/index.php?oldid=375102907  Contributors: 16@r, 404notfound, Az1568, Bblfish, Bevo, Blindwaves, Brucevdk, Cfsenel, CommonsDelinker,
Courtinfrog, DXBari, Daveb, Dbolton, Ddon, Dragice, Ed Poor, Edison, Ehheh, Enochlau, Firsfron, Frecklefoot, GermanX, Granburguesa, Gregbard, Hessamnia, Hullbr3ach, Huwr, Ie7pro,
Jaberwocky6669, Jack's Revenge, JakkoWesterbeke, Jeffreygreenberg, Jerome Charles Potts, Joyous!, Jurohi, Lhasapso, Ligulem, Lovelac7, Lysdexia, MartinPackerIBM, Mathiastck, Mellery,
MichaelMcGuffin, Mjwest10, Mmxx, Mschlindwein, Mx3, Natelovesjessi, Nigholith, OverlordQ, PhilippWeissenbacher, Polluks, Predator106, RedWolf, Richseq, SharkD, SpuriousQ,
Summentier, Syp, TMC1221, Tarquin, Tkgd2007, Towsonu2003, Traveler100, Unitman00, Vitaliyb, Xardox, 69 anonymous edits

MIME type  Source: http://en.wikipedia.org/w/index.php?oldid=368465924  Contributors: Bittergourd72, Btx40, Cigale, Companioncube31, Damian Yerrick, Ehn, Fudoreaper, Gevetts,
Gilanshop, Hawkeye7, IceUnshattered, ImranC, JLaTondre, Jantangring, Jax-wp, Jeepday, Joeblakesley, Kak, Keith111, Kle0012, Landavia, Leolaursen, Luk, Modest Genius, Nbarth,
Neurovelho, OlEnglish, Remember the dot, RickBeton, Rogerd, Sbwoodside, Serpent's Choice, Stevenmc, Superm401, SvartMan, Svick, Taniquetil, Tapir666, The Earwig, Tokek,
Typhoonhurricane, WimTaymans, Wimt, Wrs1864, Wtmitchell, ZacBowling, Zundark, 53 anonymous edits

W3C Geolocation API  Source: http://en.wikipedia.org/w/index.php?oldid=374915873  Contributors: Amascherpa, Chorder, DerekMorr, Digita, Gonzonoir, Heycam, Kevin P Sheedy, Klparrot,
LemChops, Mabdul, Rsocol, Sonu27, Technome, The Anome, TonyLocke, 17 anonymous edits

Web SQL Database  Source: http://en.wikipedia.org/w/index.php?oldid=375934654  Contributors: Rob7139, Rursus

Indexed Database API  Source: http://en.wikipedia.org/w/index.php?oldid=374980484  Contributors: 4th-otaku, Austin512, Hbachus, Malcolma, Rich Farmbrough, Rob7139, 4 anonymous
edits

SVG  Source: http://en.wikipedia.org/w/index.php?oldid=74204356  Contributors: *drew, 16@r, 7, AThing, AVRS, Abce2, Ac44ck, Adodge, Ahoerstemeier, Aimonai, AlefZet, AlexPavlenko,
Alexamies, Alexjohnc3, AlistairMcMillan, AlisteRrr, Allen3, Alonbl, AltiusBimm, Amelia Hunt, Anakar, AndrejBenedik, Andros 1337, Ankit1 nagpal, Anna Lincoln, AnnaFrance, AnonMoos,
Anthony5429, Anwar saadat, Anárion, Arnero, Arthena, Artw, Ascorbic, Attilios, Aursani, Authr, Axl, BPK, Bdesham, Ben-Zin, BenFrantzDale, BigDunc, BjKa, Bobo192, Boggie, Bondolo,
Booles, Bovlb, BradNeuberg, Bruce89, Bryan Derksen, Buaidh, Bumpusjane, Bus stop, CRobClark, Cfailde, Charivari, Cheapie, Cherden, ChrisDHDR, ChrisRuvolo, Chrisspurgeon,
Christopherlin, Chun-hian, Chuzhakin, CliffWalkinFool, Cmdrjameson, Comrade42, Conan, Conrad.Irwin, Conversion script, CountingPine, Crazytales, Cristan, Cwolfsheep, CyberSkull,
CyclePat, Cygnus78, Damian Yerrick, Dan East, Dancter, Danja, Darobin, Darxus, Daschepers, Davemcarlson, David Newton, Davidhorman, Dbenbenn, Dendropithecus, DennisDaniels, Dferg,
Diberri, Dmccarty, DoSiDo, DopefishJustin, Dormous, Doug Bell, DrBob, Dragice, DreamGuy, Dreftymac, Dwimsey, Eaowens, Ear1grey, Edward, Edward Z. Yang, Edwardtbabinski, Eep²,
Efitu, Eloquence, Enormator, Enquire, Ergosteur, Ericd, Estoy Aquí, Everlong, Evice, Fadookie, Falcon9x5, Feedmecereal, Fenring, Fetchcomms, Ffangs, Filll, Finell, FirefoxRocks, Flcelloguy,
FleetCommand, Folajimi, Foxtrotsky, Fred Bradstadt, Froehle, FrostyBytes, Furrykef, Fziliani, GPHemsley, Gari22, Gary King, Gdelfino, Ged UK, Gentgeen, GeorgeMoney, Georgeryp,
Gerbrant, Ghettoblaster, Globbet, Gmaxwell, Goodeq71, Gracenotes, Grahamstewart, Great Cthulhu, Grego7, GregorB, Gudeldar, Guy Harris, Guyjohnston, Gyrobo, HAL(Old), HAl, HHaskell,
HTMLCODER.exe, Haham hanuka, Hajhouse, Hamitr, Hashar, Hdante, Helix84, Henry W. Schmitt, HereToHelp, Hervegirod, Heycam, Hgfernan, Hhielscher, Hlovdal, Hmsfrench, Homunq,
Hooperbloob, HotXRock, Hyad, Hydrargyrum, IE, IPAddressConflict, Iambus, Ian Pitchford, Id1337x, IlliterateSage, Imc, IntrigueBlue, Ipankonin, Irve, Itsmine, J JMesserly, J.smith,
JLaTondre, JVz, Jackster, Jacobko, Jacobolus, Jaho, Jarekt, JasonSaulG, Jax-wp, Jeanhaney, Jeff schiller, Jeltz, Jgrahn, Jgtate, Jjzeidner, John Broughton, John Vandenberg, Joker1984,
Joker2007, Jonathan Watt, Jorunn, Joseph Solis in Australia, Josh Parris, Jwy, Kaare, Katpatuka, Kbdank71, Kbolino, KelleyCook, Kenny sh, Kevin Forsyth, Kevinconroy, Kghose, KihOshk,
Kjkolb, Kjoonlee, Klingoncowboy4, Komencanto, Kpengboy, Kpjas, KrakatoaKatie, Kricxjo, Kriskhaira, Kuteni, Leonard G., Lev Matematik, Little Professor, LittleDan, Llihrednu, Lotje,
Lucideer, Lumarine, M@RIX, Mabdul, Mac, Maikel, Makyen, Mani664, Martty, Marudubshinki, MathMartin, Mcorazao, Mcurtes, Miaow Miaow, Michael Hardy, MichaelBillington,
Militaryace, Millermedeiros, Minesweeper, Minghong, Miracleworker5263, Mitsukai, Mkidson, Mktyscn, Modster, Mongoletsi, Mpbolger, MrJones, Ms2ger, Msgilligan, Mumia-w-18, Mushin,
Mxn, NaBUru38, Nae'blis, NantonosAedui, Narendra Sisodiya, NeaNita, Nealmcb, Nemo bis, Netoholic, Newtown11, Nhandler, Nigelj, Nightkhaos, Nihiltres, Nikai, Nimbupani, Nintendo
Maniac 64, Noldoaran, Norm, Obeattie, Objectivesea, Octane, Ohconfucius, Ojw, Oli Filth, Oliphaunt, Oliver Lineham, Olivier, Omegatron, One, Orenadam, Owl order, Pamri, Panzi, Paranomia,
Patrick, Pattersonc, Pdwiki314, Penfold, Pengo, Penubag, Peterwhy, Pianohacker, Pigsonthewing, Pingveno, Plop, Pnorcks, Popas11, Quadratus, Qutezuce, R8Rooy, RDBury, Rassisi, Rasvg,
RedWolf, Reedbeta, Reinthal, Reisio, Rekabis, Remember the dot, Remi de, Reub2000, RexNL, Richcon, Riki, Ripper234, Rjwilmsi, Rob Russell, RobertHeadley, Roeeyaron, Rojomoke,
Romiras, Rondack, Ronz, Ross Uber, Rursus, Ruud Koot, Rwxrwxrwx, SKopp, Saintrain, Sakurambo, Sameboat, Samuella, Sane Traitor, Saxifrage, Scott MacLean, ScottHolden, Scoutersig,
Seanqtx, Sebleblanc, Securiger, Sfacets, Shadowjams, Show007, Sjakkalle, Skierpage, Skoot, SkyWalker, Slartidan, Slashme, Sleepyhead81, Sligocki, Smjg, Smoothhenry, Sonjaaa, Soumyasch,
Spankman, Speck-Made, Spriteless, Squidonius, Ssd, Stephen B Streater, Stephenchou0722, Stepshep, Stevenj, Stevertigo, Stewartadcock, Stuprniq, Suruena, SyntaxError55, Sysrpl, TMC1221,
Ta bu shi da yu, Tagus, Tamariki, Tandrasz, Tatyana Popova, Tedwardo2, Tenbaset, Tene, Terjen, Testonly, The Wild Falcon, TheGeoffMeister, TheKMan, TheWhiteMonkey, Thelennonorth,
Thingg, ThomasHarte, Thorenn, Thrapper, Thumperward, Timeshifter, Timneu22, Tobias Bergemann, Tobin Richard, Todd Vierling, Torx, Toussaint, Trapolator, Traroth, Tuntable, TyGuy5,
Typhoonhurricane, UU, Urhixidur, Vanessaezekowitz, VictorAnyakin, Voidxor, Voyagerfan5761, Wenz, Wereon, WikianJim, Wikinger, Willpeavy, Winterst, Wooptoo, Worldtraveller,
XJamRastafire, Xinconnu, Yamavu, Yarnover, Youandme, Youssefsan, Ysangkok, Yukoba, Zeh, Zeotronic, Zero0w, Zosoin, Zundark, 602 anonymous edits

MathML  Source: http://en.wikipedia.org/w/index.php?oldid=373269414  Contributors: 420MuNkEy, AJRobbins, Aanderson@amherst.edu, Aasmith, Aimonai, Amire80, Analoguedragon,
Armando82, ArnoldReinhold, Atmoz, AxelBoldt, Bdesham, BeakerK44, Beetstra, Boooring, Burschik, Capricorn42, Charlielee111, Charvest, Chowbok, Computer Guru, Crispiness, Davi
Medrade, DavidCBryant, Desteg, Diggory Hardy, Dima373, Dlazerka, Dmharvey, DynV, Dysprosia, E.b.jackson, Elliott Drabek, EmilJ, Evice, Folajimi, Free Software Knight, GPHemsley,
Gdm, Ghettoblaster, GregorB, Gwern, Gyrobo, HDrake, Hankwang, Hannes Röst, Happy-melon, Hhielscher, I Love Pi, Ice Ardor, Igno2, Ilhanli, Ipso-De-Facto, Ivan Štambuk, Jan Pöschko,
Article Sources and Contributors 67

Jeffz1, JerroldPease-Atlanta, Joejava, JohnyDog, João Eiras, K1Bond007, Langec, Laurentius, Looxix, MadBoP, Mamling, Mange01, Markpeak, Mav, Miaow Miaow, Michael Hardy,
MichaelKohlhase, Mihail L. Buryakov, Minghong, Mipadi, Mister Magotchi, Mjb, Mordomo, MrJones, Mxn, Nicmila, Nonstandard, Omegatron, Onco p53, Onmywaybackhome, Paradaxiom,
Pcap, Phil Boswell, Philippe, Porges, Rangi42, Reaper788, Remember the dot, Rich Farmbrough, RickBeton, Rydel, SAE1962, STarry, Sade, Salix alba, Securiger, Simetrical, Sixtease, Sligocki,
Soumyasch, Sspecter, StaticGull, Stevenj, Stmrlbs, Sukivenkat, Svick, Telempe, The Thing That Should Not Be, Thrapper, Tietew, Todd Vierling, Toussaint, V.levytskyy, VictorAnyakin,
Warren, Widefox, WikHead, WojPob, Wvb20, Zahd, Zandperl, Zhuman, Zigger, Zundark, Ævar Arnfjörð Bjarmason, 165 anonymous edits
Image Sources, Licenses and Contributors 68

Image Sources, Licenses and Contributors


Image:HTML.svg  Source: http://en.wikipedia.org/w/index.php?title=File:HTML.svg  License: Attribution  Contributors: Anihl, Bender235, DieBuche, Nagy, Str4nd, Tael, €, 6 anonymous
edits
Image:HTML5.svg  Source: http://en.wikipedia.org/w/index.php?title=File:HTML5.svg  License: Creative Commons Attribution-Sharealike 3.0  Contributors: User:Ms2ger
Image:Drag and drop.gif  Source: http://en.wikipedia.org/w/index.php?title=File:Drag_and_drop.gif  License: unknown  Contributors: User:Traveler100
File:SVG-logo.svg  Source: http://en.wikipedia.org/w/index.php?title=File:SVG-logo.svg  License: unknown  Contributors: Bgpaulus, Globbet, Hammersoft, 1 anonymous edits
Image:Bitmap VS SVG.svg  Source: http://en.wikipedia.org/w/index.php?title=File:Bitmap_VS_SVG.svg  License: Creative Commons Attribution-Sharealike 2.5  Contributors: User:3247,
User:Yug
Image:Web browser usage share.svg  Source: http://en.wikipedia.org/w/index.php?title=File:Web_browser_usage_share.svg  License: Public Domain  Contributors: DieBuche, Jdm64,
Jovianeye, Killiondude, Protonk
File:math test.png  Source: http://en.wikipedia.org/w/index.php?title=File:Math_test.png  License: Public Domain  Contributors: Joejava
License 69

License
Creative Commons Attribution-Share Alike 3.0 Unported
http:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/

You might also like