**`<param>`** is a void element, always nested inside `<object>`, providing a `name`/`value` pair the embedded plugin reads as configuration — historically this was almost entirely used to configure Adobe Flash movies (autoplay, loop, quality settings) before Flash was discontinued across all major browsers in 2020-2021. With Flash and most other plugin-based embeds gone, `<param>` has very little practical use in modern web development, though it remains part of the HTML spec for the rare legacy `<object>`-based embed that still relies on it.
1Understanding <param>
`<param>` is a void element, always nested inside <object>, providing a name/value pair the embedded plugin reads as configuration — historically this was almost entirely used to configure Adobe Flash movies (autoplay, loop, quality settings) before Flash was discontinued across all major browsers in 2020-2021. With Flash and most other plugin-based embeds gone, <param> has very little practical use in modern web development, though it remains part of the HTML spec for the rare legacy <object>-based embed that still relies on it.
Since Flash's end-of-life, <param> is functionally obsolete for the vast majority of real-world use — you're extremely unlikely to need it in new code today.
<!-- Legacy Flash configuration (non-functional in any modern browser) -->
<object data="banner.swf" type="application/x-shockwave-flash">
<param name="loop" value="true">
<param name="quality" value="high">
</object>2Practical Example
Here is a real-world application of <param> showing how it is used in production HTML.
<!-- Modern replacement: HTML5 video, no <param> needed -->
<video loop>
<source src="banner.mp4" type="video/mp4">
</video>3Best Practices
Follow these guidelines when working with <param>:
1. Avoid <param> in new code — the plugin ecosystem it configured (Flash and similar) no longer exists in browsers
2. If maintaining legacy code with <param>, understand it's likely tied to a Flash movie that no longer functions in any modern browser
3. Migrate any legacy Flash-based <object>/<param> content to modern HTML5 video/audio/canvas equivalents
Tip: Since Flash's end-of-life, <param> is functionally obsolete for the vast majority of real-world use — you're extremely unlikely to need it in new code today.
<!-- Legacy Flash configuration (non-functional in any modern browser) -->
<object data="banner.swf" type="application/x-shockwave-flash">
<param name="loop" value="true">
<param name="quality" value="high">
</object>