Lead: Femi Status colour Yellow title ongoing
Table of Contents |
---|
Description
Scroll is a user interaction component used to allow for the allows the controlled reveal of extra content which would otherwise be unable to be displayed not fit within the existing allocated UI real estatespace. They can be used within containers of the page layout and also within individual components.
...
Type | Usage |
---|---|
Fixed Scroll | When a fixed amount of content is loaded into a viewable container or component that is not large enough to display it all at once, a horizontal or vertical scrollbar is shown to enable enables the remaining content to be moved into view. |
Infinite Scroll | When a large undefined amount of content is available for a viewable container or component that is not large enough to display it all at once, a horizontal or vertical scrollbar is shown to enable enables more content to be dynamically loaded into view. |
...
Choose the appropriate type (as defined above) according to the amount of content you need to display and the content area available.
Usage & Behavior
Note |
---|
Currently only webkit based web browsers (such as Chrome & Safari) fully support native scrollbar custom styling to the degree required to conform to our visual design guidelines. It is therefore recommended to leave all non-webkit browsers at their native scrollbar visual design language (using the CSS Overflow property) in order to aid consistency in behaviour behavior and accessibility, rather than attempting to re-implement scrollbars across each environment. Our implementation below follows this recommendation. |
General guidelines
These are the essential usability guidelines for scrolling and scrollbars:
Content
- Display all important information above the fold. Users often decide whether to continue or leave based on what they can see without scrolling.
Placement
...
Placement and positioning
- Always offer a scrollbar if an area has scrolling content. Don't rely on auto-scrolling or on dragging, which people might not noticeas users may not realise it's an option. The scrollbar provides a visual clue that more content is available.
- Hide scrollbars entirely if all content is visible. If people users see a scrollbar, they will assume there's additional content and will be frustrated if they can't scroll.
Default state
- Comply with the default operating system standards in order to maintain platform familiarity. All default browser scroll behaviours behaviors should be enabled by default. Operating system and browser defaults such as scroll inertia, scroll wheel support, gesture support, and any OS user customisations should all behave as factory designed.
States
...
Content
- Display all important information above the fold. Users often decide whether to continue or leave based on what they can see without scrolling.
States
There are no focused or disabled states for scroll as these states are handled by the parent component in which the scroll is attached.
State | Scroll |
---|---|
Regular Vertical | |
Hover Vertical | |
Active Vertical | |
Regular Horizontal | |
Hover Horizontal | |
Active Horizontal | Regular Vertical |
Interaction
...
Anchor |
---|
...
...
|
Scroll interaction is governed by the chosen device, operating system, and browser the application is running on. It is advised that those being used. The default interaction behaviours shouldn't be unaltered changed, primarily for conformance and accessibility reasons. The following are the required interaction recommendations common to all.
...
Best practices
For best results, follow all the usage guidelines detailed in this document. For more best practices tips and suggestions, see below.Further suggestions:
- Avoid scrolling within scrolling. Users are often perplexed by inline scroll areas because they introduce nested scroll panes, with any inline scrollable areas being placed within a larger scrollable area. It’s scrollable areas within scrollable areas – like nested dreams in the movie Inception! Such complexity isn’t desirable in a user interface design This should be avoided as it causes significant mental overhead because it introduces dependencies between the scroll areas. The user has cognitive load for the user. They have to keep track of the relationship between the scroll areas because they are interrelated – ; for instance, the state of the page scroll area may cut off part of an inline scroll area.
Make sure the browser back button works properly. When users follow a link, and then click the Back button, they expect to return to the same spot on the original page. Traditionally, using a browser’s back button will generally set the scroll position back to the previous position rather than to the top of the page. However, some modern development frameworks do not offer this functionality by default. Losing their previous position forces users to have to scroll through content they have already seen and manually find their previous position, hence endeavour . Try to always make sure this feature is enabled.
- Avoid scroll hijacking. Applications that implement scroll hijacking take control of the scroll and override a basic function of the web browser. Scroll hijacking is best avoided because the user no longer has full control of the page scroll and thus is unable to predict its behaviourbehavior. User’s The user’s expectation of an applications application's scrolling interaction shouldn’t be destroyed for the sake of narrative experience.
Use sticky navigation. Long scrolling can make navigation problematic for users: if . If the user loses visibility of the navigation bar menu (for the container menu, table menu etc.) loses its visibility when users they scroll down, they will have to scroll all the way back up when deep within the page or table. The solution for this problem is a sticky navigation menu: it’s best to keep the navigation persistently visible, so that navigating to different areas of the app is fast and easy for usersto the top to perform an action. Instead, use a sticky (persistently visible) navigation menu to make moving around the app fast and easy.
- Avoid horizontal scrolling. To improve user efficiency it is best to limit scrolling to the vertical axis only.
Provide visual feedback when loading new content. Visibility of the system’s status remains among the most important principles in user interface design. When using the infinite scroll type, in which your app dynamically loads content, users need a clear sign that the application is doing this. Keep them informed; use , it needs to be clear to the user that content is being dynamically loaded. Use a progress indicator to show that new content is loading and will soon appear on the page.
...
The scroll component itself is not keyboard focusablecannot be focused via the keyboard. Instead, it is must be possible to focus the scrollable content area itself that is required to be focusable in order for the scroll component to work. Please see the general guidelines described in the Keyboard & Focus Management Guidelines to make sure the ensure that scrollable content areas are properly supported.
Assistive scrolling bindings vary with device, operating system, and browser but . Nevertheless, the key bindings described in the 'Interaction' section Scroll section above should be supported as a minimum:.
Screen reader support
As our recommendation is the use of it's recommended to use the native browser scrollbar component, screen reader support is already built in. Users are notified about the existence of a scrollbar on the page scrollbars when they encounter a scrollable area with the 'overflow' property defined as 'auto' or 'scroll'. Make sure the scrollable area itself also supports screen readers for content or behaviour where needed - see see the Screen Reader Guidelines.
Design
Zeplin link | Screen thumbnail |
---|---|
...