S2.08.4Locale-aware index navigationdesignresearch

Index navigation must switch with language

Aliases: localized index navigation · alphabetic index · index buckets · alphabet index bar

What it is

Locale-aware index navigation keeps the labels beside a long list, their bucket boundaries, and their jump targets aligned with the active language and actual collation. It is not merely A–Z translated into another script. Greek content may need Greek labels; Chinese pinyin order may use A–Z; stroke order needs stroke-count labels; radical–stroke order needs radicals. CLDR index exemplar characters can supply candidate labels for general language indexes, while CJK orders should derive boundaries and display labels from the corresponding collation's index markers. The index describes how the current list is truly bucketed, rather than acting as an independent decorative menu.

Why it happens

Reliable jumping requires one comparator to determine both record order and bucket boundaries. Each record falls between adjacent boundaries according to its primary collation weights, and a label targets the first item in that range. If the UI changes language but retains old labels, or a list switches to stroke order while the index still uses pinyin initials, a tap lands at a semantically wrong position. Client and server collation-version differences can likewise split a bucket across pages. CJK index markers encode distinct boundaries and labels for pinyin, stroke, Bopomofo, and Unihan orders. Search can retrieve across buckets and tolerate several input forms, but index navigation must mirror visible order; they cannot share a naive first-character field. Records retain stable IDs, while bucket keys remain rebuildable view data tied to locale and sort mode.

Studying it

Start with a structural consistency audit. For every label, verify monotonic bucket order, exactly one range per record, a jump to the range's first item, and correct handling of empty, underflow, overflow, numeric, and mixed-script buckets. Then ask target-language users to find named items using only the index bar; record first choice, repeated jumps, scrolling distance, and fallback to search. Language and sort-mode switch tests should reuse the same records and observe how selection, scroll position, and focus migrate, including what a screen reader announces for labels and result ranges. Upgrade studies need to diff actual bucket membership, not merely confirm that labels still exist.

Where it stops holding

Index labels are sparse entry points into a continuous sort order. They need not represent every character, and every label need not contain data; small collections can omit or mute empty buckets, while narrow screens can group or progressively reveal labels. Mixed scripts, digits, symbols, and data outside named ranges require overflow or script-level entries, but those buckets must be computed from comparator boundaries rather than guessed with regular expressions. A UI-language switch does not necessarily change the content language, so the index follows the list's resolved sort configuration, not chrome locale alone. Filtering can empty buckets, and remote pagination hides the full distribution from the client; both require authoritative counts and jump cursors from the server or a complete index.

Applying it

  • Make the list's resolved locale, collation type, strength, and data version the index component's single configuration source. Generate labels and buckets from the same collator boundaries or CLDR index markers, never from an independently computed first character.
  • On a language or Chinese sort-mode change, retain selection by stable record ID and atomically reorder records, rebuild buckets, replace labels, and refresh jump cursors. If the old position cannot persist, move explicitly to the selected record or the new bucket start.
  • Present only useful entry points: hide or mute empty buckets and use understandable groups for mixed scripts and digits. Give every control an accessible name, selected state, and target-range description, while preserving usable touch targets when labels are dense.
  • Test bucket membership end to end across client and server sorting, filters, pagination, live insertion, and CLDR upgrades. Verify that each jump reaches the first visible record in its current bucket, then repeat the finding task by keyboard, touch, and screen reader.

Related

  • Same group: S2.08.1 Alphabetical order varies by language · S2.08.2 Chinese can be sorted by pinyin, stroke count, or radical · S2.08.3 Case and diacritics affect collation results
  • Adjacent: S4.01.4 Preserve page and state after switching · J5.10.1 Accessible names are computed from sources in a fixed, developer-overridable precedence
  • Search terms: locale-aware index · CLDR index characters · CJK index markers

Cards in the same group

Quick Actions

Share

Share this page

ios_share

https://hci.top/en/handbook/S2.08.4