S2.08.4Locale-aware index navigation设计研究

索引导航需随语言切换

别名: 本地化索引导航 · 字母索引条 · 索引分桶 · alphabetic index

概念解释

语言感知索引导航(locale-aware index navigation)是让长列表旁的索引标签、桶边界和跳转目标与当前语言及实际 collation 保持一致。它不只是把 A–Z 翻译成另一套字符:希腊语可能需要希腊字母标签,中文拼音可能使用 A–Z,笔画排序需要笔画数,部首—笔画排序需要部首标签。CLDR 的 index exemplar characters 可提供一般语言的候选标签,而 CJK 的多种排序应优先从对应 collation 的 index markers 推导边界与显示标签。索引条描述的是当前列表真正如何分桶,而不是一张独立装饰菜单。

机制

索引跳转可靠的前提是同一个 comparator 同时决定记录顺序和桶边界:每条记录按主要排序权重落在相邻边界之间,标签再指向该范围的首项。若界面换了语言却沿用旧标签,或列表改为笔画排序而索引仍按拼音首字母,点击会到达语义错误的位置;若客户端与服务端使用不同 collation 版本,分页后的桶也可能断裂。CJK index markers 专门表达拼音、笔画、注音和 Unihan 顺序下不同的边界与标签。搜索框可以跨桶召回并容忍不同输入形式,索引导航却必须反映当前显示顺序;两者不能共用一个“首字母”派生字段。数据库记录继续由稳定 ID 标识,桶键只是随 locale 和排序模式重建的视图数据。

怎么研究

可先做结构一致性审计:对每个标签检查桶是否非递减、每条记录是否只属于一个范围、跳转目标是否为该桶第一项,并覆盖空桶、前后溢出桶、数字和混合脚本。再让目标语言使用者完成“只用索引条找到指定姓名或术语”的任务,记录首次选择、二次跳转、滚动距离和改用搜索的比例。语言或排序模式切换测试要保留同一数据集,观察当前选择、滚动位置和焦点如何迁移,同时确认屏幕阅读器读出标签及结果范围。版本升级研究应比较实际桶成员,而不只比较标签是否仍存在。

边界

索引标签是对连续排序空间的稀疏入口,不承诺每个字符都有独立标签,也不承诺每个标签都有内容;小数据集可隐藏或弱化空桶,极窄屏幕可分组或渐进展开。混合脚本、数字、符号以及排序范围之外的数据需要“其他”或脚本级入口,但溢出桶必须依据 comparator 边界计算,不能靠正则猜测。用户切换界面语言时,内容语言未必同时改变;应依据列表的实际排序配置切换索引,而不是只看 chrome locale。筛选会让桶变空,远程分页会让客户端看不到全量分布,两者都要求服务端或完整索引提供可靠桶计数与跳转游标。

怎么落地

  • 让列表排序配置成为索引组件的唯一输入源,包括解析后的 locale、collation type、strength 和数据版本;从同一 collator 的边界或 CLDR index markers 生成标签与桶,不另算字符串首字符。
  • 切换语言或中文排序方式时,以原记录 ID 保持当前选择,原子地重排列表、重建桶、更新标签与跳转游标;若原位置无法保持,明确移动到所选记录或新桶首项。
  • 只显示有用的入口:空桶可隐藏或置灰,混合脚本与数字使用可理解的分组和溢出标签。为每个控件提供可访问名称、选中状态和目标范围,触控目标不能因标签密集而缩小到难以操作。
  • 对本地与服务端排序做端到端桶成员测试,覆盖筛选、分页、动态插入和 CLDR 升级。验证每次跳转确实到达当前标签对应的第一条可见记录,并用键盘、触屏和屏幕阅读器完成同一定位任务。

延伸

  • 同组S2.08.1 字母顺序随语言不同 · S2.08.2 中文可按拼音、笔画或部首排序 · S2.08.3 大小写与变音符号影响排序结果
  • 相邻S4.01.4 切换后需保留当前页面与状态 · J5.10.1 可访问名称按固定优先级从多个来源计算得出,顺序可被开发者覆盖
  • 站内检索locale-aware index · CLDR index characters · CJK index markers

同组卡片

快捷操作

分享

分享当前页面

ios_share

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