three-tap-reading-2026-11-14.md 3.2 KB

三遍点读显示与手势修正 — 2026-11-14

后续已获用户授权发布,线上状态与三入口验证见 发布验收记录。下文保留发布前验证记录。

交付范围

  • 英文轮次第 1 次显示音标、第 2 次立即显示中文、第 3 次隐藏中文并保留音标;中文轮次第 1 次仅读音、第 2 次显示英文、第 3 次隐藏英文。
  • 提示直接由点击次数决定,不等待音频播放结束;音频失败、中断、迟到结束回调不影响点读提示。
  • 手动乱序、整轮结束、初始化/离开重载均清空临时提示。完成词额外点击只重播,次数仍封顶 3。
  • 主词、音标、释义从左至右排列;英中同字号,长词/长释义在各自区域换行。
  • 长按至少 450ms 后向左滑至少 40px 显示中文,松手保持;不计次数,不推进轮次。该词下一次普通点击收起临时提示,即使原顺序规则阻止其学习进度。中文轮次不会因手势额外显示英文。
  • 短划、右划、竖划、取消、第二指加入不触发中文;抑制手势附带的点击,保留随后普通点击与键盘点击。

保持原样的规则

一组最多 6 词,选择 10 词仍拆成 6+4。每组顺序英文、乱序英文、中文挑战三轮,每轮每词 3 次;三轮结束后依次配对、听音识意、组合拼写,再继续下一组或进入原完成流程。顺序限制、跳过规则、记录保存和历史学习遍数均未改动。

验证记录

  • 定向组件/路由/手势回归:112 项通过。覆盖老师课程带学、老师生词本、学生生词本自学的三轮提示、重置与配对→听音→拼写路由。
  • 首次旧实现回归复现第二次点击未立即显示答案和未识别手势。测试夹具原误按选中10词期待首组10词,核对原始6词分组后修正夹具,未改产品分组。
  • 独立审查发现两项边缘缺陷:被顺序限制阻止的点击未清除临时提示、第二指加入未取消手势。两项均先新增/修改回归,观察失败,再修复。
  • 最终全移动端回归:396 项通过,进程退出码 0。
  • 相关服务端回归:26 项通过(批次、释义、词库发布、生词本、课程累计遍数)。
  • 最终移动端生产构建通过;现有组件样式体积和 PDF 依赖 CommonJS 警告仍存在。
  • 浏览器最终三个入口全流程通过,包含长词、长释义与纵向滚动,进程退出码 0。脚本 scripts/check-three-tap-reading-browser.mjs 使用本地产物、隔离 API 与音频夹具,屏蔽所有外部请求。

证据与边界

浏览器在 Chrome 中执行真实鼠标长按拖动与 CDP 触摸事件;检查 320/375/768px 的实际字号、右侧布局、溢出以及截图。每个入口选择10词,保留6+4分组,各完成90次正常点读、两组配对/听音/拼写;最后停在拼写完成页,不声称已做正式数据保存验收。

没有操作正式账号或写入正式学习记录,未做实体手机/微信实机验收,未发布生产环境。Git 提交推送与部署分别记录。

证据保存在 /Users/mac/.local/state/xiaoshu/qa/2026-11-14-three-tap-reading/,含最终日志、浏览器结果 JSON 与截图。