Not By Text Alone
Although HTML was initially a text markup language, its abilities evolved from its 'textual' bounds long ago. New native elements in HTML 5 allow authors to operate non-textual information such as video and sound. HTML 5 has not made major developments in image support.
The new <video> element provides the ability to embed videos inside web documents without using third-party plug-ins like Adobe Flash or Microsoft Silverlight. Below is a simple example of a video element with explicit width and height specifications for a poster image (e.g. representative frame from the video):
<video src="good-dog.flv" width=200 height=120 controls poster=preview.jpg />
The next example illustrates a more complex example where a <video> element may include several sources of a video encoded using different codecs and alternative content to be shown if a browser does not support the video:
<video width=200 height=120 controls poster=preview.jpg> <source src=video.ogv type=video/ogg> <source src=video.mp4 type=video/mp4> Your browser does not support video. Please <a href=video.ogv>download it</a>. </video>
Note: An even more complex example may include an <object> element inside the <video> tag to play the video using Flash if the browser does not support the <video> tag out-of-the-box. The <audio> element is very similar to the <video> element. Both DOM elements extend the same HTMLMediaElement for those have like attributes (the vast majority of them) and methods. Here is an example of that tag:
<audio src="audio.oga" controls> Your browser does not support audio. </audio>
Note that there are many additional features of both elements not shown in the examples above such as buffering, auto-playing, and the ability to associate external tracks containing subtitles, captions or descriptions with media content. The bottom line is that, by using video and audio elements with a corresponding DOM interface, web developers can embed and manage multimedia resources without the headache related to embedding external plug-ins for different browsers.
HTML 5.0 also allows embedding SVG (Scalable Vector Graphics) scenes inside a document by using the <SVG> element. SVG is a separate specification of another technology allowing us to define 2D scenes. Compared with <canvas>, SVG provides means for high-level operations of drawing static and dynamic scenes. Basically, SVG is an XML format for defining shapes, text and other visual objects in a scene. As a result, a developer using SVG defines objects to be rendered (i.e. declarative approach and vector graphics) instead of programmatically drawing these objects (i.e. imperative approach and bitmap graphics) when using <canvas>. A SVG scene can be rendered by a browser, a third-party application or a plug-in.
<svg width="200" height="200" version="1.1" xmlns="http://www.w3.org/2000/svg"> <rect width="100" height="100" style="fill:rgb(255,0,0)"/> </svg>
A quality critique that helps one decide between using SVG and Canvas by exploring the advantages and disadvantages of each technology for different tasks can be found here. Note that SVG is an older, but less supported technology compared to HTML 5 Canvas.