Pagination
Pagination is a type of navigation menu, typically displayed as a row of numbered links, that helps users quickly navigate content that is split into sequential pages.
The term "pagination" comes from the verb to "paginate", which means to break content over numbered pages. It was typically used in publishing and book binding, but has made its way onto the web.
Pagination patterns often include:
- Numbered links that take users directly to a page
- A visual indicator for the current page
- Truncation when there are too many pages to show them all
- "Previous" and "Next" links to move the current page forwards or backwards
Example
What problems it solves
The pagination component divides content across multiple pages. It offers a user-friendly way to present large datasets in manageable chunks, reducing cognitive load. It also helps with performance by improving load speeds and reducing rendering lag.
When to use it
Do use the pagination component if:
- You need to display large datasets such as blog post listings, e-commerce products or search results
- The user has enough time to browse the dataset
- The dataset is not part of a linear flow or step-by-step process
When not to use it
Do not use the pagination component if:
- A manageable amount of content can be displayed on a single screen
- Finding the information in the dataset is time sensitive
- The dataset is part of a linear workflow or step-by-step process, as it can cause distractions and disrupt the intended flow
Where to use it
Pagination components should be placed below the content they control. This creates a natural flow where the user browses content from top to bottom, then selects another page to display more content.
How it works
The pagination is basically just an ordered list of links with some additional semantics. The list uses a native <ol> element, but also includes the attribute role="list", due to Safari removing list semantics when the list marker is missing in the compatibility notes.
When there are more than ten pages, the pagination component will:
- Truncate one or more links
- Use the current page as the centre point for the truncation window
- Never truncate the first or last page
- Show "Previous" and/or "Next" links
Truncation
The truncation window is a sliding window which can only contain ten items. The first and last pages are always at the start and end, and the middle eight items are calculated forwards and backwards from the current page.
An ellipsis appears in place of the links which fall outside of the truncation window. It can appear in slot two, after the first page, and/or in slot nine, before the last page. This keeps the pages immediately before and after the current page visible.
Screen readers treat the ellipsis character as punctuation, and some, such as NVDA at its default punctuation level and TalkBack, do not announce it at all. So the character is hidden from screen readers, and visually hidden text alongside it reads "Ellipsis", which every screen reader announces.
Examples:
- [1] 2 3 4 5 6 7 8 … 13
- 1 … 4 5 [6] 7 8 9 … 13
- 1 … 6 7 8 9 10 11 12 [13]
Previous and Next links
The Previous link:
- Is not rendered when on the first page
- Links to the page immediately before the current page
The Next link:
- Is not rendered when on the last page
- Links to the page immediately after the current page
Assistive technology compatibility
This component has been tested with the following browsers and assistive technologies.
| Assistive technology | Result | Notes |
|---|---|---|
| Keyboard | No issues | No notes |
| Voice Access/Chrome 154.0.8/Windows 11 | No issues | No notes |
| JAWS 2026.2603.86/Chrome 154.0.8/Windows 11 | No issues | No notes |
| NVDA 2026.1.1/Firefox 157.0/Windows 11 | No issues | NVDA does not announce the elipses, but announces the visually hidden word as the workaround. |
| VoiceOver/Safari macOS Tahoe 26.6 | No issues | No notes |
| VoiceOver/Safari/iOS 26.0 | No issues | No notes |
| TalkBack/Chrome 154.0.8/Android 17 | No issues | TalkBack does not announce the elipses, but announces the visually hidden word as the workaround. |
| Windows Contrast themes | No issues | No notes |
| Windows Magnifier and/or Apple Zoom | No issues | No notes |
| Browser zoom | No issues | No notes |
| prefers-reduced-motion | Not applicable | There are no animations to reduce |
Last updated: 13 October 2026.