{
  "_description": "Generated from data/ — edit the sources, not this file. The agent access guide explains the evidence boundary of every field.",
  "schemaVersion": "1.0.0",
  "kind": "entry",
  "locale": "en",
  "id": "infinite-scroll",
  "name": {
    "zh": "无限滚动",
    "en": "Infinite Scroll"
  },
  "page": "https://designvocabulary.com/en/entries/infinite-scroll/",
  "self": "https://designvocabulary.com/en/entries/infinite-scroll.json",
  "alternates": {
    "zh-CN": "https://designvocabulary.com/zh/entries/infinite-scroll.json",
    "en": "https://designvocabulary.com/en/entries/infinite-scroll.json"
  },
  "site": {
    "catalogSchemaVersion": "0.1.0",
    "entries": 158,
    "index": "https://designvocabulary.com/en/entries/index.json",
    "query": "https://designvocabulary.com/api/query?lang=en",
    "guide": "https://designvocabulary.com/en/agents/",
    "llms": "https://designvocabulary.com/llms.txt"
  },
  "provenance": {
    "sourceBacked": [
      "entry.definition"
    ],
    "editorial": [
      "entry.boundary",
      "entry.signature",
      "entry.when",
      "entry.when_not",
      "entry.tradeoff",
      "entry.comparison",
      "entry.rules",
      "entry.relations",
      "entry.implementationNote",
      "entry.behavior"
    ],
    "scope": "Definitions reference these sources. Digital specimens, selection advice, relationships, and recipes are editorial work and have not been validated through user research.",
    "editorialStatus": "drafted",
    "specimenData": "fictional",
    "specimenNote": "Original fictional specimens. Definitions cite sources; usage advice and recipes are editorial.",
    "sources": [
      {
        "id": "infinitescroll-nng-tips",
        "url": "https://www.nngroup.com/articles/infinite-scrolling-tips/",
        "title": "Nielsen Norman Group · Infinite Scrolling: When to Use It, When to Avoid It (Tim Neusesser, 2022-09-04)",
        "checkedAt": "2026-10-20",
        "archive": {
          "status": "unconfirmed",
          "confirmed": false,
          "url": null,
          "capturedAt": null,
          "lookupUrl": "https://web.archive.org/web/20261020*/https://www.nngroup.com/articles/infinite-scrolling-tips/"
        }
      },
      {
        "id": "infinitescroll-w3c-apg-feed",
        "url": "https://www.w3.org/WAI/ARIA/apg/patterns/feed/",
        "title": "W3C WAI-ARIA Authoring Practices Guide · Feed Pattern",
        "checkedAt": "2026-10-20",
        "archive": {
          "status": "unconfirmed",
          "confirmed": false,
          "url": null,
          "capturedAt": null,
          "lookupUrl": "https://web.archive.org/web/20261020*/https://www.w3.org/WAI/ARIA/apg/patterns/feed/"
        }
      }
    ],
    "lists": [],
    "ordered": false,
    "listDisclaimer": "Seat numbers are editorial positions, not scores, rankings, or popularity measurements. A list that is not filled is left as it is."
  },
  "entry": {
    "id": "infinite-scroll",
    "type": "interaction",
    "name": {
      "zh": "无限滚动",
      "en": "Infinite Scroll"
    },
    "aliases": [
      "Infinite Scrolling",
      "Continuous Scrolling",
      "Endless Scroll",
      "连续滚动",
      "瀑布流加载"
    ],
    "granularity": "component",
    "intents": [
      "browse-detail",
      "read-content"
    ],
    "tags": [
      "list",
      "scroll loading",
      "feed",
      "pagination alternative",
      "content browsing"
    ],
    "definition": "A list that automatically loads and appends the next batch of content as the user scrolls near its end, with no click to turn the page, so it looks like one continuous stream with no end.",
    "boundary": "What separates infinite scroll from pagination is whether there are stable page boundaries: pagination cuts results into numbered pages, so a user can say “on page three” and go back there; infinite scroll has only one ever-growing list with no notion of a page number. A “Load more” button sits between the two: it also appends content, but every batch takes a deliberate click, so the footer stays reachable and nobody is misled into thinking the list has ended. This entry means only the automatic form. Nor is it a rendering optimisation such as list virtualisation, which concerns rendering only the items in view and says nothing about when content loads or whether the user can find their place. Whether infinite scroll makes people unable to stop is not stated here as fact; it appears only as editorial opinion in the trade-off.",
    "signature": [
      "The next batch is appended automatically near the end of the list, with no click",
      "There are no page numbers and no stable “page N” position",
      "A loading state appears at the end of the list while new content arrives"
    ],
    "when": [
      "Items are homogeneous and the user has no specific goal, just browsing, as in a news or image feed",
      "Use is mostly on phones, where people already scroll continuously",
      "The order of the list matters little and users rarely need to return to one particular item"
    ],
    "when_not": [
      "Users look for a specific item, or compare items that sit far apart in a long list",
      "The footer holds links or information that users actually need",
      "Users often open a detail view and come back, and the list cannot restore their position",
      "Many users are on low-bandwidth connections or rely on the keyboard and screen readers"
    ],
    "tradeoff": "Infinite scroll removes the click and wait of turning pages, so browsing is not interrupted; the cost is a lost sense of place — it is hard to remember where an item was or to get back to it, the footer becomes unreachable, and users may think they have seen everything before the next batch appears. Some commentators also argue that a list without an end lengthens time on the page; that is editorial opinion, and this entry’s sources offer no evidence for it.",
    "comparison": {
      "focus": "Browsing homogeneous content without interruption",
      "mechanism": "The next batch is appended automatically near the end",
      "cost": "No page boundaries, so finding, returning and reaching the footer get hard"
    },
    "sources": [
      {
        "id": "infinitescroll-nng-tips",
        "title": "Nielsen Norman Group · Infinite Scrolling: When to Use It, When to Avoid It (Tim Neusesser, 2022-09-04)",
        "url": "https://www.nngroup.com/articles/infinite-scrolling-tips/",
        "claim": "The article defines infinite scrolling as a listing approach that loads content continuously as the user scrolls down, removing the need for pagination. The problems it lists include difficulty remembering and returning to an item, the illusion of having reached the end, an unreachable footer, accessibility problems for keyboard and screen-reader users, load performance and search-engine crawling. It advises avoiding infinite scrolling when users need to find a specific item, compare items spread across a long list, or review only the top results, suggests saving the list position for users returning from a detail page, and suggests Load More when the footer matters. This entry’s definition, conditions of use and comparison with pagination and Load More are paraphrased from it.",
        "checkedAt": "2026-10-20",
        "archive": {
          "lookupUrl": "https://web.archive.org/web/20261020*/https://www.nngroup.com/articles/infinite-scrolling-tips/",
          "status": "unconfirmed",
          "checkedAt": "2026-10-20T07:58:30.735Z",
          "error": "save-request-failed"
        }
      },
      {
        "id": "infinitescroll-w3c-apg-feed",
        "title": "W3C WAI-ARIA Authoring Practices Guide · Feed Pattern",
        "url": "https://www.w3.org/WAI/ARIA/apg/patterns/feed/",
        "claim": "The pattern describes a feed as a page section that automatically loads new sections of content as the user scrolls, often appearing as a list of articles that seems to scroll infinitely, and notes that scroll-triggered loading can cause usability and interoperability problems for assistive-technology users. It advises setting aria-busy to true while several articles are added or removed and, crucially, back to false when done, and gives keyboard conventions such as Page Down / Page Up to move focus between articles and Control + End to move to the first focusable element after the feed. This entry’s accessibility requirements are paraphrased from it.",
        "checkedAt": "2026-10-20",
        "archive": {
          "lookupUrl": "https://web.archive.org/web/20261020*/https://www.w3.org/WAI/ARIA/apg/patterns/feed/",
          "status": "unconfirmed",
          "checkedAt": "2026-10-20T07:58:32.835Z",
          "error": "save-request-failed"
        }
      }
    ],
    "relations": [
      {
        "target": "pagination",
        "kind": "alternative",
        "condition": "A long ordered set of results has to be shown in batches",
        "reason": "Pagination gives stable page boundaries that make finding and revisiting easy; infinite scroll drops the page-turning step in exchange for uninterrupted browsing. Users looking for a specific item favour pagination, casual browsers favour infinite scroll.",
        "basis": "editorial"
      },
      {
        "target": "skeleton",
        "kind": "composes_with",
        "condition": "The next batch takes a noticeable time to arrive",
        "reason": "A skeleton placeholder at the end of the list tells users more content is on its way and makes them less likely to think they have reached the end.",
        "basis": "editorial"
      },
      {
        "target": "site-footer",
        "kind": "conflicts_when",
        "condition": "The page carries a footer users need after the infinitely scrolling list",
        "reason": "Every time the list nears its end it appends more, pushing the footer away for good; use Load More instead, or move the footer information elsewhere.",
        "basis": "editorial"
      },
      {
        "target": "search-and-filter",
        "kind": "composes_with",
        "condition": "Users in a long feed are actually looking for a particular kind of content",
        "reason": "Infinite scroll is poor at locating things; search and filters let users with a clear goal skip scrolling item by item.",
        "basis": "editorial"
      }
    ],
    "rules": [
      {
        "when": "The user opens an item’s detail view from the list and comes back",
        "instruction": "Restore the scroll position and the items already loaded when they left; do not make them scroll down again from the top.",
        "strength": "recommend",
        "basis": "editorial"
      },
      {
        "when": "The list appends items in batches while scrolling",
        "instruction": "Use the feed role and aria-busy to tell assistive technology the content is updating, and provide a keyboard way to leave the list.",
        "strength": "recommend",
        "basis": "editorial"
      },
      {
        "when": "The footer, contact details or legal information appear only after the list",
        "instruction": "Switch to a Load More button that needs a click, or place that information somewhere that does not depend on scrolling to the bottom.",
        "strength": "recommend",
        "basis": "editorial"
      }
    ],
    "behavior": {
      "states": [
        "idle",
        "loading-more",
        "appended",
        "end-of-list",
        "error"
      ],
      "a11y": [
        "Appending new items does not steal the current focus, and screen-reader users can tell the list is updating",
        "Keyboard users can move between items and jump past the list in one step",
        "A failed load offers a way to retry instead of silently stopping"
      ],
      "motion": "New content appears at the end directly, without shifting items already on screen"
    },
    "demo": null,
    "version": "0.1.0",
    "editorialStatus": "drafted",
    "requirements": [],
    "demoCapabilities": [],
    "implementationNote": "This entry has no runnable specimen; the illustration is an editorial sketch of new cards being appended and a loading state at the end of a list, set against numbered pagination, not a verified implementation. Before applying it to a product, test position restoration on return, the keyboard way out of the list, and how screen readers announce new content.",
    "image": {
      "src": "/images/infinite-scroll.webp",
      "alt": "A fictional FIELDNOTES phone screen sketch: a column of cards made of grey placeholder bars runs downward, the last card loading as a fading skeleton; beside it a small inset shows a row of page squares with one highlighted, for comparison, and the footer has been pushed off the bottom with only a corner visible."
    },
    "searchTerms": [
      "列表",
      "滚动加载",
      "信息流",
      "分页替代",
      "内容浏览"
    ]
  }
}
