Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Page Properties

Component type

List

Document status

Status
colourRed
titleDRAFT

Design source (in Figma)

Multiple. But list Layouts is a starting point.

Author

nathan.mckean@reckitt.com (Unlicensed)

Responsible

Julia Boyarshchikova (Deactivated)

...

Lists in and of themselves don’t have a specific visual style. But within lists, there are common layout patterns.

...

Discuss grid vs flexbox and how to deliver a centred option (e.g. 3 + 2).

Behaviour 

  • Lists themselves are often guided by the content that exists within them, so don’t specifically have a behaviour though there are some behavioural ‘extensions’ to be mindful of.

  • Lists are always structural, but can also be semantic. Semantic lists allow for ordered and unordered lists (and potentially definition lists).

  • Any individual list can be considered critical or optional. A critical list always displays its entire contents and is generally used with the list of the core content of the page (e.g. the main product list on a product listing page. An optional list can display a portion of the list, with the remained revealed through user interaction of list controls.

  • List controls include carousels, ‘batch loading' and pagination, which are defined separately within this section.

  • Filtering and sorting are also list controls that fall outside of the MVP.

...

  • Semantic lists, marked as <li> within an ordered list <ol> or unordered list <ul> will provide a count of the items in the list to screen-readers to aid orientation. Where optional lists hide a portion of the list from display, semantic list markup would only reveal the visible portion and deliver a list count that is misleading. For this reason, optional lists need to deliver an alternative experience. The general best practice recommendation is to create an item count such as “showing X of Y items” and apply a polite live region to that phrase. If/when list controls are applied (e.g. carousel or load more) the user will be told the status of what is available. Key use cases for this include:

    • Reading out the revised list count when filters are applied.

    • Reading out the revised list count (like Finish) when more items are loaded with ‘load more’ (e.g. showing 24 or 48 items).

    • Reading the progression through the list across a carousel (potentially “showing items 1 to 5 of 15” or possible fallback “showing batch/slide X of Y”.

  • Lists can be named and potentially even described. These fields can be used to populate aria-label, aria-labelledby and aria-describedby functions as relevant.

  • For long lists, if keyboard users are required to tab through a large amount of items it is often considered best practice to offer those users the ability to skip the list (much like a hidden skip link at the start of the page which becomes visible on focus). This is not needed for all lists, but is a valuable enhancement where there are a lot of tab-stops.

...