Files
ElyOffice/tasks/reviews/S4-r1.md
T

14 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
FAIL
site/src/touch.ts:35 — 鼠标移出会清掉仍然有效的键盘焦点反馈,违反 S4 的“焦点可见”。复现:1280×1000、减少动效开启,Tab 聚焦 ElyDoc,再将鼠标移入该建筑并移出;activeElement 仍为 ElyDoc 链接,caption opacity 已变为 0,四个积木的 lifted 全被移除。style.css:63 的链接本身裁成 1×1 像素,截图确认此时全部可见焦点反馈消失。修复方向:分别维护悬停与聚焦状态,以两者的有效状态共同决定显示,并保持聚焦建筑的可见标识。
site/src/touch.ts:34 — 上浮直接改变负责悬停判定的积木位置,底缘进入会触发循环进入、离开,违反 S4 的稳定悬停上浮。复现:1280×1000,从模型外移动到 ElyDoc 底缘 (568.57, 510.96) 后保持鼠标静止;普通动效模式下 600 毫秒内记录到 17 次交替 pointerenter/pointerleave,建筑与名称持续闪动。减少动效模式下则立即触发一次进入和离开,建筑回到原位、名称隐藏,鼠标沿底缘轻移会重复该过程。修复方向:使用位置稳定的命中区域判定整座建筑的悬停,将视觉位移与命中区域分开。
site/src/touch.ts:10 — --step 使用 UNIT / 2,悬停及鼠标按压仅移动半格,违反 S4 的“上浮一格、下沉一格”。iso.ts 定义 UNIT=28,垂直高度同用这一单位。复现:1280×1000、减少动效开启,ElyDoc 积木上浮前后的实际 bounding rect 高度位置差为 14.00598 像素,同一 SVG 比例下一格为 28.01197 像素;鼠标按下只回移这半格。修复方向:交互位移使用模型统一的一格高度,并以实际渲染位移验证。
site/src/touch.ts:44 — Enter 的按压状态被同一次 keydown 产生的原生 click 立即清除,键盘操作没有可见下沉反馈。复现:Tab 聚焦 ElyDoc 后按住 Enter;location.hash 已为 #elydoc,pressed 数量为 0,实际 bounding rect 与聚焦时完全相同,下沉位移为 0。修复方向:让键盘按压状态跟随实际按下与释放,导航点击与视觉按压的结束分别处理,失焦时清理状态。
site/src/touch.ts:37 — 每次 pointerup 都直接导航,缺少有效主按钮按压的判定,会把右键及外部拖入后的释放当成激活。复现:地址 hash 为空时右键 ElyDoc,hash 变为 #elydoc;从 (10,10) 按住鼠标主键,拖入 ElyDoc 的 (580,445) 后释放,同样变为 #elydoc,尽管按压起点位于建筑外。修复方向:仅由在该建筑开始的有效主按钮点击激活,取消或离开时结束手势,并保留键盘链接激活。
site/src/main.ts:38 — S4 交互入口缺少回归测试,当前测试无法发现整个功能被移除。本轮在临时副本独立执行构建及测试,基线构建通过、10 项测试通过;随后删除 touch 的 import 与此处调用,六个链接、悬停、按压及焦点反馈全部消失,构建与同一 10 项测试仍全部通过。现有两份测试仅导入 iso.ts/model.ts。修复方向:增加覆盖实际交互入口、鼠标与键盘状态转换、渲染位移和减少动效的测试,使移除入口及上述缺陷的变异触发失败。