We use a large block of connected links for our pagination, making links hard to miss
and easily scalable—all while providing large hit areas. Pagination is built with list
HTML elements so screen readers can announce the number of available links. Use a
wrapping <nav> element to identify it as a navigation section to
screen readers and other assistive technologies.
In addition, as pages likely have more than one such navigation section, it's
advisable to provide a descriptive aria-label for the
<nav> to reflect its purpose. For example, if the pagination
component is used to navigate between a set of search results, an appropriate label
could be aria-label="Search results pages".
Looking to use an icon or symbol in place of text for some pagination links? Be sure
to provide proper screen reader support with aria attributes.
Pagination links are customizable for different circumstances. Use
disabled for links that appear un-clickable and .active to
indicate the current page.
While the disabled prop uses pointer-events: none to
try to disable the link functionality of <a>s, that CSS
property is not yet standardized and doesn'taccount for keyboard navigation. As
such, we always add tabindex="-1" on disabled links and use
custom JavaScript to fully disable their functionality.
Fancy larger or smaller pagination? Add sizing="lg" or
sizing="sm" for additional sizes.
Change the alignment of pagination components with flexbox utilities.