Norva

How to Preserve List Focus After Pressing Back

A semantic origin-token method that returns viewers from detail screens, variants, and episodes to the list position they actually left.

In short: Before leaving a list, store a semantic origin containing page, region, stable item identity, filters, sort, query, and row or scroll context. On Back, rebuild that state, reveal the item, and restore focus. If it disappeared, use a documented nearby fallback rather than jumping to Home or the first card.

Back is part of the current task, not merely a route to the previous URL. When a viewer opens a movie, series, episode, or variant and returns, the interface should remember where that decision began.

Store meaning, not only an element reference

A DOM node, rendered index, or rectangle may disappear while the detail screen is open. Store a semantic origin token instead:

FieldExample purpose
Page and regionMovies results, season episodes, variants
Stable item identityFinds the same content after rerender
Query, filters, sortRebuilds the same result set
Row and item offsetRestores a horizontal collection
Scroll anchorReveals the target before focus
Fallback orderHandles removed or unavailable items

Do not rely on a title as identity when duplicate versions can exist. Use the stable identifier already defined by the product's data contract.

Capture the origin at activation

Create the token when the viewer activates the destination, not after the source unmounts. Capture the visible list state and the exact focused item. If a variant picker opens inside a detail screen, create a second, nested origin for that temporary layer.

This layered model matches viewer expectation: Back from variants returns to the film or series detail context; another Back returns to the originating list card. It avoids the common failure where Back skips the intermediate layer and lands on Home.

Restore state before requesting focus

On return, apply query, filters, sort, and list data first. Then restore scroll or row offset, wait for the target to render, reveal it fully, and request focus. A request made before virtualization or asynchronous results complete can silently fail or land on a temporary target.

While waiting, keep a stable page state. Do not focus a skeleton and move again later. The initial-focus principles in choosing the right TV focus also apply during restoration.

Use a deterministic fallback ladder

The original item may be filtered out, deleted, unavailable, or moved. Define the fallback in advance:

  1. exact stable item;
  2. next valid sibling at the remembered position;
  3. previous valid sibling;
  4. same row or list anchor;
  5. results-region anchor or valid recovery control.

Keep the fallback inside the same task and explain an empty state when no items remain. Jumping to the sidebar or Home is not a neutral fallback; it discards the viewer's journey.

Separate navigation history from focus history

Browser or application navigation history can identify the prior screen, but it rarely carries every focus detail. Maintain a small focus-origin stack tied to navigable layers. Remove an origin when its journey is completed or replaced so stale entries do not restore an unrelated session.

Protect against double Back and rapid activation. Restoration should be idempotent: processing the same return twice must not produce two competing focus requests.

Test mutations and boundary positions

Open destinations from the first, middle, last, and partially visible items. Repeat with a long row, an incomplete grid row, active filters, and a compacted header. Then remove the origin item, change availability, or reorder results before returning.

Run the exact routes in the remote and D-pad QA guide and use the focus-trap diagnostic if the restored cue appears but cannot leave its region.

Measure the restoration outcome

For each test, record expected item, actual item, retained filters, retained scroll context, time until visible focus, and first reverse movement. A screenshot proves visual position; an input trace proves that the restored target participates in the correct graph.

Common mistakes and limitations

Frequently asked questions

Should Back always restore the exact card?

Restore it when it remains valid. Otherwise, choose the documented nearby fallback while preserving the surrounding list state.

What if filters return no results?

Restore the filter state, show an understandable empty result, and focus a valid recovery control such as changing or clearing the relevant filter.

Is scroll position enough?

No. A scroll offset does not identify the intended item and may map to different content after layout or data changes.

Your next step

Preview Norva's TV Navigation

Sources