# Bad value “” for attribute “aria-describedby” on element “input”: An IDREFS value must contain at least one non-whitespace character.

> Canonical HTML version: https://rocketvalidator.com/html-validation/bad-value-for-attribute-aria-describedby-on-element-input-an-idrefs-value-must-contain-at-least-one-non-whitespace-character
> Attribution: Rocket Validator (https://rocketvalidator.com)
> License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

The `aria-describedby` attribute cannot be an empty string — it must either contain valid ID references or be removed entirely.

The `aria-describedby` attribute accepts one or more ID values (separated by spaces) that point to elements providing additional descriptive text for the current element. When a screen reader focuses on the element, it reads the content of the referenced elements to give the user more context.

Setting `aria-describedby=""` is invalid because the attribute expects at least one valid IDREF — a non-empty string that matches the `id` of another element in the page. An empty value doesn't reference anything and creates a validation error. If no description is needed, simply omit the attribute altogether.

This commonly happens when a template or JavaScript dynamically sets the attribute but provides an empty fallback value instead of removing the attribute entirely.

## Invalid Example

```html
<label for="email">Email</label>
<input type="email" id="email" aria-describedby="">
```

## Fixed Examples

If there is no description to reference, remove the attribute:

```html
<label for="email">Email</label>
<input type="email" id="email">
```

If a description exists, point to its `id`:

```html
<label for="email">Email</label>
<input type="email" id="email" aria-describedby="email-hint">
<p id="email-hint">We'll never share your email with anyone.</p>
```

If you're generating the attribute dynamically, make sure your code removes `aria-describedby` entirely rather than setting it to an empty string when no hint is available.
