# Safari兼容性一致性证据说明 ## 1. 目标与验证强度 `cmd/safari-conformance`用于把同一发布候选在macOS真实Safari上的关键流程结果形成`safari-compatibility-conformance-report-v1`。本项目采用最小充分矩阵:发布依据中的`CURRENT`和`PREVIOUS`两个Safari版本,各验证桌面`1440×1000`与平板响应式`1024×900`两种视口,以及六条关键业务流程,共24项结果。不在每个版本重复所有低风险按钮组合,也不以覆盖率或截图数量替代功能结论。 Playwright WebKit、Chrome、Edge、Windows上的浏览器或人工构造数据只能输出`NON_SAFARI_TOOLCHAIN/external_validation_required=true`。只有macOS真实Safari证据完整时,报告才为`REAL_SAFARI/external_validation_required=false`。 ## 2. 六条关键流程 | 标识 | 验证范围 | |---|---| | `AUTH_SESSION` | OIDC登录、回调恢复、会话失效提示和重新登录 | | `FAMILY_WORKSPACE` | 家庭成员、长者授权、设备、固件、通话、故事记忆、分享和隐私八个页签可进入并正确渲染 | | `OPERATIONS_WORKSPACES` | 运行配置、费用额度、告警处置和联调诊断工作台可进入、刷新和恢复 | | `REALTIME_NAVIGATION` | SSE已连接,工作台URL刷新、前进、后退和深链恢复正确 | | `MEDIA_FILE_CONTROLS` | 音频控件可播放;上传/下载确认区、Web Crypto摘要和私有对象访问无浏览器阻断 | | `CONTROLLED_ACTIONS` | 代表性页面内受控表单能打开、校验、取消,目标冻结且不依赖浏览器弹窗 | 每项结果必须为`PASS`,并要求控制台错误、非预期失败请求和横向溢出均为0。预期的401恢复、被取消SSE或有意阻断请求应在执行记录中说明,不能笼统计为0来隐藏异常。 ## 3. 采集结构 输入使用`safari-compatibility-capture-v1`: - 顶层绑定`candidate_version`、`build_digest`、`environment`、版本发布依据、变更工单、执行人、独立复核人和采集时间; - `runs`恰好覆盖`CURRENT`与`PREVIOUS`,两者`browser_version`必须不同; - 真实证据中`browser_name`固定为`Safari`,同时记录macOS版本、脱敏机器引用以及`SAFARIDRIVER`或`MANUAL_OBSERVED`执行方式; - 每个运行包含六流程与两视口的12项`results`,每项保存截图、视频、日志或人工记录引用; - 不保存登录令牌、Cookie、录音正文、字幕正文、匿名分享口令或个人敏感信息。 “最近两个版本”不硬编码到校验器。QA应在每次候选冻结时依据Apple公开发布信息或组织批准的浏览器基线登记`release_reference_ref`,把当时的版本映射为`CURRENT/PREVIOUS`,避免升级后仍把旧版本误报为最新。 ## 4. 一致性检查与证据包门禁 报告执行11项检查:采集模式、来源、候选身份、候选绑定、环境身份、Safari版本覆盖、视口覆盖、流程覆盖、功能结果、证据引用和时间线。 `SAFARI_COMPATIBILITY`不可豁免。索引标记`VERIFIED`时,第一个文件必须是同候选的`PASS/REAL_SAFARI`报告,并完整包含24项结果。证据包清单中的`safari_compatibility_validation`汇总两个版本、运行数、结果数和缺口。非Safari报告或缺任一版本时必须保持`PENDING`。 ## 5. 现场执行步骤 1. 固定候选版本、镜像摘要、目标环境和Safari发布依据。 2. 分别在两个真实Safari版本上执行两种视口;每个视口只跑六条关键流程。 3. 保存脱敏截图/视频、控制台与网络失败摘要,并填写采集JSON。 4. 由不同于执行人的QA复核版本、候选、错误计数和证据引用。 5. 生成报告: ```powershell go run ./cmd/safari-conformance ` -capture E:\evidence\safari-capture.json ` -candidate-version 0.63.0-rc.1 ` -build-digest sha256:<64位摘要> ` -output E:\evidence\safari-report.json ``` 6. 将报告作为`SAFARI_COMPATIBILITY`首个文件并重建候选证据包,确认`coverage_complete=true`。 本地仅验证采集与报告工具链: ```powershell .\scripts\smoke-safari-conformance-toolchain.ps1 ``` 该脚本不启动Safari、不声称页面兼容,也不会把外部门禁改为通过。