# The “classid” attribute on the “object” element is obsolete. Use the “data” and “type” attributes to invoke plugins.

> Canonical HTML version: https://rocketvalidator.com/html-validation/the-classid-attribute-on-the-object-element-is-obsolete-use-the-data-and-type-attributes-to-invoke-plugins
> Attribution: Rocket Validator (https://rocketvalidator.com)
> License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

The `classid` attribute told the browser which plugin or ActiveX control should run an `<object>`, and HTML has dropped it: the resource URL goes in `data` and its MIME type in `type`.

Its value was usually `clsid:` followed by the ID of an ActiveX control, and only Internet Explorer could load those. A typical one is `clsid:D27CDB6E-AE6D-11cf-96B8-444553540000`, the Flash Player control. Flash embed code usually pairs it with a `codebase` attribute pointing to the Flash installer, a list of `<param>` elements naming the `.swf` file and its settings, and a nested `<embed>` for other browsers.

Browsers no longer look at `classid`. An `<object>` loads the URL in its `data` attribute, and when `data` is missing it renders the content between its tags instead. For a Flash embed, that content is the `<param>` elements, which display nothing, and the `<embed>`, whose `.swf` won't play. The validator also reports the missing `data` as an error next to this warning.

The message still mentions plugins, but current browsers don't run any, and Adobe ended support for Flash Player on December 31, 2020. Moving the `.swf` URL into `data` with `type="application/x-shockwave-flash"` clears the warning, but the box on the page stays empty. Replace the content itself: a video file goes in `<video>`, a video on a hosting service goes in that service's `<iframe>` player, and a banner can become an `<img>` or a short video. Then delete the old `<object>`, its `<param>` and `<embed>` elements included.

When the `<object>` holds a file that browsers handle without a plugin, such as a PDF or an SVG image, keep the element and remove `classid`. Point `data` at the file and set `type` to its MIME type (`application/pdf` or `image/svg+xml`). Anything inside the element, like a download link, shows up when the browser can't display the file.

## Examples

### Invalid: a Flash embed

```html
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="640" height="360">
  <param name="movie" value="intro.swf">
  <embed src="intro.swf" type="application/x-shockwave-flash" width="640" height="360">
</object>
```

### Valid: the Flash movie converted to a video

```html
<video src="intro.mp4" controls width="640" height="360"></video>
```

### Invalid: `classid` left on a PDF embed

```html
<object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" data="report.pdf" width="600" height="400">
  <a href="report.pdf">Download the report (PDF)</a>
</object>
```

### Valid: `data` and `type` only

```html
<object data="report.pdf" type="application/pdf" width="600" height="400">
  <a href="report.pdf">Download the report (PDF)</a>
</object>
```
