Opened 8 years ago
Last modified 4 years ago
#40330 assigned task (blessed)
Reconsider the usage of infinite scrolling across the admin
Reported by: | afercia | Owned by: | |
---|---|---|---|
Milestone: | Future Release | Priority: | normal |
Severity: | normal | Version: | |
Component: | Administration | Keywords: | a11y-task |
Focuses: | ui, accessibility, javascript | Cc: |
Description
As accessibility team, we've often discussed and we're aware of some a11y issues in the WordPress admin but haven't formalized them in a Trac ticket yet. That's because they're general, broad, issues and they probably can't be solved soon, as they have a big impact on the way some relevant parts of the user interface are built. They would require some extensive discussion and research. Nevertheless, if we're not going to at least open a discussion, the solution is not going to happen ๐ . During the last accessibility weekly meeting we've decided to open a series of tickets and use a special keyword to group them, something like a11y-task
. This is the first ticket of the series.
Infinite scrolling (sometimes known as "endless scrolling") can be a serious accessibility barrier. It's used in the admin in a few places, for example:
- Media Grid
- Add Themes screens
- Customizer > Add menu items
- Editor > Insert/Edit link > Search
- any other places?
For a comprehensive view of all the potential issues, I'd refer to the list of resources below. I'd recommend everyone to have a look at those posts.
I'd say the issues can be grouped in three different categories: accessibility, usability, and performance. Just to mention some of the most relevant ones:
- a11y: it's impossible or very hard for keyboard users to reach content placed after an infinite scrolling region: think for example at the Media Grid, where tabbing through attachments loads more and more attachments (potentially hundreds or thousands of them) forcing users to keep tabbing indefinitely
- a11y: no audible feedback or instructions about how infinite scrolling works, the current and total number of items, or when new items get loaded
- usability: infinite scrolling often breaks the browser's history
- usability: there's no JS fallback
- performance: memory footprint can be huge, especially when loading hundreds of big images, see the Theme install screens
Resources mostly focused on accessibility:
โhttp://adrianroselli.com/2014/05/so-you-think-you-built-good-infinite.html
โhttp://simplyaccessible.com/article/infinite-scrolling/
โhttp://www.webaxe.org/infinite-scrolling-and-accessibility/
โhttp://www.ssbbartgroup.com/blog/infinite-scrolling-impact-on-assistive-technologies-series-1/
Resources mostly focused on usability:
โhttps://webmasters.googleblog.com/2014/02/infinite-scroll-search-friendly.html
โhttps://www.nngroup.com/articles/infinite-scrolling/
โhttps://www.sitepoint.com/ux-infinite-scroll-good-bad-maybe/
โhttp://www.webdesignerdepot.com/2015/11/how-infinite-scrolling-breaks-ux/
โhttps://www.smashingmagazine.com/2016/03/pagination-infinite-scrolling-load-more-buttons/
โhttps://www.smashingmagazine.com/2013/05/infinite-scrolling-lets-get-to-the-bottom-of-this/
Resources focused on memory footprint:
โhttp://engineering.linkedin.com/linkedin-ipad-5-techniques-smooth-infinite-scrolling-html5
โhttps://www.sencha.com/blog/the-making-of-fastbook-an-html5-love-story/
โhttp://dannysu.com/2012/07/07/infinite-scroll-memory-optimization/
Maybe for the future: the ARIA role feed
โhttps://www.w3.org/TR/wai-aria-1.1/#feed
(at the time of writing, ARIA 1.1 is still a Candidate Recommendation, and as far as I know, no assistive technologies support the role feed
)
See also: โhttp://www.ssbbartgroup.com/blog/differences-aria-1-0-1-1-additions-role/
Change History (27)
This ticket was mentioned in โSlack in #accessibility by afercia. โView the logs.
8 years ago
#3
@
8 years ago
- Milestone changed from Awaiting Review to Future Release
This is something that is very important, and needs to be done. We're marking it as future release, and will work on these issues as time allows.
This ticket was mentioned in โSlack in #core-customize by melchoyce. โView the logs.
8 years ago
This ticket was mentioned in โSlack in #accessibility by afercia. โView the logs.
7 years ago
#7
@
7 years ago
See @melchoyce comment on https://core.trac.wordpress.org/ticket/28927#comment:10
FWIW, I think we should consider mimicking Google here โ load a bunch of images, and then after a certain point add a "load more" button to the end, both on desktop and mobile.
This ticket was mentioned in โSlack in #core-media by joemcgill. โView the logs.
6 years ago
This ticket was mentioned in โSlack in #core-media by valentinbora. โView the logs.
5 years ago
This ticket was mentioned in โSlack in #accessibility by afercia. โView the logs.
5 years ago
This ticket was mentioned in โSlack in #accessibility by afercia. โView the logs.
5 years ago
This ticket was mentioned in โSlack in #accessibility by afercia. โView the logs.
5 years ago
This ticket was mentioned in โSlack in #accessibility by afercia. โView the logs.
5 years ago
#16
@
5 years ago
#50143 reported one more case where users experience is not that great with the Media Library infinite scrolling.
This ticket was mentioned in โSlack in #core-media by afercia. โView the logs.
4 years ago
This ticket was mentioned in โSlack in #accessibility by afercia. โView the logs.
4 years ago
#19
@
4 years ago
- Type changed from defect (bug) to task (blessed)
Changing this umbrella ticket to a task, as we only keep it open to track other tasks/tickets.
This ticket was mentioned in โSlack in #accessibility by afercia. โView the logs.
4 years ago
#21
@
4 years ago
- Milestone changed from 5.5 to 5.6
Moving to 5.6 as this is a task that will span across multiple release cycles.
This ticket was mentioned in โSlack in #accessibility by afercia. โView the logs.
4 years ago
#23
@
4 years ago
- Milestone changed from 5.6 to Future Release
See related #50105. This ticket was discussed during today's accessibility bug-scrub: given the Beta 1 period is approaching fast and considering #50105 would need greater visibility and a good amount of time for in depth testing, the teams agreed to punt to future release. Since this is a task, it will be likely re-added to the next release milestone.
About performance, I'm not familiar with profiling tools so anyone with better skills than me is greatly welcome to help measuring memory footprint issues. Checking the data reported by the Activity Monitor on my operating system I've noticed the browser's memory usage can easily go way higher than 1.5 GB after scrolling for a while in the Theme Installer screen. This is on a modern, powerful macbook pro. I can't imagine what happens on less powerful hardware or mobile devices. Not a surprise that, on mobile devices, sometimes browsers simply crash, as reported in #28927.
Worth reminding the Theme installer screen loads hundreds of big images, often 1200 by 900 pixels images. Also, unfortunately some themes use a non-optimized
screenshot.png
image which in some cases weights more than 2 MB. The theme installer screen then displays these images in an area of about 380 pixels, depending on the display's size, so I'd say loading such big images is highly inefficient. Ideally, the theme submission process should check for non-optimized images, or require an additional, smaller, image with a file size limit. Maybe consider alternative image sources and srcset and sizes, by the way these should be generated on the .org side.Not to mention mobile bandwidth consumption.