Skip to main content
HTML Validation

Bad value “-1” for attribute “aria-setsize” on element “li”: Expected a digit but saw “-” instead.

About This HTML Issue

The aria-setsize attribute tells assistive technologies how many items exist in a set of related elements (such as list items or tree items). It is particularly useful when not all items in a set are present in the DOM — for example, in virtualized lists, paginated results, or lazy-loaded content. According to the WAI-ARIA 1.2 specification:

Authors MUST set the value of aria-setsize to an integer equal to the number of items in the set. If the total number of items is unknown, authors SHOULD set the value of aria-setsize to -1.

This means -1 is a specifically recommended value for cases where the total count of items is indeterminate. The W3C validator’s pattern matching expects only non-negative digits, so it rejects the leading - character. This is a known validator bug and does not reflect an actual problem with your HTML.

Why -1 matters for accessibility

When building interfaces with dynamic or partially loaded content, screen readers need to communicate the size of a set to users. If you have a list of search results but don’t know the total count, setting aria-setsize="-1" tells assistive technologies that the set size is unknown. Without this, a screen reader might announce incorrect or misleading information about how many items exist.

What you should do

Do not change your markup to work around this validator error. The value -1 is correct and serves an important accessibility purpose. Removing it or replacing it with an arbitrary positive number would degrade the experience for users of assistive technologies.

Examples

Valid usage that triggers the false positive

This markup is correct but will be flagged by the validator:

<ul>
  <li role="option" aria-setsize="-1" aria-posinset="1">Result A</li>
  <li role="option" aria-setsize="-1" aria-posinset="2">Result B</li>
  <li role="option" aria-setsize="-1" aria-posinset="3">Result C</li>
</ul>

Here, the total number of results is unknown (perhaps they are loaded on demand), so aria-setsize="-1" correctly signals this to assistive technologies.

Known set size (no validator error)

When the total number of items is known, use the actual count. This will not trigger the validator error:

<ul>
  <li role="option" aria-setsize="5" aria-posinset="1">Item 1</li>
  <li role="option" aria-setsize="5" aria-posinset="2">Item 2</li>
  <li role="option" aria-setsize="5" aria-posinset="3">Item 3</li>
</ul>

When aria-setsize is not needed

If all items in the set are present in the DOM, you don’t need aria-setsize at all — the browser can compute the set size automatically:

<ul role="listbox">
  <li role="option">Apple</li>
  <li role="option">Banana</li>
  <li role="option">Cherry</li>
</ul>

In summary, if you see this validator error and you’re intentionally using aria-setsize="-1" because the total item count is unknown, your code is correct. You can safely ignore this particular warning.

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?

Ready to validate your sites?
Start your free trial today.