👀 Live Preview
Simulated mute state indicator (native media requires user interaction in some contexts):
Real <video muted> elements start with muted=true. Users unmute via controls or video.muted = false.

The muted attribute is a boolean HTML attribute on <video> and <audio> that silences media when it loads. Video still plays visually; audio output is off until the user unmutes via controls or JavaScript sets element.muted = false. It is common for background hero videos, preview clips, and autoplay content because browsers often block autoplay with sound. Add it by writing muted alone—there is no separate unmuted value.
Present = silent.
Media elements.
No sound on load.
Browser policy.
User can unmute.
true / false.
muted AttributeThe primary purpose of muted is to control initial audio output. A looping background video on a landing page should not blast sound unexpectedly. An embedded preview can play silently until the visitor chooses to listen. Setting muted in HTML establishes that default before playback starts.
Modern browsers restrict autoplay with audio to protect users. Combining autoplay with muted (and often playsinline on mobile) is the standard pattern for auto-starting video. Always provide a visible way to enable sound when audio is important to the content.
unmuted attributeThe old reference listed unmuted as a value—that is incorrect. To play with sound, omit the muted attribute or set element.muted = false in JavaScript.
Add the boolean muted attribute to video or audio:
<video controls muted playsinline>
<source src="movie.webm" type="video/webm">
Your browser does not support the video tag.
</video>
<audio controls muted src="ambient.mp3"></audio>
<video autoplay muted loop playsinline src="hero.mp4"></video>muted alone; presence means silenced.<video> and <audio> only.mediaElement.muted = true (boolean).controls so users can unmute when sound matters.autoplay and playsinline for background video.The muted attribute is boolean—it has no meaningful string value:
muted — Attribute present; media starts with audio silenced.muted="" — Also valid in HTML5; same as bare muted.el.muted = true mutes; el.muted = false restores audio.const video = document.getElementById("myVideo");
video.muted = true; // mute
video.muted = false; // unmute| Use case | Markup | Notes |
|---|---|---|
| Silent video | <video controls muted> | User can unmute |
| Silent audio | <audio controls muted> | Starts muted |
| Autoplay hero | autoplay muted playsinline loop | Browser-friendly |
| Unmute via JS | video.muted = false | Boolean property |
| Not muted | Omit muted | Default with sound |
| Volume level | video.volume = 0.5 | Separate JS property |
| Element | Supported? | Notes |
|---|---|---|
<video> | Yes | Most common use |
<audio> | Yes | Silent audio by default |
<source>, <track> | No | Mute on parent media element |
<iframe> | No | Use embed API or allow attribute |
muted vs volume vs removing audio| Approach | How | Effect |
|---|---|---|
muted attribute | HTML boolean on media | Silences audio output entirely |
volume property (JS) | el.volume = 0 to 1 | Adjust loudness; 0 is silent but not same flag as muted |
| No audio track in file | Encode video without audio | Nothing to unmute; different from muted |
autoplay without muted | HTML autoplay alone | Often blocked by browsers |
Muted video with toggle, muted audio element, and setting element.muted with JavaScript.
Simulated mute state indicator (native media requires user interaction in some contexts):
Real <video muted> elements start with muted=true. Users unmute via controls or video.muted = false.
Start a video silently with playback controls:
<video controls muted playsinline>
<source src="movie.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>The muted content attribute maps to the IDL muted property on HTMLMediaElement. Visual playback is unaffected; only audio output is suppressed.
Load an audio clip that starts muted:
<audio controls muted src="ambient.mp3"></audio>Same boolean behavior as on <video>. The audio element’s timeline still advances; output volume is zero while muted.
Mute or unmute at runtime:
<video id="myVideo" controls src="clip.mp4"></video>
<script>
const video = document.getElementById("myVideo");
video.muted = true; // mute
video.muted = false; // unmute
</script>The property reflects and updates the muted state. Setting muted = false does not change volume—it re-enables audio at the current volume level.
prefers-reduced-motion.Boolean on media.
muted property true.
No audio output.
User or JS can unmute.
The muted attribute on <video> and <audio> is fully supported in all modern browsers. Autoplay-with-muted policies vary slightly by browser but are widely implemented.
Chrome, Firefox, Safari, and Edge honor muted on video and audio.
Bottom line: Safe for silent defaults and muted autoplay patterns in production.
muted for background and autoplay videocontrols or a clear unmute buttonmuted and playsinlineunmuted attribute valuemuted with volume = 0 for all use casesThe muted attribute gives you simple control over whether media plays with sound. On <video> and <audio>, it sets a silent default that protects users from unexpected noise and satisfies autoplay policies.
Omit the attribute when sound should start enabled, use controls or custom UI to let users unmute, and toggle element.muted in JavaScript when your app logic requires it.
mutedBookmark these before embedding media.
No unmuted value.
SyntaxMedia only.
ScopePolicy friendly.
Autoplaytrue / false.
DynamicMute ≠ a11y done.
A11y<video> or <audio> by default. Playback can continue; audio output is off until unmuted.<video> and <audio> only. Set mute on the media element, not on <source> or <track>.muted for sound, or set element.muted = false in JavaScript.mediaElement.muted = true or false on HTMLMediaElement.Practice muted video, muted audio, and dynamic .muted in the Try It editor.
5 people found this page helpful