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 |