Skip to main content
HTML Validation

The “rowgroup” role is unnecessary for element “tbody”.

About This HTML Issue

A <tbody> element already has the ARIA role rowgroup, so adding role="rowgroup" to it repeats what browsers and screen readers already know.

HTML gives each element a default ARIA role. Inside a <table>, a <tbody> is exposed to assistive technology as a group of rows with no extra markup, and <thead> and <tfoot> get the same rowgroup role. Writing role="rowgroup" by hand changes nothing for users and makes the markup harder to read.

This usually comes from tables pasted from online word processors or built by table plugins, which put an ARIA role on every part of the table. The rowgroup role is meant for tables built from generic elements such as <div>, where nothing else tells a screen reader how the rows are grouped. A native <tbody> doesn't need it, so remove the attribute. If the same table also has role="row" on its <tr> elements or roles on its cells, remove those as well.

Invalid example

<table>
  <thead>
    <tr>
      <th>Plan</th>
      <th>Price</th>
    </tr>
  </thead>
  <tbody role="rowgroup">
    <tr>
      <td>Basic</td>
      <td>$10</td>
    </tr>
    <tr>
      <td>Pro</td>
      <td>$25</td>
    </tr>
  </tbody>
</table>

Valid example

<table>
  <thead>
    <tr>
      <th>Plan</th>
      <th>Price</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Basic</td>
      <td>$10</td>
    </tr>
    <tr>
      <td>Pro</td>
      <td>$25</td>
    </tr>
  </tbody>
</table>

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
€5 / week

1K Weekly

1,000 monthly checks. Cancel anytime.

Get 1K Weekly →

Join teams across 40+ countries