All WCAG criteria
WCAG 1.3.1 · PerceivableLevel A

1.3.1Info and Relationships

Information, structure, and relationships conveyed through presentation must be programmatically determined (in the code) or available in text.

Common failures

Patterns that fail this criterion.

  • 01Visual headings styled with `<div>` instead of `<h1>-<h6>`
  • 02Lists rendered with `<br>` separators instead of `<ul>/<ol>`
  • 03Tables without `<th>` scope attributes for header relationships
  • 04Form fields with placeholder-as-label (placeholder disappears on focus, no programmatic label)
  • 05Group of radio inputs without `<fieldset>` + `<legend>`
How to test

Testing approach: semi automated.

Automated catches missing labels, empty headings, table structure issues. Manual confirms visual-vs-semantic alignment (e.g. is this `<div>` actually used as a heading?).

axe-core rules

definition-listdlitemlistlistitemtable-fake-captionth-has-data-cellslabelform-field-multiple-labels
How to fix

Remediation steps.

  1. 1

    Use semantic HTML

    Headings = `<h1>`-`<h6>`, lists = `<ul>/<ol>`, tables = `<table>` with `<th scope="col"|"row">`, forms = `<label for>`.

  2. 2

    Group related fields

    Wrap radio/checkbox groups in `<fieldset>` with `<legend>` describing the group purpose.

  3. 3

    Where HTML semantics are insufficient

    Use ARIA carefully — `role="region"`, `aria-labelledby`, `aria-describedby` — but native HTML always first.

Scan for WCAG 1.3.1 on your site

Find every violation in 42 seconds.

AccessProof runs axe-core 4.9.1 against your site and flags every WCAG criterion with the offending element selector. WCAG 1.3.1 is one of 49 criteria we check on every scan.

Related criteria

Often appears with…

All 50 WCAG 2.1 Level A + AA success criteria explained.

View the full checklist