You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
description: "HTML attributes that provide accessibility information to assistive technologies"
4
+
---
5
+
6
+
# ARIA Attributes
7
+
8
+
ARIA (Accessible Rich Internet Applications) attributes are HTML attributes that provide additional information about web content and UI components to assistive technologies, such as screen readers. They help make web applications more accessible to users with disabilities.
9
+
10
+
## Common ARIA Attributes
11
+
12
+
-`aria-label`: Provides a text label for elements
13
+
-`aria-current`: Indicates the current item in a set
14
+
-`aria-expanded`: Shows if an expandable element is open
15
+
-`aria-hidden`: Hides elements from assistive technologies
Copy file name to clipboardExpand all lines: content/en/glossary/pagination.mdx
+25-3Lines changed: 25 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
title: "Pagination"
3
-
description: "A navigation pattern that divides content into separate pages, allowing users to browse through large sets of data or content in manageable chunks."
3
+
description: "A navigation pattern that divides content into separate pagesto improve usability and performance"
@@ -18,6 +18,28 @@ import { GlossaryStructuredData } from "@app/_components/glossary/structured-dat
18
18
19
19
# Pagination
20
20
21
-
## Definition
21
+
Pagination is a fundamental user interface pattern that divides large sets of content into smaller, more manageable chunks called "pages". This pattern helps users navigate through extensive collections of data, such as search results, product listings, or blog posts.
22
22
23
-
Pagination is a user interface pattern that breaks down large sets of content into smaller, more manageable pages that can be accessed through navigation controls. It helps users navigate through extensive content while maintaining performance and usability.
description: "A technique that loads content gradually to improve initial page load times and user experience"
4
+
---
5
+
6
+
# Progressive Loading
7
+
8
+
Progressive Loading is a performance optimization technique that loads content and resources gradually rather than all at once. This approach improves initial page load times and provides a better user experience, especially for users with slower internet connections.
9
+
10
+
## Key Concepts
11
+
12
+
- Content is loaded in stages or chunks
13
+
- Initial load focuses on essential content
14
+
- Additional content loads as needed
15
+
- Can be triggered by user actions or automatically
16
+
17
+
## Common Applications
18
+
19
+
- Image loading (thumbnails before full resolution)
description: "HTML elements that carry meaning about their content structure and purpose"
4
+
---
5
+
6
+
# Semantic HTML
7
+
8
+
Semantic HTML refers to using HTML elements that clearly describe their meaning and purpose, rather than just their presentation. This practice improves accessibility, SEO, and code maintainability by providing clear structural information about the content.
Copy file name to clipboardExpand all lines: content/en/patterns/navigation/pagination.mdx
+22-21Lines changed: 22 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,7 +16,7 @@ import { StepsPagination } from "@app/_components/seo/steps-pagination.tsx";
16
16
17
17
## Overview
18
18
19
-
**Pagination** is a navigation pattern used to divide large collections of content into manageable chunks or pages.
19
+
**[Pagination](/glossary/pagination)** is a navigation pattern used to divide large collections of content into manageable chunks or pages.
20
20
This helps users to navigate through data sets, search results, or product listings without overwhelming the page with too much information at once.
21
21
22
22
While pagination is a common and effective pattern, it's important to consider alternatives like [infinite scroll](/patterns/navigation/infinite-scroll) or ["Load More"](/patterns/navigation/load-more) buttons for certain types of content. The choice between pagination and infinite scroll depends on factors such as the nature of the content, user behavior, and the goals of the interface.
@@ -214,18 +214,18 @@ flowchart TB
214
214
215
215
#### Too Many Pages (No Page Limiting)
216
216
217
-
**❌ What’s Wrong?**
217
+
**❌ What's Wrong?**
218
218
219
219
Users get overwhelmed if there are **dozens of pages** to click through, making it hard to find relevant content.
220
220
221
221
**How to Fix It?**
222
-
Consider using **“Load More”** or **infinite scroll** if the content is suited to continuous exploration. If pagination is necessary, cap the total pages or provide filters to reduce results.
222
+
Consider using **"Load More"** or **infinite scroll** if the content is suited to continuous exploration. If pagination is necessary, cap the total pages or provide filters to reduce results.
223
223
224
224
---
225
225
226
226
#### Hiding Pagination Controls on Mobile
227
227
228
-
**❌ What’s Wrong?**
228
+
**❌ What's Wrong?**
229
229
230
230
Some designs remove pagination on smaller screens, forcing mobile users to scroll endlessly or guess how to navigate deeper pages.
231
231
@@ -236,7 +236,7 @@ Use a **compact pagination menu** (e.g., next/previous buttons or a limited set
236
236
237
237
#### Not Remembering the Last Page
238
238
239
-
**❌ What’s Wrong?**
239
+
**❌ What's Wrong?**
240
240
241
241
When users navigate away and come back, they lose track of which page they were on, leading to frustration and repetitive browsing.
242
242
@@ -247,7 +247,7 @@ Store pagination state in the **URL (e.g., `?page=2`)** or in session/local stor
247
247
248
248
#### Inconsistent Page Numbers (Jumping Pages)
249
249
250
-
**❌ What’s Wrong?**
250
+
**❌ What's Wrong?**
251
251
252
252
Some pagination systems remove or rearrange pages based on dynamic data, confusing users who rely on consistent numbering.
253
253
@@ -258,9 +258,9 @@ Maintain a **stable page structure**—if new items appear, consider adding them
258
258
259
259
#### No Keyboard Accessibility (Accessibility)
260
260
261
-
**❌ What’s Wrong?**
261
+
**❌ What's Wrong?**
262
262
263
-
If pagination links or buttons aren’t keyboard-focusable, users relying on the keyboard can’t move between pages effectively.
263
+
If pagination links or buttons aren't keyboard-focusable, users relying on the keyboard can't move between pages effectively.
264
264
265
265
**How to Fix It?**
266
266
Use proper interactive elements (`<button>`, `<a href>`). Confirm `Tab` navigation works for each link or control, and that pressing `Enter` or `Space` actually triggers page changes.
@@ -269,34 +269,34 @@ Use proper interactive elements (`<button>`, `<a href>`). Confirm `Tab` navigati
269
269
270
270
#### Poorly Labeled Page Links (Accessibility)
271
271
272
-
**❌ What’s Wrong?**
272
+
**❌ What's Wrong?**
273
273
274
-
Screen readers can’t convey page numbers or next/previous actions if the links have generic text like “...” or “Page.”
274
+
Screen readers can't convey page numbers or next/previous actions if the links have generic text like "..." or "Page."
275
275
276
276
**How to Fix It?**
277
-
Add `aria-label` attributes (e.g., `aria-label="Go to page 2"`) or text that clearly states each page’s purpose. For “Next” and “Previous,” label them explicitly (e.g., `aria-label="Go to next page"`).
277
+
Add `aria-label` attributes (e.g., `aria-label="Go to page 2"`) or text that clearly states each page's purpose. For "Next" and "Previous," label them explicitly (e.g., `aria-label="Go to next page"`).
278
278
279
279
---
280
280
281
281
#### No Visible Focus Indicator (Accessibility)
282
282
283
-
**❌ What’s Wrong?**
283
+
**❌ What's Wrong?**
284
284
285
-
Users can’t see where their keyboard focus is if the pagination links have no visible outline or highlight.
285
+
Users can't see where their keyboard focus is if the pagination links have no visible outline or highlight.
286
286
287
287
**How to Fix It?**
288
-
Include a **high-contrast focus style** (outline, underline, etc.) so it’s obvious which page or button is selected or about to be selected.
288
+
Include a **high-contrast focus style** (outline, underline, etc.) so it's obvious which page or button is selected or about to be selected.
289
289
290
290
---
291
291
292
292
#### Unclear Feedback After Page Selection (Accessibility)
293
293
294
-
**❌ What’s Wrong?**
294
+
**❌ What's Wrong?**
295
295
296
296
When users click a pagination link, especially if the new page loads asynchronously, they might not realize the content has updated.
297
297
298
298
**How to Fix It?**
299
-
Use an **ARIA live region** or a brief status announcement (e.g., “Page 2 loaded”) so screen reader users (and everyone else) know new content has appeared.
299
+
Use an **ARIA live region** or a brief status announcement (e.g., "Page 2 loaded") so screen reader users (and everyone else) know new content has appeared.
300
300
301
301
## Micro-Interactions & Animations
302
302
@@ -323,7 +323,7 @@ When building pagination, consider these specific, purpose-driven animations:
323
323
-**Timing:** Transition the content opacity over approximately 250ms to ensure a smooth change without distracting from the overall experience.
324
324
325
325
-**Reduced Motion Consideration:**
326
-
-**Implementation:** Always check for the user’s motion preferences (e.g., via the `prefers-reduced-motion` media query) and disable or minimize animations accordingly to ensure accessibility.
326
+
-**Implementation:** Always check for the user's motion preferences (e.g., via the `prefers-reduced-motion` media query) and disable or minimize animations accordingly to ensure accessibility.
327
327
328
328
These precise animations provide just enough feedback to guide user interactions and enhance the overall feel of your pagination component without overwhelming the interface.
329
329
@@ -344,11 +344,11 @@ Each pagination interaction provides valuable insights into user behavior. Below
344
344
|`pagination.first_click`| When a user clicks the first page button (if available). | Measures how often users return to the beginning. |
345
345
|`pagination.last_click`| When a user clicks the last page button (if available). | Indicates if users want to skip directly to the end. |
346
346
|`pagination.page_load`| When a new paginated page loads (via user interaction or auto-pagination). | Helps measure engagement depth. |
347
-
|`pagination.scroll_usage`| If infinite scrolling is enabled, tracks when users reach a pagination trigger (e.g., “Load More” button). | Helps compare pagination click interactions vs. scrolling behavior. |
347
+
|`pagination.scroll_usage`| If infinite scrolling is enabled, tracks when users reach a pagination trigger (e.g., "Load More" button). | Helps compare pagination click interactions vs. scrolling behavior. |
348
348
349
349
### Event Payload Structure
350
350
351
-
To ensure consistent tracking, here’s a recommended event format:
351
+
To ensure consistent tracking, here's a recommended event format:
352
352
353
353
```json
354
354
{
@@ -486,7 +486,7 @@ By continuously monitoring these metrics, we can refine pagination usability, en
0 commit comments