Automated infinite scrolling is a popular web design technique even though it creates difficult accessibility problems for keyboard users.
Recently, while delivering an accessibility training course, the subject of infinite scrolling came up.
I cringed a little. Okay, maybe a lot. And a few participants laughed. I asked why, and was told they were “working on it” for an upcoming release. Oops.
While I don’t have any disabilities that influence my use of computers, I am predominantly a keyboard user. I have been since the mid 1990s. And I have to tell you that as a keyboard user, infinite scrolling pages are never easy to use. I suppose I’d actually say the same if I weren’t mostly a keyboard user, but lets focus on the keyboard usage part of the infinite scroll interaction. Let’s say that you are a keyboard user.
Will it ever end? The page, that is
The most important issue with infinite scrolling pages that you face as a physical keyboard user is that you can’t get to the end. And sometimes, you actually want to get to the end. Sometimes the link want to get to is in the footer. Or maybe you don’t know what’s in the footer so you want to see what’s there. As a keyboard user, you just can’t get to the end.
What if you try to sneak up on the link from behind and use
Shift + tab to get to the link from the top of the page? You can’t. Because the script usually detects you’re at the end of the page so it loads more results and pushes the bottom of the page away from you—like you’d never even pressed
Shift + tab in the first place.
Next time you’re setting up user tests (formal or informal), make sure to include a task that requires the user to click a link that is near the bottom of the page in the footer of the site. Record the session. There is very little doubt that people will get frustrated with this task. For added effect, review the video with whomever had the idea to implement automatic infinite scrolling in the first place. Let the data speak for itself (unless the data says automatic infinite scrolling is okay, in which case I’d like to you ignore that data, okay?).
A better way to infinite scroll
You should consider at least one of the following (especially numbers 1 or 3):
- Just don’t implement infinite scrolling.
- Replace automatic infinite scrolling with a “Load more results…” button or link that explicitly invites the user to add more. Once they do a few times, prompt them to ask if they’d like to turn auto-loading of more results on.
- No, really, just don’t implement infinite scrolling.