HTML List Elements — Order, Numbering, and Accessibility Mapping
Technical Summary
ol represents items whose order carries meaning; ul represents items whose order does not materially change the meaning. Each item is an li. The numbering algorithm depends on ol, start, reversed, and li[value]. This Topic records HTML semantics, CSS markers, HTML-AAM role mappings, and browser Accessibility Tree observations as separate evidence.
The scope is ol, ul, and li. The command list menu and the term-description groups in dl have related but distinct content models.
Definitions and selection criteria
The HTML Living Standard §4.4.5–4.4.8 (30 October 2026) defines ol for a group where order matters, ul for a group where it does not, and li for an item. Choose by whether changing the order changes the meaning, not by whether the browser draws numbers or dots.
ol: the order is information, as in steps or a ranking.ul: the order is not information, as in a set of tools or ingredients.li: one item in its parent list. An item owned by anolhas an ordinal value, the number that represents its position in the sequence.
A visible number is a presentation of an ordered list's ordinal values; it is separate from the list's meaning. Changing the marker to letters or Roman numerals does not change the fact that item order matters.
Content models, nesting, and numbering
The children of ol and ul are li and script-supporting elements. The content model of li is flow content. A nested list belongs inside its parent li. In text/html, an li end tag may be omitted immediately before another li, or when there is no more content in its parent.
ol[start] sets the first ordinal value. The boolean reversed attribute decreases ordinal values. If reversed is present and start is absent, the starting value is derived from the number of items owned by that list. li[value] sets an item's ordinal value and affects the calculation for following items. reversed does not reverse the DOM order of the items.
HTMLOListElement.start, reversed, and type, and HTMLLIElement.value are exposed through DOM interfaces. An IDL attribute's reflected value and the ordinal value shown by a marker are different concepts. li.value reflects its content attribute.
CSS markers and list owner
ol[type] can select marker styles such as decimal numbers, letters, or Roman numerals. CSS properties such as list-style-type can also style markers. CSS that changes a marker's appearance does not choose between the HTML meanings of ol and ul.
The CSS Lists Module's list-owner algorithm considers rendered elements and computed display: list-item, not only HTML parent-child relationships. The HTML parent list of an li and a CSS marker's list owner can therefore be different concepts. The selected WPT files in this run use testharness; the list-owner reftest set was not run.
HTML-AAM mappings
The HTML-AAM 1.0 Working Draft (26 October 2026) maps ol and ul to the WAI-ARIA list role. It maps an li owned by an ol, ul, or menu to listitem. The list-item mapping exposes the number of items and the item's position within its list through aria-setsize and aria-posinset. In some conditions, an li that is not an accessibility child of a list is mapped to generic.
In the 1 November 2026 Chrome 156 observation, HTML ol and ul returned the list role, and their li items returned listitem. Nested items had level=2. A list-outside li also returned listitem, while the HTML-AAM Working Draft calls for generic in that condition. CDP did not return properties corresponding to aria-setsize or aria-posinset for the sampled items. This is an observed difference between the draft and Chrome's browser tree.
The Implementation Evidence below records the Accessibility Tree returned by Chrome DevTools Protocol (CDP). A browser Accessibility Tree is not the same measurement as Windows UI Automation or the speech output of a screen reader. Other browsers or operating systems may return different results.
Facts and Evidence
Normative HTML claims, selected WPT assertions, HTML-AAM mappings, and Chrome measurements are recorded separately. A WPT pass count applies only to the assertions in those files; it does not establish conformance across all HTML or other browsers.
| Type | Fact / Claim | Scope / condition | Evidence |
|---|---|---|---|
| SPEC | ol represents items whose order matters; ul represents items whose order does not. Marker CSS does not replace the meaning of the HTML element. | HTML Living Standard §4.4.5–4.4.6. Author-selected meaning is distinct from browser presentation. | HTML Standard: ol · HTML Standard: ul |
| SPEC | ol[start], boolean reversed, and li[value] affect ordinal values. reversed does not reorder the list's DOM items. | HTML Standard starting-value and ordinal-value algorithms and IDL reflection. Displayed markers and reflected IDL values are distinct. | HTML Standard: ol numbering · HTML Standard: li value |
| SPEC | ol / ul map to the list role; their owned li elements map to listitem and expose list size and position. | HTML-AAM 1.0 Working Draft, 26 October 2026. Normative mapping is distinct from an individual browser tree. | HTML-AAM: ol · HTML-AAM: ul · HTML-AAM: li |
| WPT | Selected WPTs cover role mappings, DOM interfaces, and reflection of start, reversed, and value. Results are recorded in Implementation Evidence. | Pinned WPT revision is recorded. Testharness and a CDP helper were used; this is distinct from official wptrunner / WebDriver execution. | HTML-AAM roles · grouping-ol · grouping-ul · grouping-li |
Evidence sources
- HTML Living Standard §4.4.5: ol — definition, content model, numbering attributes, and
HTMLOListElement. - HTML Living Standard §4.4.6: ul — unordered-list meaning and child requirements.
- HTML Living Standard §4.4.8: li — item relationships,
value, ordinal values, and the list-owner algorithm. - HTML-AAM 1.0 Working Draft: ol, ul, and li — role mappings and platform accessibility API rules.
- CSS Lists and Counters Module Level 3 — list markers, list styling, and CSS list-item concepts.
- Web Platform Tests at pinned revision — exact revision used by the selected files linked above.
Implementation Evidence
Browser DOM and Chrome Accessibility Tree measurements use a dedicated fixture. The four Yugien / Atlas pages are checked for links, metadata, responsive widths, themes, and search. Selected WPT files use the pinned testharness; the HTML-AAM role test uses a Playwright / CDP adapter. This is not the official wptrunner / WebDriver launcher.
Reproducible record: The fixture, scripts, and JSON outputs are in build-config/yugien/research-results/list-v1/. The evidence summary is docs/atlas/list-evidence-2026-11-01.md.
| Type | Reproduced scope | Recorded conditions | Status |
|---|---|---|---|
| IMPL | HTML lists, shared navigation, search and locale links, responsive layout, themes, DOM, and Chrome Accessibility Tree across four Japanese and English Yugien / Atlas pages | 2026-11-01 / Windows 11 Pro build 26300 / Google Chrome 156.0.8078.74 / Playwright 1.57.0 / DPR 1 / local loopback. All four pages returned HTTP 200. Checked canonical and ja/en hreflang, shared navigation, search, and locale links. No broken internal routes or fragments, console errors, or local resource failures. No document-level horizontal overflow at 320 / 390 / 768 / 1280 / 1920 CSS px. The two Atlas tables used named, keyboard-focusable role=region wrappers with horizontal scrolling at 320 / 390px (608px table in 286 / 356px wrappers); both fit their 670px wrappers at 768px and above. Checked system light / dark and explicit light / dark on each page. Atlas Japanese search for 箇条書き and Yugien English search for ordered list found the target and alternate-locale page. The fixture passed 14/14 checks. Details and JSON reports: build-config/yugien/research-results/list-v1/. |
Partial observation (Chrome 156 / four pages / five widths / three themes) |
| WPT | Selected testharness tests for HTML-AAM roles, DOM interfaces, and ol / ul / li | 2026-11-01 / Google Chrome 156.0.8078.74. html-aam/roles.html 60/60, grouping-ol.html 25/25, grouping-ul.html 1/1, and grouping-li.html 10/10. Total: 96/96 passed, no failures. Ran the local testharness; the role test used a Playwright / CDP helper. This was not an official wptrunner / WebDriver run. The four selected files and report are in build-config/yugien/research-results/list-v1/.WPT version used: |
96/96 passed (four selected files / one browser) |
| AAM | Chrome Accessibility Tree roles for lists and list items in the fixture and four pages, nested levels, CSS display:list-item, and an li outside a list | 2026-11-01 / Google Chrome 156.0.8078.74 / Windows 11 Pro build 26300. Measured with CDP Accessibility.getPartialAXTree. Native ol / ul returned list; owned li returned listitem. Nested items had level=2. A div with display: list-item also returned listitem. An li outside a list returned listitem, differing from generic in the HTML-AAM Working Draft of 26 October 2026. The sampled CDP properties did not include values corresponding to aria-setsize / aria-posinset. OS accessibility APIs, other browsers, assistive-technology speech, and braille were not measured. Details: docs/atlas/list-evidence-2026-11-01.md. |
Partial observation with a mapping difference (Chrome AX Tree / one environment) |
Coverage and open issues
- Standards reviewedMeaning, content models, ordinal values, DOM interfaces, and HTML-AAM role mappings for
ol,ul, andli - Selected measurements onlyLocal fixture, four Japanese and English pages, selected WPT files, and Chrome Accessibility Tree. See the Evidence rows for conditions.
- Observed AAM differenceChrome returned
listitemfor a list-outsideli; the cited HTML-AAM draft saysgeneric. CDP did not return set-size or position properties for sampled list items. - Not measuredFirefox / Safari comparisons, official
wptrunner/ WebDriver runs, all WPTs, Windows UI Automation / IAccessible2 / macOS AX / ATK, speech, and braille. - Related boundariesThe distinct content models of
menuanddl, and every condition in CSS list-owner calculation, are outside full coverage. - Review not completedExpert-gap Review and review with multiple assistive technologies.
Results from one Chromium environment are not generalized to every browser, OS accessibility API, or assistive technology. The cited HTML-AAM version is a Working Draft and may change.
Related surfaces
For beginner-friendly examples and selection guidance, see Yugien's HTML list guide. The relation between link groups and navigation landmarks is covered in the nav Topic; heading levels are covered in the heading Topic. Term-description groups in dl are outside this Topic.