- Success Criterion 2.4.5
- Conformance level AA
Search Results Page That Can Only Be Reached via Search
2.4.5 — Multiple Ways
Scenario
Setting
A bank's mobile money-transfer screen
What’s wrong
Search results themselves unfindable except via search (dead-end architecture).
Example
function searchTransfers(query) {
fetch('/api/transfers/search', { method: 'POST', body: JSON.stringify({ query }) })
.then(renderResultsInPlace);
}
<!-- no URL change, no route, results exist only in memory --> Why it matters
A customer who found a past transfer through search can't return to those results later or share the link with support, since the results have no address.
How to test
Try to reach a search result page directly (e.g., via bookmark or shared link) without going through search again: if it's unfindable any other way, it's a dead end and fails.
How to fix
Results reachable only by re-running the search aren't a real second way to find that content.
function searchTransfers(query) {
history.pushState({}, '', '/transfers/search?q=' + encodeURIComponent(query));
fetch('/api/transfers/search?q=' + encodeURIComponent(query))
.then(renderResultsInPlace);
} Outcome
A customer bookmarks their filtered transfer results and returns to the same list next session.
Who is affected
Users who navigate primarily through bookmarks, browser history, or shared links hit a permanent dead end at search results.
Learn more
- Understanding Understanding document (opens in a new tab)
Related scenarios
- Website With No Real Second Way to Find Content
- Deep Pages Reachable Only Through One Navigation Path
- Site Search That’s Broken or Doesn’t Index Most Pages
- Sitemap Link That Leads to an Empty or Outdated Page
- Sequential-Only Article Pagination With No Table of Contents
- Second Way to Navigate Available on Desktop but Not Mobile