What is the HTML <source> tag ?
HTML <source> tag is used to specify multiple media resources for media elements, such as <video>, <audio>, and <picture>.
HTML <source> tag specifies one or more media resources for the <audio>, <video>, or <picture> tag.
HTML <source> tag was introduced in HTML5.
HTML <source> tag is a self-closing tag, it doesn’t have a separate closing tag.
How HTML <source> tag works ?
HTML <source> tag is used to specify multiple media resources for <picture>, <audio> and <video> elements in various formats.
HTML <source> tag should be placed before the <track> tag we use it for <audio> or <video> tags.
And HTML <source> tag should be placed before <img> tag if it’s inside a <picture> tag.
Why is the HTML <source> tag used ?
HTML <source> tags are used when there is a need for implementing <audio>,<video> and <picture> elements in Webpage.
HTML <source> tag is the most commonly used tag inside HTML document.
HTML beginners tutorial !!!
Click to Learn More about – HTML Tutorial for beginners
Syntax :
<source src="" type="">
// Statements
</source>
Example 1 : Audio File
<!DOCTYPE html>
<html>
<body>
<p>Audio Songs</p>
<audio controls>
<source src="song1.mp3" type="audio/mp3">
</audio>
</body>
</html>
Output :

Example 2 : Video File
<!DOCTYPE html>
<html>
<head>
<title>Video Tag</title>
</head>
<body>
<p>MP4 Format</p>
<video width="300" height="200" autoplay>
<source src="example1.mp4" type="video/mp4">
</video>
<p>Ogg Format</p>
<video width="300" height="200" autoplay>
<source src="example2.ogv" type="video/ogg">
</video>
<p>WebM Format</p>
<video width="300" height="200" autoplay>
<source src="example3.webm" type="video/webm">
</video>
</body>
</html>
Output :

<source> Tag Attributes
HTML <source>
tag support following specific attributes.
Sno | Attributes | Value | Description |
---|---|---|---|
1 | src | URL | Required. Specifies the URL of resource file. |
2 | srcset | URL | Required. Specifies the URL of the image. |
3 | media | media_query | Specifies the valid media query. |
4 | type | MIME_type | Specifies the MIME type of resource file. |
Global Attributes
HTML <source>
tag support following global attributes.
Sno | Attributes | Value | Description |
---|---|---|---|
1 | id | unique_name | Declared unique id for an element. |
2 | class | class_name | Declared one or more classnames for an element. |
3 | style | styles | CSS inline styles specify an element. |
4 | title | title | Specify extra details of element contain, this will display as a “tooltip” for an elements. |
Event Attributes
HTML <source>
tag support following event attributes.
Sno | Attributes | Value | Description |
---|---|---|---|
1 | onfocus | script | element gets focus on object when script tobe run. |
2 | onblur | script | element lose the focus on object when scrip tobe run. |
3 | onabort | script | element gets aborted on object when script tobe run. |
4 | onchange | script | element gets anytime change on object when script tobe run. |
5 | onbeforeunload | script | element gets unloaded on object when scrip tobe run. |
6 | onclick | script | clicked on object when script tobe run. |
7 | ondblclick | script | double click on object when script tobe run. |
8 | onkeydown | script | key is pressed when script tobe run. |
9 | onkeypress | script | key is pressed over element then released when script tobe run. |
10 | onkeyup | script | key is released over element when script tobe run. |
11 | onmousedown | script | mouse button was pressed over an element when script tobe run. |
12 | onmouseout | script | mouse pointer release over an element when script tobe run. |
13 | onmousemove | script | run mouse pointer moved when script tobe run. |
14 | onmouseover | script | run mouse pointer move over when script tobe run. |
15 | onmouseup | script | mouse button is released when script tobe run. |
16 | onreset | script | form has been reset when script tobe run. |
17 | onselect | script | Select some content when script tobe run. |
18 | onsubmit | script | form has been submitted when script tobe run. |
19 | onload | script | object has load when script tobe run. |
20 | onchange | script | allow to change the object when script tobe run. |
21 | onunload | script | unload to the browser window when script tobe run. |
22 | ondrag | script | element being dragged when script tobe run. |
23 | ondragend | script | element being stop dragged when script tobe run. |
24 | ondragenter | script | element being go target dragged when script tobe run. |
25 | ondragleave | script | element being leave to target dragged when script tobe run. |
26 | ondragover | script | element being over to target dragged when script tobe run. |
27 | ondragstart | script | element being start dragged when script tobe run. |
28 | ondrop | script | element being dropped when script tobe run. |
29 | onerror | script | element error occurs when script tobe run. |
30 | onmessage | script | element message display when script tobe run. |
31 | onerror | script | element error occurs when script tobe run. |
32 | onmousewheel | script | mouse wheel will be rotate when script tobe run. |
33 | onscroll | script | scrollbar is scroll when script tobe run. |
34 | onresize | script | element should be resize when script tobe run. |
35 | onselect | script | all element content selected when script tobe run. |
36 | onstorage | script | element should be store in target when script tobe run. |
Browser Compatibility
Sno | Browser | Support |
1 | Chrome | Yes |
2 | Firefox | Yes |
3 | Edge | Yes |
4 | Opera | Yes |
5 | Safari | Yes |
6 | Internet Explorer | Yes |