Skip to main content
HTML Validation

Bad value “text” for attribute “role” on element “span”.

About This HTML Issue

A span element cannot have role="text" because text is not a valid WAI-ARIA role.

The role attribute accepts only values defined in the WAI-ARIA specification. Common valid roles include button, alert, status, img, presentation, and many others, but text is not among them.

The non-standard role="text" was sometimes used as a workaround to prevent screen readers like VoiceOver from splitting inline elements into separate announcements. For example, when a span wraps mixed text and inline elements, some screen readers read each child element as a separate item. Using role="text" forced them to treat the content as a single text run. However, this was never part of the ARIA spec and causes a validation error.

If the goal is to group inline content so screen readers announce it as one continuous phrase, use role="group" with an aria-label that provides the full text. Alternatively, if the span has no semantic purpose, remove the role attribute entirely.

HTML examples

Invalid usage

<p>
  <span role="text">
    Sale price: <strong>$49.99</strong>
  </span>
</p>

Valid alternatives

Remove the role if it serves no accessibility purpose:

<p>
  <span>
    Sale price: <strong>$49.99</strong>
  </span>
</p>

Or use role="group" with aria-label to ensure screen readers announce the content as a single phrase:

<p>
  <span role="group" aria-label="Sale price: $49.99">
    Sale price: <strong>$49.99</strong>
  </span>
</p>

Find issues like this automatically

Rocket Validator scans thousands of pages in seconds, detecting HTML issues across your entire site.

Help us improve our guides

Was this guide helpful?
🌍 Trusted by teams worldwide

Validate at scale.
Ship accessible websites, faster.

Automated HTML & accessibility validation for large sites. Check thousands of pages against WCAG guidelines and W3C standards in minutes, not days.

Scheduled Reports
API Access
Open Source Standards
$7 / 7 days

Pro Trial

Full Pro access. Cancel anytime.

Start Pro Trial →

Join teams across 40+ countries