> Diagram from [Creating more efficient React views with windowing](https://bvaughn.github.io/forward-js-2017/#/0/0) by Brain Vaughn
There are drawbacks with using virtual lists. They stem from the fact that with a virtual list not all of the page content is rendered into the DOM.
- Accessibility: screenreaders cannot read out all of the content of a page
- Findability: native find (meta + f) will not find things that are not rendered in the DOM.
## Support
`react-beautiful-dnd` is designed to work with existing virtual list solutions and does not have it's own virtual list abstraction. There is no official "virtual list" specification or implementation for the web. Different virtual list libraries achieve windowing through various techniques. So we cannot guarentee that `react-beautiful-dnd` will work with every virtual list library. We have created examples for `react-window` and `react-virtualized` which are the two most popular virtual list libraries for `react`.
## Premade examples 🎁
Please raise a pull request if you would like to add examples for other virtualization libraries! ❤
### [`react-window`](https://github.com/bvaughn/react-window)
- [List](https://react-beautiful-dnd.netlify.app/?path=/story/virtual-react-window--list) ([source](/stories/src/virtual/react-window/list.jsx))
- [Board](https://react-beautiful-dnd.netlify.app/?path=/story/virtual-react-window--board) ([source](/stories/src/virtual/react-window/board.jsx))
- [Basic list on `codesandbox.io`](https://codesandbox.io/s/simple-virtual-list-dark-c6wqc)
- [Basic board on `codesandbox.io`](https://codesandbox.io/s/simple-virtual-list-board-vgvzt)
### [`react-virtualized`](https://github.com/bvaughn/react-virtualized)
- [List](https://react-beautiful-dnd.netlify.app/?path=/story/virtual-react-virtualized--list) ([source](/stories/src/virtual/react-virtualized/list.jsx))
- [Board](https://react-beautiful-dnd.netlify.app/?path=/story/virtual-react-virtualized--board) ([source](/stories/src/virtual/react-virtualized/board.jsx))
- [List](https://react-beautiful-dnd.netlify.app/?path=/story/virtual-react-virtualized--window-list) with [`WindowScroller`](https://github.com/bvaughn/react-virtualized/blob/master/docs/WindowScroller.md) ([source](/stories/src/virtual/react-virtualized/window-list.jsx))
### [`react-virtuoso`](https://github.com/petyosi/react-virtuoso)
React Virtuoso comes with automatic item measurement out of the box.
- [List with source](https://virtuoso.dev/react-beautiful-dnd/)
- [Basic list on `codesandbox.io`](https://codesandbox.io/s/react-virutoso-with-react-beautiful-dnd-e6vmq)
## Usage
`react-beautiful-dnd` does not provide its own virtual list abstraction so there is a bit of wiring that you will need to do in order to get going with existing virtual list solutions 🛠
### Enable overscanning
> Virtualisation libraries often have overscanning enabled by default
Most virtual list libraries support the concept of **overscanning**. Overscanning is where a small about of non-visible items are rendered near the boundary of the window. When a scroll occurs the overscanned item can be immediately moved into view and does not need to be created. Overscanning generally leads to a more fluid experience.
It is required that overscanning be enabled for `react-beautiful-dnd` to work correctly. If overscanning is not enabled, `rbd` cannot tell if there are more items in the list when an item is in the last visual position. We require an overscanning value of one or more.
### Set `