VideoBB
Upload Premium Sign in

Autoplay rules in browsers

Chrome, Safari and Firefox all block autoplay with sound until a person has interacted. What each one allows, how the rules reach an iframe, and how to design around them.

Modern browsers allow autoplay only when the video is muted, or when the viewer has already clicked on the site. Autoplay with sound and no prior click is blocked. Embed with ?autoplay=1&muted=1, keep allow="autoplay" on the iframe, and let the viewer turn sound on.

Abstract illustration of a play-shaped form behind a translucent barrier, with a small crossed-out speaker glyph, suggesting blocked sound.

The rule is short and the exceptions are long. A browser will start a video by itself only if it is silent, or if it has reason to believe the person wants it. The rest of autoplay policy defines "reason to believe", and each browser defines it a little differently. That is why the same embed plays on your machine and stays frozen on a colleague's. On a phone, it may show a poster with a mute icon.

This guide sets out what Chrome, Safari and Firefox actually do. It shows how those choices pass through an iframe to an embedded player, and how to build pages that behave the same everywhere. It ends with the accessibility rules for anything that moves or makes noise without being asked. Those rules limit the design more than the browsers do.

Why the policies exist

Autoplay with sound was the web's most complained-about behaviour for a decade. A page opened in a background tab starts talking. An advert shouts over a meeting. A hotel wifi bill grows because a hero video looped all night. Browsers responded between 2017 and 2019 by tying audible playback to evidence of intent. Safari 11 introduced per-site autoplay settings on macOS in 2017; Chrome 66 shipped its policy in April 2018; Firefox 66 blocked audible autoplay by default in March 2019. The policies differ in detail but agree on two big points. Muted video may start on its own. Video with sound may not, until the person has done something.

What each browser allows

A summary of the documented policies. Users can loosen or tighten all of them in settings.

BrowserMuted autoplayAudible autoplayNotes
Chrome and EdgeAlways allowedAfter a click or tap on the site, or with a high engagement score for that siteIframes need allow="autoplay" to inherit permission
Safari (macOS)Allowed by defaultBlocked by default; per-site settingUsers can choose Allow All, Stop Media with Sound, or Never Auto-Play
Safari (iOS)Allowed with playsinlineBlocked until a tapLow Power Mode can prevent autoplay entirely
FirefoxAllowed by defaultBlocked by default; per-site settingUsers can also block muted autoplay

How Chrome decides you want it

Chrome's policy, documented on the Chrome developers blog, allows audible autoplay in three cases. First, the person has clicked or tapped on the domain during that visit. Second, the site's Media Engagement Index is high enough. That means the person has often played video with sound on that site before. Third, on mobile, the person has added the site to their home screen.

The engagement index is why a video-heavy site you use daily autoplays for you and not for a first-time visitor. It is also why testing autoplay in your own browser tells you almost nothing about a stranger's experience. Test in a fresh profile or a private window.

For embedded players there is one more rule. A cross-origin iframe does not inherit the parent page's permission unless the parent delegates it with allow="autoplay". The VideoBB embed includes that token by default. Delete it and the player cannot autoplay even after the viewer has clicked around your page.

Muted autoplay is always allowed.

Chrome autoplay policy, developer.chrome.com

Mobile, low power and data saver

Phones add conditions. iOS Safari plays inline only when the video element carries playsinline; otherwise it opens the system player, which never autoplays. VideoBB's player sets this for you. When the device is in Low Power Mode, Safari may decline to start any video until the person taps it, regardless of mute. Android browsers with a data-saver setting enabled can behave the same way, and Chrome exposes the preference to sites as the Save-Data hint. The practical consequence is that a design must be complete without autoplay: the poster, the play button and the surrounding copy have to make sense on their own.

Embed for autoplay on VideoBB

