👀 Live Preview
An <object> with standby (browsers may not show the message):
Modern browsers usually render the object directly without displaying the standby text.

The standby attribute is used with the <object> element. It was originally meant to display a short text message while embedded content (such as a plugin, document, or media file) is loading. Although it is obsolete and not reliably supported in modern browsers, understanding it helps when reading legacy HTML or maintaining older sites.
For new projects, use JavaScript, CSS, and accessible loading indicators instead of relying on standby.
Only element.
While loading.
Legacy attr.
Modern pattern.
Accessible UI.
Object body.
standbyThe standby attribute was designed to improve perceived performance by showing a message such as “Loading, please wait…” while an embedded <object> fetched its resource. In the era of Flash and other plugins, this gave users feedback that content was on the way.
Today, native HTML elements like <video>, <iframe>, and <img> cover most embedding needs, and loading states are handled with standard UI patterns rather than the standby attribute.
The WHATWG HTML specification lists standby as obsolete. Browsers may ignore it. Do not use it in new code—prefer JavaScript loading messages with role="status" and aria-live="polite".
Set standby to a plain-text message on <object>:
<object
data="document.pdf"
type="application/pdf"
standby="Loading, please wait...">
<p>Your browser does not support embedded objects.</p>
</object><object>.data and type on the same element.<object> shows if embedding fails—separate from standby.HTMLObjectElement.standby.The standby attribute accepts a string value—the text message to display while the object loads:
standby="Loading, please wait..." — Generic loading hint.standby="Video is loading..." — Context-specific message.standby="Fetching document..." — PDF or file embed.<object data="chart.svg" type="image/svg+xml" standby="Loading chart...">
<p>Chart unavailable.</p>
</object>In theory, the browser would show the standby string in the object’s area until the resource in data finished loading. In practice, modern browsers typically skip this step and either show nothing extra or jump straight to the loaded content or fallback markup.
| Topic | Detail | Example |
|---|---|---|
| Element | <object> only | Embedded resource |
| Value | Plain text string | "Loading..." |
| Status | Obsolete | Not reliable today |
| Modern fix | JS + ARIA loading UI | role="status" |
| JavaScript | object.standby | Reflects attribute |
| Fallback | Inner HTML | When embed fails |
| Element | Supported? | Notes |
|---|---|---|
<object> | Yes (defined) | Only element with standby |
<iframe> | No | Use loading UI outside frame |
<img>, <video> | No | Different loading models |
<embed> | No | Void element, no standby |
standby vs JavaScript loading UI| Approach | Pros | Cons |
|---|---|---|
standby | Simple HTML attribute | Obsolete, ignored by browsers |
| JS + CSS message | Full control, styled UI | Requires script |
aria-live | Screen reader friendly | Needs markup pattern |
| Native lazy loading | loading="lazy" on img/iframe | Not for object standby text |
Legacy standby on object, a modern JavaScript loading pattern, and dynamic object.standby.
An <object> with standby (browsers may not show the message):
Modern browsers usually render the object directly without displaying the standby text.
Basic syntax with a loading message string:
<object data="example.svg" type="image/svg+xml" standby="Loading, please wait...">
<p>Your browser does not support embedded objects.</p>
</object>Full HTML document embedding media with standby (legacy pattern):
<object data="example-video.mp4" type="video/mp4" standby="Video is loading...">
<p>Your browser does not support embedded videos.</p>
</object>For video today, use <video controls> instead of <object>. The example above shows historical syntax only.
The standby string was meant to appear in the object box during fetch. Because support is gone, prefer <video> with native controls or a JavaScript loader.
A modern loading message pattern (recommended replacement):
<div id="loadingMessage" role="status" aria-live="polite">Loading content...</div>
<object id="dynamicObject" data="" type="image/svg+xml"></object>
<script>
var msg = document.getElementById("loadingMessage");
var obj = document.getElementById("dynamicObject");
msg.hidden = false;
obj.data = "chart.svg";
obj.addEventListener("load", function () { msg.hidden = true; });
</script>In this script, a loading message is shown when content starts loading and hidden after the load event. This achieves what standby was meant to do, with full browser support and accessibility.
role="status" and aria-live="polite".<object> when embedding fails.standby string.
object resource.
Intended UX flow.
Modern loading UI.
The standby attribute is obsolete and effectively unsupported in modern browsers. Treat it as historical documentation only.
Modern browsers ignore standby. Use JavaScript loading patterns for new work.
Bottom line: Learn it for legacy code; use JavaScript + ARIA for loading messages in new projects.
role="status" and aria-live="polite" for accessibility<video>, <iframe>, or <img> over object when possible<object>standby in production UXobject.onload fires for all resource typesobject for video when video sufficesThe standby attribute was designed to show a message while <object> content loads. While not commonly used today, understanding it helps when reading legacy HTML and appreciating how loading UX has evolved.
In modern web development, achieve the same goal with JavaScript, CSS, and accessible live regions. That gives you better compatibility, styling control, and support across all browsers.
standbyBookmark these when you encounter legacy embeds.
String message
PurposeOne element
ScopeNot reliable
StatusModern fix
ReplaceAccessible
A11yobject element’s resource loads.<object> element.role="status" for screen readers.object.standby, but it rarely affects what users see. Prefer a separate loading element.Practice the JavaScript loading pattern that replaces obsolete standby.
5 people found this page helpful