# Element “meta” is missing one or more of the following attributes: “charset”, “content”, “http-equiv”, “itemprop”, “name”, “property”.

> Canonical HTML version: https://rocketvalidator.com/html-validation/element-meta-is-missing-one-or-more-of-the-following-attributes-charset-content-http-equiv-itemprop-name-property
> Attribution: Rocket Validator (https://rocketvalidator.com)
> License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

The `<meta>` element provides metadata about the HTML document — information that isn't displayed on the page but is used by browsers, search engines, and other web services. According to the HTML specification, a `<meta>` tag without any of the recognized attributes is meaningless. The validator flags this because a bare `<meta>` element (or one with only unrecognized attributes) provides no useful metadata and likely indicates an error or incomplete tag.

This issue commonly occurs when a `<meta>` tag is left empty by accident, when an attribute name is misspelled (e.g., `naem` instead of `name`), or when a required attribute is accidentally deleted during editing.

Most `<meta>` use cases fall into a few patterns, each requiring specific attribute combinations:

- **`charset`** — Used alone to declare the document's character encoding.
- **`name` + `content`** — Used together to define named metadata like descriptions, viewport settings, or author information.
- **`http-equiv` + `content`** — Used together to simulate an HTTP response header.
- **`property` + `content`** — Used together for Open Graph and similar RDFa-based metadata.
- **`itemprop` + `content`** — Used together for microdata annotations.

Note that `content` alone is not sufficient — it must be paired with `name`, `http-equiv`, `property`, or `itemprop` to have meaning.

## Examples

### Incorrect: bare `<meta>` tag with no attributes

This triggers the validation error because the `<meta>` element has no recognized attributes:

```html
<meta>
```

### Incorrect: misspelled attribute

A typo in the attribute name means the validator doesn't recognize it:

```html
<meta nane="description" content="An example page.">
```

### Incorrect: `content` without a pairing attribute

The `content` attribute alone is not enough — it needs `name`, `http-equiv`, `property`, or `itemprop`:

```html
<meta content="some value">
```

### Correct: character encoding with `charset`

```html
<meta charset="UTF-8">
```

### Correct: named metadata with `name` and `content`

```html
<meta name="description" content="A brief description of the webpage.">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="author" content="Jane Doe">
```

### Correct: HTTP-equivalent with `http-equiv` and `content`

```html
<meta http-equiv="X-UA-Compatible" content="IE=edge">
```

### Correct: Open Graph metadata with `property` and `content`

```html
<meta property="og:title" content="My Page Title">
<meta property="og:description" content="A summary of the page content.">
```

### Correct: microdata with `itemprop` and `content`

```html
<meta itemprop="name" content="Product Name">
```

### Full document example

```html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta name="description" content="A brief description of the webpage.">
  <meta property="og:title" content="My Page Title">
  <title>Example Page</title>
</head>
<body>
  <p>Hello, world!</p>
</body>
</html>
```

## How to fix

1. **Find the flagged `<meta>` tag** in your HTML source at the line number the validator reports.
2. **Check for typos** in attribute names — make sure `name`, `charset`, `http-equiv`, `property`, or `itemprop` is spelled correctly.
3. **Add the missing attribute.** Determine what the `<meta>` tag is supposed to do and add the appropriate attribute(s). If you can't determine its purpose, it may be safe to remove it entirely.
4. **Ensure proper pairing.** If you're using `content`, make sure it's paired with `name`, `http-equiv`, `property`, or `itemprop`. The `charset` attribute is the only one that works on its own without `content`.