The sequence that works across browsers.

  1. Add both parameters

    Use ?autoplay=1&muted=1 on the embed src. Autoplay without mute is refused for most first-time visitors.

  2. Keep the allow attribute

    allow="autoplay; fullscreen; picture-in-picture" delegates the permission to the frame. Removing it silently disables autoplay.

  3. Do not lazy-load an autoplaying hero

    loading="lazy" defers the frame; for a player at the top of the page remove it so playback starts as soon as the page paints.

  4. Offer sound as an action

    The player's controls let the viewer unmute. If sound is essential, prefer a poster and a play button over autoplay, so the first play is the viewer's click.

  5. Test in a private window and on a phone

    Your own browser has an engagement history with your site. A private window and a device that has never visited it show what new viewers get.

For developers: the play() promise

If you control a video element directly rather than through an embed, play() returns a promise. When the browser refuses, the promise rejects with a NotAllowedError. The correct response is to fall back rather than to retry. Set muted = true and call play() again, or show the poster and a play control. Never assume playback started because you asked for it. MDN's autoplay guide walks through the pattern and the older behaviour of browsers that ignore the promise. The same reasoning applies to the Web Audio API, where an AudioContext created before any interaction starts suspended.

Silent autoplay or click-to-play?

Silent autoplay

  • Works everywhere as a preview or ambient visual
  • Good for product loops, backgrounds and short demonstrations
  • Must be pausable and should respect reduced-motion
  • Costs bandwidth for viewers who never wanted it

Click-to-play

  • Sound is guaranteed once playing, because the click is the gesture
  • Right for anything with speech, music or a narrative
  • No policy differences between browsers to worry about
  • Needs a strong poster frame to earn the click

Patterns that behave the same in every browser

  • A muted, looping clip with ?autoplay=1&muted=1&loop=1 as a visual header, with a visible pause control. Keep the loop to a few seconds: cut it with the free trim tool and shrink it with the video compressor before you upload it.
  • A poster with a play button for talks, tutorials and anything with dialogue; sound follows the click.
  • A muted autoplay preview that switches to a full, audible video when clicked, with the click also acting as the browser's user gesture.
  • A deep link with ?t= for reference pages, where the viewer's click on the link into the page is not enough on its own, so the video waits for play.

What autoplay is for

Used well, silent autoplay is a preview: it shows a viewer what they would get, and the click confirms interest. Used badly, it is a way of making a page feel alive at the cost of the viewer's attention and data. The features guide covers what makes the click worth it once it comes, and the analytics guide explains why autoplayed views distort watch-time figures. For sizing a looping header clip, see responsive video embeds. The embed guide has the full parameter reference.

Frequently asked questions

Why does my embed autoplay with sound for me but not for visitors?

Chrome keeps a Media Engagement Index for each site you use, and a site where you frequently play video with sound earns audible autoplay for you. Visitors who have never interacted with your site do not have that history, so they get the default: muted or nothing. Test in a private window to see what a first-time visitor sees.

Can I get around the block with a script that clicks play?

No. Browsers count only real user gestures such as a click, tap or key press, and they ignore synthetic events dispatched by scripts. Attempts to fake a gesture are treated as no gesture at all. The reliable path is muted autoplay for previews and a genuine click for sound, which is also what accessibility guidelines expect.

Does autoplay work when the video is set to loop?

Yes, under the same rules. A muted, looping embed with autoplay=1, muted=1 and loop=1 starts silently and repeats in every current browser. Provide a way to pause it. Under WCAG 2.2.2, looping motion that runs longer than five seconds must be stoppable. Viewers with reduced-motion preferences may not want it at all.

Will autoplay use viewers' mobile data?

Yes. An autoplaying embed streams from the moment it starts, and adaptive streaming will raise the quality as bandwidth allows. Keep autoplay to short clips, avoid autoplaying more than one video on a page, and consider click-to-play on pages where most traffic is mobile. Some browsers suppress autoplay when a data-saver or low-power setting is on.

Sources

autoplaybrowser policymutedaccessibilityembed parameters

Related guides