F2.14.2visual reorder must not rewrite logical order设计

视觉重排不应改变逻辑顺序

别名: 视觉重排 · CSS order · 断点换序

概念解释

桌面是「导航 | 正文」,窄屏要把正文放到导航上面。正确做法是:树里永远正文在先,宽屏用网格把导航画到左边。错误做法有两种——窄屏用 order 把视觉改成正文在先、树仍是导航在先;或用脚本在断点处改 DOM。视觉可以随宽度搬家,逻辑顺序应保持同一份内容优先清单,不随断点改写。

源顺序决定串行通道,是原因;这里锁的是跨宽度的稳定性:搬家时不要连清单一起搬。

机制

断点处的视觉重排很常见,因为窄宽对「谁该在首屏」的答案不同。布局工具让你可以只改绘制。若同时改树,逻辑顺序变成宽度的函数:同一篇内容,键盘在桌面先经过导航,在手机先经过正文。用户旋转或分屏穿越断点时,任务顺序自己翻了。

order: -1 把促销条视觉上提到顶、树里仍在最后,是另一种改写:视觉声称「先看这个」,逻辑仍说「最后才到」。内容优先要求逻辑稳住,视觉跟逻辑走,或至少不声称另一套先后。

边界

A/B 实验故意改流程、向导步骤本身在变,逻辑顺序可以变,但那是产品流程在变,不是布局在断点处偷偷变。广告插入、实时 feed 在树尾追加,不算重排。RTL 是方向镜像,起始/末尾对调,逻辑先后(先标题后正文)仍然不变。

有些法律页强制「先看完声明再出现提交」,那是逻辑顺序的产品约束,视觉也不能把它藏到后面。

怎么落地

  • 把内容优先的树写死:主内容节点在附属导航、促销、页脚之前。各宽度只用网格放位置,不用 order 或改 DOM 去迎合首屏。
  • 评审每个断点的视觉稿时,对照同一份树。视觉上的「第一」若不是树上的第一,要么改视觉,要么承认你在用视觉撒谎并准备承担焦点乱跳。
  • 验证:在窄宽两个断点都做一次键盘走查,列出先后名单。两份名单应当相同。不同的那一项,查是 order、是媒体查询里改了 DOM,还是两套模板。改回同一份树后再走,名单应重合。旋转穿越断点时,焦点不应跳到「另一套逻辑的下一号」。

延伸

  • 同组F2.14.1 源顺序决定辅助技术与键盘的遍历顺序 · F2.14.3 视觉与源顺序不一致会造成焦点乱跳
  • 相邻F2.10 响应式断点 · F2.11 流式与自适应布局 · J2.08 阅读顺序
  • 站内检索CSS order · logical order · content first · breakpoint DOM

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/F2.14.2