Information, structure, and relationships conveyed through presentation can be programmatically determined or are available in text.
Understanding Success Criterion 1.3.1: Info and Relationships by the W3C
Checklist – System Foundation
Content
| Test | Priority | Automated test? |
|---|---|---|
| Are inline elements (see list) marked up correctly? | Medium | Partial |
| Are lists marked up in <ol>, <ul>, or <dl> tags? | High | Partial |
| Are paragraphs in <p> tags? | High | Partial |
Iconography
Headings
| Test | Priority | Automated test? |
|---|---|---|
| Does the page have the correct hierarchical title/headings? | High | Partial |
| Are all headings marked in the correct heading tag? | High | Partial |
| Did you ensure that items that aren’t technically headings don’t use heading tags? | High | Partial |
Page Framework
Checklist – Components
Alerts and Messaging
| Test | Priority | Automated test? |
|---|---|---|
| Are alerts firing at a logical point in the flow to prevent errors? | High | None |
Breadcrumbs
| Test | Priority | Automated test? |
|---|---|---|
| Is the breadcrumb trail labeled correctly? | High | None |
| Is the breadcrumb trail identified with a <nav> tag and an aria label? | High | Partial |
| If the current page is a link, is it marked with aria-current=”page”? | High | None |
Buttons
| Test | Priority | Automated test? |
|---|---|---|
| Are all buttons coded as buttons? | High | None |
Cards
| Test | Priority | Automated test? |
|---|---|---|
| Is the card content marked up semantically as a list or other appropriate element? | High | None |
Dialogs
| Test | Priority | Automated test? |
|---|---|---|
| Is the dialog programmatically defined as a a dialog (role dialog, aria-modal, aria-labelledby)? | High | None |
| Does the dialog’s header have an ID associated with the aria-labelledby attribute? | None |
Forms
| Test | Priority | Automated test? |
|---|---|---|
| Are all form fields the correct form fields? | High | None |
| Are forms wrapped in <form> tags appropriately? | High | None |
| Do form fields have labels even if they’re in a larger component or data table? | High | None |
| Are required fields marked as part of the label? | High | None |
| Do logically-related controls (example: an address) have a fieldset and legend? | Medium |
Checkboxes and Radio Buttons
| Test | Priority | Automated test? |
|---|---|---|
| Do radio button sets and checkbox sets have a <fieldset> and <legend>? | High | None |
Compound form fields
| Test | Priority | Automated test? |
|---|---|---|
| Are compound form fields grouped with a role and label? | High | None |
| Do compound components get represented as a single item? | High | None |
Select menus
| Test | Priority | Automated test? |
|---|---|---|
| Do <select> menus with subgroups use the <optgroup> label? | High | None |
Global Header
| Test | Priority | Automated test? |
|---|---|---|
| Is the global navigation labeled correctly? | High | None |
| Is the global navigation identified with a <nav> tag and an aria label? | High | Partial |
Local Navigation
| Test | Priority | Automated test? |
|---|---|---|
| Is the local navigation labeled correctly? | High | None |
| Is the local navigation identified with a <nav> tag and an aria label? | High | Partial |
Menus
| Test | Priority | Automated test? |
|---|---|---|
| Is the menu trigger (button) labeled correctly? | High | None |
| Are the menu items labeled correctly? | High | Partial |
Tables
| Test | Priority | Automated test? |
|---|---|---|
| Are tables coded as <table> elements? | High | Partial |
| Does the table have a programmatically-associated caption or name? | Medium | Pending |
| Are table headers clear and coded as <th> elements? | High | Partial |
| Are table headers scoped properly? | High | None |
| Is table data clear and coded as <td> elements? | High | None |
| Did you avoid nesting tables? | High | None |
| Does a complex table have a summary? | High | None |
| Is the table sorted by default and logically? | High | None |
