Design Guidelines

XR 体验设计规范

在追踪、现实叠加和沉浸中,让位置可信、操作可控、身体有退路。

7 条原则 · 49 条规则 · 必须 43 · 应当 6

目录

在追踪、现实叠加和沉浸中,让位置可信、操作可控、身体有退路。

本规范覆盖手持 AR、光学透视、视频透视和不透明头显,以及以追踪视图呈现内容的设备。适用于准备、放置、输入、移动、共享、中断、恢复与退出。只有普通屏幕三维装饰且不依赖上述条件的产品,不因使用“沉浸”命名而自动适用。

规范由七条原则、49 条规则组成。可复用参数见Design Token,依据与证据边界见参考来源

0. 适用范围与能力声明

先声明设备、显示、追踪、输入、模式与内容类,再判断每条适用条件。能力未知、实现未完成、尚未测试和不适用分别记录。平台代管某项能力时,验证其接入与失效处理,不要求应用伪造不可取得的状态。

维度必须区分验证重点
显示不透明/视频透视/光学透视/手持现实可见性、亮度、遮挡与可读条件不同
追踪方向与位置;头部、输入源、锚点、平面、深度分别判定一项有效不证明其他项有效;未知与过期不等于正常
呈现平台窗口、有界三维内容、自绘场景放置、裁切、缩放、重定向和退出的责任方
输入注视结合手势、手部射线、直接操作、控制器、外设、辅助输入支持集合、系统保留动作、替代途径与中断
身体坐姿、站姿、原地、移动;产品支持时包含躺靠姿势与活动空间不能靠界面尺寸推断
共享同场/异地;内容同步/坐标配准/参与者位姿私人视点、共享对象与真实身体分别核验

本规范要求设备相关的性能和舒适验证,不提供跨设备统一的人因数值,也不替代光学工程、医疗判断、场地安全或适用法律的专项工作。文档通过检查不等于产品已通过设备或用户验证。

1. 七条原则

原则规范对象
R1 呈现与输入符合设备能力内容呈现和输入通道
R2 空间配准有据可查真实基准与追踪绑定
R3 现实信息保持可判断虚实叠合与环境证据
R4 视点运动由人掌握虚拟自运动与身体映射
R5 身体活动有明确前提物理场地与身体接近
R6 沉浸状态可进可退会话控制与感知转换
R7 感知数据与共享可控数据采集、使用和外发

每条规则按直接义务对象归属一条原则。R1 管呈现是否可用,R2 管绑定是否仍成立;R4 管虚拟视点如何运动,R5 管真实身体所处的条件;R6 管会话,R7 管数据。一个机制可以支撑多条义务,不能因此省略任一适用要求。

2. 规则的读法与速查

必须/禁止/不得是硬约束;应当/不应当允许有理由的偏离,但须记录替代与验证。标题强度不覆盖正文独立子句中的硬约束。“不能”只表达能力限制。适用和边界限定正文范围;设计应用、验证与反例辅助理解,不强制唯一组件。合格同时要求避免遗漏和过度打断。

规则强度
R1-1 参考系是显式选择必须
R1-2 位置与尺度按人解析必须
R1-3 主任务落在不必转身的范围内必须
R1-4 初始放置由系统负责必须
R1-5 重新放置由人决定并被记住应当
R1-6 同时在场的内容有排布规则应当
R1-7 空间选取明确且操作可取消必须
R1-8 空间信息提供可达的替代表达必须
R1-9 画面稳定有预算且超限可降级必须
R1-10 手部操作符合追踪范围与休息姿势必须
R1-11 呈现容器与内容任务匹配必须
R2-1 绑定对象显式必须
R2-2 漂移与追踪质量是可观察的运行状态必须
R2-3 重定位后的错位有恢复路径必须
R2-4 锚点失效不等于内容丢失必须
R2-5 重定心不改变任务状态必须
R2-6 持久性表述与实现一致必须
R2-7 共享空间对齐可核验必须
R3-1 不遮挡安全相关的真实要素必须
R3-2 深度关系不交给用户去猜必须
R3-3 可读性按真实光照解析必须
R3-4 环境理解失效有已定义的降级必须
R3-5 虚拟物不冒充真实物必须
R3-6 环境变化触发重新适配应当
R3-7 透视的限制与失效可被判断必须
R4-1 移动方式是显式选择且可切换必须
R4-2 非用户发起的视点位移受约束必须
R4-3 舒适选项默认保守且运行中可达必须
R4-4 旋转与加速由人控制应当
R4-5 物理位移与内容坐标系对应必须
R4-6 不适可被表达且有即时出口必须
R5-1 场地要求显式且开始前确认必须
R5-2 边界可感知且分级必须
R5-3 不要求用户后退或进入看不见的区域必须
R5-4 越界与他人进入触发现实感知必须
R5-5 虚拟物不承担物理支撑应当
R5-6 同场参与者的身体位置单独核验必须
R6-1 沉浸程度显式且进入前可预知必须
R6-2 退出路径始终可达且不依赖沉浸内的操作必须
R6-3 现实感知通道随时可取得必须
R6-4 摘下与重新戴上的状态明确必须
R6-5 沉浸中不提出需要现实核对的请求应当
R6-6 失焦与中断恢复不续接旧动作必须
R6-7 模式转换后保留重新定向的时间必须
R6-8 休息与低刺激恢复始终可达必须
R7-1 在场他人不被当作场景要素必须
R7-2 旁观者与被摄入者可知必须
R7-3 空间与身体数据可知可控必须
R7-4 录制与共享的实际输出可核对必须

3. 规则详解

R1 呈现与输入符合设备能力

R1-1参考系是显式选择必须

一句话:跟随身体或输入源、固定于虚拟场景、锚定现实,是不同的位置承诺,得先选。

适用在 XR 视图中呈现持续内容的产品,包含纯虚拟场景。

规则每一类内容必须显式声明其空间参考系,至少区分头部/视图锁定(内容始终在视野固定位置,随头部姿态移动;这与跟随眼球注视不是一回事)、跟随身体(内容随人整体移动但不随头部转动)、跟随手或控制器、固定于虚拟场景、锚定于真实世界五类;同一内容在运行中切换参考系时,切换必须是可预期的事件而非渲染副作用,且必须让用户能看出它换了绑定方式。禁止把参考系交由引擎默认值或上一次会话的残留状态决定。头部/视图锁定的内容占据视野的比例与停留时长必须被显式限定,不得因为"总能看见"而默认长期驻留。

边界条件本条不要求产品提供全部五类参考系,也不规定哪一类更好;短暂的过渡动画不视为参考系切换。虚拟场景固定不承诺对齐真实物体;3DoF仅有方向追踪时不得伪造物理平移响应。用户主动重新放置内容见 R1-5;绑定失效与漂移见 R2。取头部/视图锁定一档时的驻留限制由 xr.placement.frame.headlocked.budget 表达。本条的"头部/视图锁定"由头部姿态决定,禁止实现为跟随眼球注视——后者会使内容永远处在用户想看的位置上,用户无法把视线从它上面移开。

设计应用把参考系当作内容类型的属性写进定义,而不是每个界面各自决定:短时必要提示可在验证后采用受限的视图锁定,工作面板可采用世界绑定;工具盘的跟随方式须按可达性与身体动作验证。需要"跟过来"的内容,用有延迟、有阻尼的跟随而不是刚性绑定,让人有机会把视线从它上面移开。

验证示例

  • 用户侧:原地转身 360 度,观察每一块内容是留在原处、跟着转、还是滞后跟随;另分别做"头不动只转眼"与"头转而眼睛保持看同一目标"两次,检查头部/视图锁定的内容是否只随头部姿态移动。
  • 实现侧:核对每一类内容是否有显式的参考系声明;检查是否存在未声明就跟随视线的元素。

反例做不到——错误提示锚在世界坐标上,用户走到隔壁房间后再也看不到它;做过头——把所有内容都做成跟随视线,用户想低头看真实的键盘时整片界面跟着一起低头。

依据与参考多家平台文档都不建议把内容刚性锁定在头部朝向上,理由分别是“被困住”的感受、不适,以及“不像世界的自然组成部分”;接口规范也提示以视点为原点的参考空间不作重力对齐(见 reference.md R01、R10、R14)。

R1-2位置与尺度按人解析必须

一句话:内容多大不看像素,看它在人眼里张开多少角度、离人多远。

适用在 XR 视图中呈现需要阅读或操作的内容的产品。

规则内容的尺寸与目标区域必须按用户当前位置下的视角尺度解析,而不是按纹理像素或固定的世界单位;同一内容在不同观看距离下必须仍然满足产品声明的可读与可点选下限。产品必须显式声明每类内容的建议观看距离范围及其依据来源(平台指南、自测或用户研究),并说明超出该范围时的行为——放大、限制接近、还是提示重新放置。仅声明距离范围不足以兑现可读承诺:产品必须另行声明每类内容的可读角尺度下限与可点选角尺度下限,以及其测定距离、测定设备与目标人群(xr.placement.angular_limits),并声明主任务可达区xr.placement.primary_region)——完成主任务所必需的内容与控件落在该区内。禁止把二维界面的绝对像素或磅值直接当作空间中的尺寸依据

边界条件本条不规定具体的角分、米数或磅值门槛——这些取决于设备光学、内容类型与目标人群,须由产品测定并记录依据(见附录 B)。角尺度下限的取值要求是有单位、有测定条件、区间端点明确、最小值不大于最大值,本规范不给出数值,也不允许跨设备沿用他方平台的数值。刻意要求用户走近观看的内容(如空间中的实物比例展示)不受"任意距离可读"约束,但仍须声明其有效距离范围。

长时间阅读与近距离直接操控须分别验证;避免让频繁切换的控制分布在反复调焦的深度。自绘立体内容还须核对双眼视差与遮挡等深度线索是否一致,大面积亮度转换应给出适应过程(xr.environment.visual.comfort)。

设计应用把"这块内容在推荐距离上占多少视角"作为设计交付的一项,与视觉稿一起评审。对可被用户任意移动的内容,考虑随距离调整实际尺寸以保持视角恒定,并说明这项行为存在——否则用户会以为自己走近了它却没变大是个 bug。

验证示例

  • 用户侧:在产品声明的最近与最远距离上分别执行同一任务,检查文本可读、目标可选。
  • 实现侧:核对每类内容是否有声明的距离范围与依据记录;检查缩放策略在边界距离上的行为。

反例做不到——把手机端的 16 磅正文直接搬进空间,用户站在两米外完全读不出;做过头——为保证任意距离可读而让所有面板随距离无限膨胀,走近一步就被界面糊满整个视野。

依据与参考平台侧存在按距离自动调整实际尺寸以保持视角恒定的做法,并把固定尺寸留给需要真实比例的非交互物体;各平台给出的建议观看距离彼此不同且绑定各自光学,不构成通用值(见 reference.md R01、R03、R10)。

R1-3主任务落在不必转身的范围内必须

一句话:常用的东西不该逼人扭头、仰头或者转一圈去找。

适用具有主任务流程、且用户可能长时间停留的空间应用。

规则完成主任务所必需的内容与控件,必须落在用户保持当前站姿或坐姿、不作大幅头颈转动即可到达的范围内;产品必须显式定义这个范围并说明其依据。禁止把必需的控件放在需要转身、仰头、俯身或起立才能看到的位置,除非该动作本身就是任务内容且已在开始前告知(见 R5-1)。需要用户环视才能发现的内容,必须同时提供不依赖环视的入口或指示。持续任务中的注视焦点不得长期固定在需要仰视的高度。

边界条件本条不禁止在视野之外放置探索性、装饰性或次要内容,也不要求把全部内容压进正前方一小块区域——那会与 R1-6 冲突。以身体活动为目的的产品仍须提前声明动作、姿势与场地要求,并保留暂停和退出入口。

设计应用把内容分成"必需""常用""按需"三档,只对前两档施加范围约束;对第三档提供召回入口,让用户不必靠转头去找。为坐姿使用提供与站姿不同的默认布局,而不是把站姿布局整体下移。

验证示例

  • 用户侧:坐在椅子上不转身完成一次完整主任务,记录被迫转头或起身的次数。
  • 实现侧:核对必需控件的方位角与仰角是否落在声明范围内;检查是否存在只能靠环视发现的必需入口。

反例做不到——把确认按钮放在用户正后方,理由是"空间很大不用节省";做过头——把包括帮助文档在内的所有内容都压进正前方一块窄条里,浪费掉空间界面唯一的优势。

依据与参考平台文档建议让用户在基本不动的情况下使用应用,并给出注视角度与颈部转动的建议范围(该组数值未标注文献出处,且绑定其自身设备世代,见 reference.md R01、R10)。

R1-4初始放置由系统负责必须

一句话:内容第一次出现的位置是产品的责任,不是让用户自己去捞。

适用新建、恢复或被动弹出内容的空间应用。

规则任何新出现的内容,产品必须为其确定一个初始位置,该位置须满足:在用户当前视野内或有明确的引导指向、不与已知的真实表面相交、不叠在已有内容之上遮住其关键部分。恢复上次会话的内容时,若原位置在当前环境中不可用(房间不同、表面消失、超出边界),必须重新解析到一个可用位置并让用户知道它被移动过,禁止把内容放在用户无法到达或看不到的地方后不作任何提示。被动弹出的内容还须遵守 R1-1 的参考系声明与 R3-1 的遮挡约束。

边界条件本条不要求初始位置一定是"最优"位置,也不禁止产品在用户重新放置后沿用用户的选择(见 R1-5)。环境理解不可用时的放置降级见 R3-4。

平台窗口、有界三维内容与自由场景可能有不同的初始基准。应用必须分别核验坐姿、站姿及产品支持的躺靠姿态,不把系统窗口的自动放置承诺延伸给自绘物体。

设计应用把初始放置写成一个可测试的解析过程——候选位置、约束条件、回退顺序——而不是一句"放在用户前方一米"。回退顺序末档不依赖已经失效的能力;无可用位置时暂停空间呈现,不凭空声称已经找到可用位置。

验证示例

  • 用户侧:在杂乱房间、空房间与狭小房间中分别新建同一内容,检查它出现在哪、是否穿墙、是否被遮住。
  • 实现侧:核对是否存在初始位置的显式解析逻辑与回退顺序;注入环境理解失败,检查是否进入已验证的兜底呈现,或暂停空间呈现并保留内容入口。

反例做不到——面板生成在世界原点,用户第一次打开时它在墙外面;做过头——每次新建内容都先要求用户手动在空中指定一个落点,把一次点击变成三步操作。

R1-5重新放置由人决定并被记住应当

一句话:用户把它挪到哪儿,下次它就该在哪儿。

适用允许用户移动、缩放或重新锚定内容的产品。

规则用户对内容位置、朝向与尺度的调整应当被保存,并在同一环境下的后续会话中恢复;恢复失败时应当说明原因而不是静默回到默认位置。系统禁止在用户已经显式放置之后,未经用户操作而移动该内容,但为满足 R3-1(遮挡安全要素)、R5-2(越界)或环境变化(R3-6)作出的移动除外,且这类移动必须可被用户看出、可被理解。用户应当能请求恢复原布局;恢复之前必须重新核验当前环境、边界与遮挡条件。原位置仍不可用时禁止恢复到该位置——应当说明原因,并提供安全的候选位置,或保留用户的布局意图以待重新放置;撤销不保证旧坐标仍然可用。环境状态无法确认时按"未确认"处理,不按"可用"也不按"已不可用"。用户应当能把内容一步恢复到系统默认放置。

边界条件本条不要求跨环境、跨设备保持位置——那是 R2-6 的持久性承诺范围。也不要求为每一个瞬时提示保存位置。

设计应用把"用户放过"作为内容的一个状态位,让后续的自动布局逻辑读取它;自动整理、自动贴合与自动跟随都应当先检查这个状态位再决定要不要动手。

验证示例

  • 用户侧:把面板挪到右侧墙面,退出重进,检查它是否还在右侧墙面。
  • 实现侧:检查自动布局是否会覆盖用户放置;核对系统发起的移动是否都有对应的允许理由与恢复入口。分别构造"原位置已恢复可用""原位置仍有障碍""环境状态未知"三种情况,核对产品既不返回不合格位置,也不丢失内容、用户的布局意图与恢复入口。

反例做不到——用户每次进来都要重新把工作面板从正前方拖到侧面;做过头——用户放过一次之后,即使该位置已经被真实家具占据、内容整块穿进沙发里,系统也坚持不动。

R1-6同时在场的内容有排布规则应当

一句话:第二块、第三块面板出现时,不能各自为政地叠在一起。

适用允许多个内容单元同时存在于空间中的产品。

规则产品应当定义多内容同时在场时的排布规则,至少覆盖新内容与已有内容的相对位置、叠放与穿插的处理、以及数量上限或密度上限;超过上限时应当有明确的处理方式(拒绝新建、折叠、归组或提示用户整理),而不是继续叠加。同时在场的内容应当有可被区分的层次,使用户能判断哪一块是当前焦点。

边界条件本条不规定具体的数量上限,也不要求提供自动整理功能。共享对象的身份与空间对齐见 R2-7。

设计应用把"再开一个"当成一个需要设计的动作而不是一个循环里的第 n 次调用:新窗口出现在哪、旧窗口让不让位、让位之后能不能回来,三件事分别定义。

验证示例

  • 用户侧:连续打开产品允许的最大数量的内容单元,检查是否出现互相穿插、完全重叠或无法定位的情况。
  • 实现侧:核对是否存在显式的排布规则与上限;检查超限行为是否已定义。

反例做不到——第五块面板与第二块完全重合,用户只能一块块拖开才知道有几块;做过头——强制网格吸附,用户无法把两块内容并排放在同一张真实桌子上。

R1-7空间选取明确且操作可取消必须

一句话:看见、指向、选中和提交是不同状态,伸手够不到时仍有办法。

适用提供可操作空间对象的产品。

规则产品必须定义对象的可操作范围、命中区域、遮挡后的命中顺序,以及未指向、已聚焦、操作中、已提交或已取消的反馈。近场接触与远场射线并存时,必须规定接管条件并保持对象身份;禁止两条输入路径重复提交同一次动作。对象被遮挡、输入追踪丢失或焦点被抢占时,不得把最后一个有效姿态继续解释为提交;拖拽须保留草稿或按声明取消,并重新校验后才能提交。主任务不得只靠持续抬臂、精细捏合、双手同时动作或注视停留完成;必须提供经目标人群验证的替代路径。

边界条件不要求应用取得原始眼动数据;系统命中与辅助输入可承担选取。注视停留可作为用户选择的辅助激活方式,但须有进度、取消与防重复机制。高后果提交另按 R6-5。

设计应用工具留在舒适手位,远处对象用射线或列表选取。开始拖动锁定对象,释放前核对位置;有重叠目标时允许循环选择或临时分离。

验证示例

  • 用户侧:用单手、坐姿和替代输入完成选取、拖动与取消,确认不用伸手穿过真实桌面。
  • 实现侧:在拖动中注入丢手、射线与触控同帧命中、目标被遮挡,核对无误提交或重复动作。

反例做不到——射线点穿前景面板,修改了后面的对象;做过头——为每一次普通选取都加确认弹窗。

依据与参考机制与需求线索见 reference.md R03、R04、R25、R26;具体行为要求是本规范的设计判断。

R1-8空间信息提供可达的替代表达必须

一句话:看不清、听不见或无法转头时,仍能找到信息与控制。

适用包含任务信息、声音提示、字幕或可操作界面的空间产品。

规则关键对象与控件必须提供可被目标平台辅助技术识别的名称、角色、状态与操作;自绘对象缺少语义通道时,必须提供等效的可访问列表或面板。关键指示不得只依赖颜色、立体深度或声音方位。含语音或重要声音的内容必须提供字幕或文字等价信息;字幕须说明说话者或来源,并能在声明的视野和字号范围内阅读。产品必须保留平台提供的文字放大、降低动态效果和替代输入能力;适配后不得遮挡退出与关键提示。

边界条件不要求所有内容都复制到所有通道;按任务及目标人群选择可行替代。字幕的持续可见属于用户明确选择的辅助呈现,按内容类单独声明视图锁定预算,不套用瞬时提示的短时上限。

设计应用让用户选择字幕位置与字号;目标在视野外时给方位提示和可访问列表。空间声音提供来源文字与可用的单声道选项。

验证示例

  • 用户侧:启用放大与替代输入,关闭音频或立体线索后完成主任务;确认字幕不会迫使用户反复转头寻找。
  • 实现侧:检查语义树、焦点顺序、字幕来源和时间同步;放大后重算布局及命中区。

反例做不到——唯一的返回提示是从背后传来的声音;做过头——同时大声播报并闪烁每个装饰对象。

依据与参考机制与需求线索见 reference.md R25、R26;具体行为要求是本规范的设计判断。

R1-9画面稳定有预算且超限可降级必须

一句话:卡顿、迟滞和闪烁发生时,产品有明确的让步顺序。

适用实时渲染空间内容的产品。

规则产品必须按目标设备和运行模式声明帧时间、连续异常帧、输入反馈时延及其测量方式,并定义超限检测、降级和恢复条件。实际应用出帧、显示刷新与重投影须分别记录,不得用平均帧率掩盖连续卡顿。负载过高时先减少非关键视觉复杂度或暂停高运动内容,保留关键文字、输入回执和退出通道;禁止冻结头部响应来伪装稳定。全视野亮度突变、频闪与快速大面积运动必须纳入内容评审,非必要刺激应当可关闭或减弱。

边界条件本条不规定统一帧率、延迟或光敏阈值,不承诺消除不适。平台负责的合成、追踪或退出故障按实际故障域验证,不由应用声称控制硬件。

设计应用把高精度模型加载拆成可取消的阶段;先降阴影与粒子,避免一降画质就使文字不可读。温升和录制开启也作为负载条件。

验证示例

  • 用户侧:在声明的长时间与高负载条件下完成任务,检查调整后目标仍可选、退出仍可达;不主动让参与者暴露于危险闪烁。
  • 实现侧:注入帧尖峰、连续缺帧和延迟输入,记录检测到处置的耗时、降级后的实际帧时间及恢复滞回,不能只检查配置值。

反例做不到——平均帧率合格就忽略每次开菜单时连续停帧;做过头——任何单帧波动都退出整个体验。

依据与参考机制与需求线索见 reference.md R26、R27;具体行为要求是本规范的设计判断。

R1-10手部操作符合追踪范围与休息姿势必须

一句话:手部操作符合追踪范围与休息姿势,不能把能力假设交给用户承担。

适用以手势、直接触碰或手部射线完成任务的体验。

规则必须按目标设备验证手的可追踪范围、可见范围和舒适活动范围;三者不得相互替代。定义直接/间接操作的任务分工、单手替代与近远切换条件。手被遮挡、离开追踪范围或源切换时,取消未完成激活并保留已提交结果,不把估计姿态当作可靠的新操作。缺少实体触感时,必须反馈命中、已抓取和已提交等关键状态,关键反馈不得只依靠声音。持续非运动任务必须允许放下手休息;休息不失去成果。

边界条件不要求所有任务都支持同样手势。以双手协调为任务本体的活动须提前说明;普通菜单、退出和恢复不得以双手完整动作作为唯一入口。

设计应用优先复用平台交互语义;射线选取用于远端面板,直接操作用于近处对象,交接时锁定对象并提示当前方式。自定义手势要避开系统手势,并提供可发现的教学与替代入口。

验证示例

  • 用户侧:用单手、低位手、双手交叉和持物情境操作;能辨认识别失败并恢复,未被要求一直抬臂。
  • 实现侧:分别注入手追踪失效与头追踪有效,核验依赖隔离、近远接管和取消,不以预测手继续提交。

反例做不到——手消失后沿旧轨迹继续拖拽;做过头——每次手放下都全屏警告并重做教程。

依据与参考reference.md A02、M01、M02;具体义务与验证程序为本规范的设计判断。

R1-11呈现容器与内容任务匹配必须

一句话:呈现容器与内容任务匹配,不能把能力假设交给用户承担。

适用使用窗口、有界三维内容或沉浸空间的体验。

规则必须明确平台管理与应用管理的放置、裁切、缩放、输入及退出责任。二维阅读与控制、可从侧面查看的模型、围绕身体展开的内容分别选择能兑现任务的呈现方式。改变容器时保留任务与可辨认的操作入口,告知对现实可见性和其他应用访问的变化;不得为展示三维装饰而强制提高沉浸。三维对象必须定义边界裁切和超出可用范围时的行为。

边界条件窗口、体积与空间的名称及能力属于平台约定;不要求所有平台提供相同容器。媒体或游戏主动选择沉浸可成立,但仍需可退出。

设计应用从可读窗口进入模型检视,再由明确入口进入围绕式呈现;共享控制与个人工具分别可辨认。

验证示例

  • 用户侧:在小空间和坐姿下打开模型、调整大小、返回列表,始终能找到控制。
  • 实现侧:逐项核对谁管理放置、重定心和可见性,测试对象超出容器范围及容器切换失败。

反例做不到——进入三维查看后关闭按钮被裁切;做过头——一段文字也要求用户先扫描房间。

依据与参考reference.md A01、A04、A06;具体义务与验证程序为本规范的设计判断。

R2 空间配准有据可查

R2-1绑定对象显式必须

一句话:这块内容锚在房间上、桌面上还是某个物体上,产品自己得说得出来。

适用把内容锚定于真实世界的产品。

规则每个世界锚定的内容必须有可解析的绑定对象,至少区分锚定于会话坐标系、锚定于持久化的空间锚点、锚定于被识别的平面或物体、锚定于地理位置;绑定对象不同,失效条件与恢复方式也不同,产品必须分别定义。禁止把不同绑定对象的内容当作同一类处理——绑定桌子的内容在桌子移动后,须依据目标运动追踪能力继续跟随或进入待重新绑定;绑定房间位置的内容不因桌子移动就切换绑定对象。绑定对象的选择必须在内容被创建时确定,并随内容一起持久化。

会话坐标系只放宽跨会话持久化要求,不取消位置追踪与恢复要求。位置追踪依赖不能满足时,禁止以"退回会话坐标系"作为回退——那不解除任何追踪依赖,只缩短了持久性。此时必须改用经目标平台验证的、不依赖世界锚定的备用呈现(如经验证可用的头部/视图锁定,仍受 R1-1 的驻留预算约束),或暂停空间呈现并保留内容的可访问性;备用呈现仍须满足其自身参考系与遮挡约束。

边界条件本条不要求向用户展示绑定对象的技术名称,只要求产品内部可解析、且失效时的表现与该绑定对象相符;取值由 xr.anchor.binding 表达。绑定须按坐标基准、绑定目标类、是否支持目标运动、持久范围四个维度分别声明,取值按内容类解析而不是按整个产品一次性求值placement.frameanchor.binding 的组合须落在已声明的合法组合内,"锚定真实世界 + 不锚定"一类矛盾组合为非法配置。

设计应用把绑定对象与"这块内容在什么条件下应该跟着走、什么条件下应该消失"一起设计。用户把时钟挂在墙上,墙没变,时钟就不该动。目标物体移动时的正确行为取决于产品是否具备对该物体的、已验证的运动追踪:具备时内容跟随(用户把便签贴在冰箱上,冰箱换了位置,便签跟着冰箱);不具备时内容进入"待确认/需重新绑定"状态并提供重新放置入口,不一律判为失效,也不假装仍然对齐——把一次静态平面拟合当成可持续追踪的可移动物体,是这里最常见的实现错误。

验证示例

  • 用户侧:移动被作为锚定对象的真实物体,观察内容是跟着走、留在原处还是消失,检查这与产品的设计意图一致。
  • 实现侧:核对每个持久内容是否记录了绑定对象类型;检查不同类型是否走不同的失效判定。

反例做不到——所有内容一律锚在会话坐标系上,重开应用后全体错位;做过头——为每张便签都创建一个独立的持久化地理锚点,把一次贴便签变成一次定位流程。

依据与参考平台把“附着于可追踪对象的锚点”与“固定于世界位姿的会话级锚点”作为两类不同对象,并区分本地锚点、云锚点与地理锚点;地理锚点还把“该位置不受支持”作为一档正常结果(见 reference.md R12、R11)。

R2-2漂移与追踪质量是可观察的运行状态必须

一句话:追踪不好的时候,让人知道,而不是让内容悄悄挪走。

适用依赖位姿追踪或环境理解维持内容位置的产品。

规则追踪质量必须作为一个可被产品内部读取、并在影响用户任务时可被用户感知的运行状态存在,至少区分正常、降级、丢失三档。头部、手部、锚点、平面与深度的追踪质量按实际依赖分别消费,其中一项正常不使其他项有效。位置精度下降到影响任务时,产品必须让用户知道当前处于降级状态,并说明可以做什么来改善(改变光照、放慢移动、回到已扫描区域);禁止在追踪降级时继续以正常状态的确定性呈现内容位置,也禁止把降级表现为内容的无声移动。追踪丢失时的行为按 R3-4 与 R2-4 分别处理。未取得、已过期或推算的位姿不得冒充当前实测;须保留来源、取得时刻与质量,并对精细放置、测量等任务配置提交门槛。恢复正常须满足稳定条件,禁止单帧变好就恢复全部操作;恢复须核验内容与现实的对应关系,不得由连接或会话恢复直接宣布已经对齐。

边界条件本条不要求持续显示追踪指标,也不规定档位的具体阈值——阈值由产品按任务对精度的实际要求测定并记录依据。极短暂的、不影响任务的质量波动不要求告知。平台不提供数值质量分数时,用可取得的状态枚举和任务误差表达本条,并明确哪些部分无法独立测定。

设计应用把"改善条件"的提示做成具体可执行的一句话,而不是一个警告图标——"回到刚才那个房间"比"追踪质量低"有用。对精度敏感的操作(对齐、测量、精细放置)在降级状态下应当阻止提交或明确标注结果不可靠。

验证示例

  • 用户侧:在弱光、白墙、快速移动条件下使用,检查系统是否告知状态变化,以及提示是否可执行。
  • 实现侧:注入追踪降级与丢失,核对内部状态是否切档、下游是否降级;检查是否存在"降级期间照常提交精确操作"的路径。

反例做不到——弱光下内容缓慢滑动了半米,界面上什么都没发生;做过头——每次质量小幅波动都弹一次全屏警告,用户在正常使用中被打断十几次。

依据与参考平台的追踪失败原因枚举把光照不足、移动过快、特征不足与内部错误分列,并为其中数项规定了面向用户的提示语义(内部错误一档明示没有用户动作可以解决);另一平台把追踪状态分为不可用、受限与正常三档,受限态再分为初始化、重定位中、移动过快与特征不足(见 reference.md R13)。

R2-3重定位后的错位有恢复路径必须

一句话:内容穿进墙里的时候,用户要有一步能把它拉回来。

适用支持跨会话恢复内容位置、或在追踪丢失后重新定位的产品。

规则重定位之后内容与真实环境不再对齐时,产品必须提供不依赖用户理解坐标系的恢复路径:至少包括把内容召回到用户当前位置、以及重新指定放置位置两项之一,且该路径在内容不可见(穿进墙内、位于身后、位于其他房间)时仍然可达。禁止把"重启应用"或"删除后重建"作为唯一的恢复方式。恢复操作不得丢失内容本身的数据(见 R2-4)。

边界条件本条不要求产品自动纠正错位,也不要求错位被自动检测到——但产品若能检测到内容与已知真实表面相交,应当据此主动提示(见 R3-2)。

设计应用把"把所有东西叫到我面前"设计成一个始终可达的系统级动作,而不是每个内容各自的右键菜单项——用户在内容看不见的时候,恰恰点不到那个菜单。

验证示例

  • 用户侧:在 A 房间放置内容,到 B 房间打开应用,检查内容在哪、以及能否一步取回。
  • 实现侧:构造内容位于墙内与身后的状态,核对恢复入口是否可达且不依赖对该内容的指向操作。

反例做不到——内容恢复到了隔壁房间,界面上没有任何入口,用户只能卸载重装;做过头——每次重新进入都强制弹出一次"请重新放置全部内容"的向导,即使位置完全正确。

R2-4锚点失效不等于内容丢失必须

一句话:锚没了,东西不能跟着没;至少要能说清它去哪儿了。

适用将用户创建的内容与空间锚点绑定的产品。

规则空间锚点失效、无法解析或被系统回收时,禁止连带删除或使用户无法取回其所承载的内容。产品必须把"内容的数据"与"内容的位置"分开保存,并在位置不可解析时仍然让用户能够访问、导出或重新放置该内容,同时说明位置为何不可用。锚点数量、存储期限或平台配额存在上限时,达到上限的行为必须已定义并可被用户知道,禁止静默丢弃最早的锚点

边界条件本条不要求产品保证锚点永久可解析——那取决于平台与环境;本条要求的是内容不因此消失,以及这件事被说清楚(恢复入口见 xr.anchor.recovery.entries)。用户主动删除内容不受本条约束。

设计应用给用户提供一个不依赖空间的入口(列表、库、时间线)来访问全部内容,把空间中的呈现当作它的一种视图而不是唯一存放处。

验证示例

  • 用户侧:清除设备的空间数据或在完全陌生的环境打开应用,检查此前创建的内容是否还能被找到。
  • 实现侧:核对内容数据与锚点标识是否分离存储;模拟锚点解析失败,检查内容是否仍可枚举。

反例做不到——用户重置了房间设置,三个月的空间笔记全部消失;做过头——为了不丢内容,把所有失效锚点的内容一次性堆到用户正前方,形成一堵墙。

依据与参考平台文档提示持久化锚点会长期占用其附近的传感器数据存储,建议只持久化真正需要跨会话找回的锚点,并在失去意义后从存储中移除(见 reference.md R11)。

R2-5重定心不改变任务状态必须

一句话:摆正视角是摆正视角,不是重开一局。

适用提供重定心、重新校准朝向或重设地面高度功能的产品。

规则用户或平台执行重定心时,产品必须按内容类型与参考系声明处理相应呈现和坐标变换,禁止因此重置任务进度、清除输入或改变已提交的结果;依赖当前位姿的拖拽、放置和测量提交须先暂停,待新参考系可用后重新校验,不把短暂暂停当作任务丢失。系统发起的参考空间变更(如平台侧的重定心或坐标系切换)必须被产品接住并处理为一次位置调整,而不是当作会话中断;发生可感知调整时应当让用户理解;仅做坐标换算而物理呈现未变时,无需增加无意义提示。重定心后的内容布局必须与产品声明的参考系一致(见 R1-1)。

边界条件本条不禁止产品在重定心时重新解析内容的放置位置——那正是重定心的目的;本条禁止的是任务状态被牵连。

设计应用把参考空间变更事件当作必须处理的输入。新旧变换已知时换算坐标,保持世界锚定对象的物理位置;关系未知时暂停依赖精确位置的操作,进入重新定位或重放置。用户主动召回可以改变布局,但不能把平台原点变化一律解释成“把全部内容搬到眼前”。

验证示例

  • 用户侧:在填写一段文本的中途执行重定心,检查已输入的内容是否还在。
  • 实现侧:触发平台侧的参考空间变更,核对任务状态、输入缓冲与进行中的操作是否受影响。

反例做不到——长按重定心之后,正在编辑的文档回到了打开时的状态;做过头——为避免影响状态而完全屏蔽重定心,用户在错误的朝向上使用了整场。

依据与参考接口规范把系统级重定心定义为参考空间原点的变更并要求运行时投递待处理的变更事件,同时允许“新旧原点关系未知”这一档;浏览器侧规范定义了原点不连续时的重置事件,并明确把它与同一区域内的短暂追踪丢失区分开(见 reference.md R14、R15)。

R2-6持久性表述与实现一致必须

一句话:说了"放在这儿以后都在",就要撑得住换房间、换设备或重新进入。

适用对内容的空间持久性作出表述的产品。

规则产品对内容"留在原地""下次还在""在这个房间里一直可见"等表述,必须与实际实现的持久化范围一致,并明确其边界:是否跨会话、是否跨环境、是否跨设备、是否跨账号,以及在哪些条件下会失效(系统重置空间数据、环境大幅改变、超出存储期限)。禁止使用"永久""一直""不会丢"等表述描述受平台配额、存储期限或环境条件限制的能力

边界条件本条不要求产品实现任何特定级别的持久性,只要求表述与实现对得上,且边界可被用户在作出投入之前知道。

设计应用在用户第一次创建可持久内容时说明其持久性范围,而不是等它丢了再解释;把持久性级别做成内容的可见属性,让用户自己决定哪些东西值得放在空间里。

验证示例

  • 用户侧:按产品表述逐项测试——换房间、换设备、重新进入后内容是否还在。
  • 实现侧:核对产品文案中的每一处持久性表述是否有对应的实现范围记录。

反例做不到——宣传"把笔记贴在你的房间里,永远都在",实际上换一副头显就全没了;做过头——在每次创建内容时弹出一段关于锚点存储机制的技术说明,用户看不懂也不会读。

依据与参考锚点的类型、解析与保存前提见 reference.md R11、R12、R28。运行时暂时无法定位不等于内容或持久锚点已被删除,持久承诺应分别说明保存和重新解析能力。

R2-7共享空间对齐可核验必须

一句话:共享了同一对象,不代表每个人看到同一位置。

适用多人同场共享物理位置,或异地共同操作空间对象的产品。

规则产品必须区分内容已同步、空间已对齐和参与者位姿可用三类事实,并明确共享对象的坐标基准与个人视图变换。对齐完成前不得把需共同定位的操作标为可用;失去对齐时保留内容与修改,暂停依赖共同位置的动作。一个人重定心或召回私人面板不得无声移动所有人的共享原点。异地协作须明确共享的是模型空间,不得将远端虚拟人物或指示表述为本地真实在场。

边界条件不要求每个参与者都上传房间模型,也不要求同场体验提供碰撞保障。每个人仍按本地场地、边界与权限裁决;他人的空间质量不能代替本人的质量。

设计应用共同放置模型前显示“模型已收到,正在对齐”;对齐失败仍可在个人面板上查看和编辑,恢复后只提交经重新核对的位置修改。

验证示例

  • 用户侧:两人指出共享对象的同一端点;让一人重定心或离开后重新进入,检查其他人的对象是否被无故移动。
  • 实现侧:注入单方锚点解析失败、旧位姿与重复同步事件,核对状态分别表达且内容未丢失。

反例做不到——收到共享锚点标识就显示“所有人已对齐”;做过头——为了共享一个模型强制所有人上传完整房间扫描。

依据与参考机制与需求线索见 reference.md R12、R28;具体行为要求是本规范的设计判断。

R3 现实信息保持可判断

R3-1不遮挡安全相关的真实要素必须

一句话:门、楼梯、台阶和人,不能被一块面板盖住。

适用在用户可见的真实环境上叠加内容的产品(含透视合成与光学透视两类呈现)。

规则虚拟内容禁止持续遮挡用户在当前情境下需要看见的真实要素,至少包括通行路径与出入口、高度落差(楼梯、台阶、边缘)、正在接近的人与移动物体、以及用户正在操作的真实器具。产品必须定义在检测到这类要素时的让位行为——移开、变半透明、局部裁切或整体淡出——并且在环境理解不可用时按 R3-4 采取更保守的默认。产品的环境理解能力禁止被表述为安全保障:能识别出一部分真实要素,不等于识别得全,让位机制不替代平台的安全边界(见 R5-2)。

边界条件本条不要求产品具备完整的环境语义理解能力,也不要求逐帧检测所有真实要素;能力不足时的正确做法是收缩内容的覆盖范围与不透明度,而不是宣称已经覆盖。用户明确选择的全沉浸体验按 R6-1、R6-3 处理,不适用本条的"让位"要求,但仍受 R5 的边界约束。

设计应用把"允许覆盖的区域"设计成一个由环境理解结果生成的可用区,内容只在可用区内放置;可用区不可解析时,按已验证的低遮蔽策略收缩或暂停叠加;不能把正前方任意区域默认当作可用,尤其不能挡住活动中需要查看的地面和障碍。

验证示例

  • 用户侧:先用场景回放和软性道具验证遮挡,再在有保护的真实环境复核,不要求参与者靠近楼梯边缘。
  • 实现侧:注入环境理解不可用与语义标签缺失,检查内容覆盖范围是否收缩、不透明度是否下降。

反例做不到——一块不透明的视频面板正好停在通往阳台的门口,用户走过去时才发现门是开的;做过头——把所有内容都做成 30% 不透明度并随时闪避,用户在自己的书桌前也读不完一段文字。

依据与参考平台文档明确把场景理解与透视画面与安全边界分开表述(见 reference.md R05、R06)。

R3-2深度关系不交给用户去猜必须

一句话:前后关系要么做对,要么明说做不对,不能让人靠试。

适用虚拟内容与真实物体或其他虚拟内容存在前后关系的产品。

规则产品必须为每类内容确定其遮挡与深度表达方式:正确的相互遮挡、显式的深度提示(阴影、接触点、边缘处理),或明确的"不表达真实遮挡"约定;三者选其一并保持一致。当产品无法实现与真实物体的正确遮挡时,禁止把内容做成看起来应当被遮挡的样子(例如让虚拟物看起来放在真实桌面之下),因为那会让用户按错误的空间关系去伸手。同一视野内内容的深度分布与深度变化频率必须被显式限定并说明依据,禁止把深度线索的矛盾表述为用户需要适应的问题

边界条件本条不规定具体的深度区间、视差数值或最小观看距离——这些绑定设备光学,须按目标设备测定并记录依据(见附录 B 与 xr.environment.depth.budget);本条也不要求实现完整的真实遮挡。

设计应用把"这块内容与真实世界有没有接触"作为一个设计决定:悬浮的内容不必假装有接触,贴在桌面上的内容就必须有接触表现。文字类内容尽量放在同一深度平面上,减少读一段话就要反复重新对焦的情况。

验证示例

  • 用户侧:把手伸到虚拟物前后,检查遮挡表现是否与产品约定一致;连续使用一段时间后询问眼部疲劳。
  • 实现侧:核对每类内容是否有深度表达方式的显式声明;在声明的观察窗口内统计深度切换次数、近场累计暴露及持续深度运动;检查超限处理。

反例做不到——虚拟按钮渲染在真实的手前面,用户以为自己没按到,反复戳;做过头——为避免深度冲突把所有内容压成同一平面贴在正前方,空间界面退化成一块悬浮显示器。

依据与参考辐辏与调节冲突的成因、内容深度分布与放置区间的平台建议见 reference.md R10;平台文档亦提示透视画面在深度与颜色线索上不等同于自然视觉(R06)。

R3-3可读性按真实光照解析必须

一句话:阳光下看不清的界面,不是用户的问题。

适用在真实环境光下呈现内容的产品,尤其是光学透视与户外使用场景。

规则内容的对比度与可读性必须按产品声明的使用光照范围解析,而不是按设计稿的深色背景解析;产品必须显式声明这个范围,并定义超出范围时的行为(提升对比、增加背板、提示更换环境或降级功能)。禁止把仅在受控光照下成立的可读性作为产品的默认承诺。关键信息与状态提示不得仅依赖颜色或细微亮度差异表达。

边界条件本条不给具体的亮度、对比度或色差数值——这些由设备显示能力与环境共同决定,须由产品测定并记录依据。二维界面的对比度要求(如 WCAG 2.2 的相关成功准则)可作为设计起点,但不能直接移植为空间中透视叠加的合格判据,因为背景是真实世界而不是已知底色(见 reference.md R17)。

设计应用在明亮的白墙、深色木桌、逆光窗前与户外这四种背景上分别评审同一界面,把最差的那一种当成设计目标;按显示能力选择背板、描边或重排;光学透视设备不得承诺用普通黑色填充遮住现实。

验证示例

  • 用户侧:在产品声明范围的最亮与最暗条件下分别执行同一任务,检查文本与状态是否可辨。
  • 实现侧:核对是否存在光照范围声明与超范围行为;检查是否有仅依赖颜色的状态表达。

反例做不到——浅灰文字直接叠在真实白墙上,室内尚可、走到窗边完全消失;做过头——所有内容一律加上不透明黑底,把透视设备用成了一台不透明的显示器。

R3-4环境理解失效有已定义的降级必须

一句话:认不出地面和墙的时候,产品要有一个已经想好的样子。

适用依赖平面检测、场景语义、深度重建或房间模型的产品。

规则环境理解不可用、不完整或明显过时时,产品必须进入已定义的降级状态,而不是以缺省值继续运行。降级状态必须规定:内容放在哪(不依赖平面的兜底位置)、哪些功能停用、用户被告知什么、以及如何恢复。禁止在环境理解失效时把内容放置到未经验证的位置并按正常状态呈现,也禁止把降级表述为用户操作失误。房间模型与真实环境已经不一致时(家具移动、房间改变),产品应当把它当作失效的一种处理。

边界条件本条不要求产品在降级状态下保持全部功能——明确停用是合格结果;不要求自动检测房间模型的过时程度,但产品若能检测则应当据此提示重新扫描。

设计应用把降级状态当成一个要设计的界面,而不是一段错误日志:保留不依赖失效能力的工作;核心任务确实无法继续时保住成果、说明原因并给出真实可行的恢复或退出路径。

验证示例

  • 用户侧:在完全黑暗、纯白无纹理墙面、以及未做过空间设置的新房间中启动应用,检查它呈现什么。
  • 实现侧:注入平面检测为空与场景语义缺失,核对是否进入声明的降级状态。

反例做不到——检测不到地面就把地面高度当作 0,整个场景沉在真实地板以下半米;做过头——检测不到平面就完全拒绝启动,用户在沙发上躺着什么也做不了。

依据与参考追踪与环境理解的失败成因(弱纹理、光照不足、环境改变、雷同空间)见 reference.md R11、R13;平台文档承认场景模型会随时间与物理世界失准(R05)。

R3-5虚拟物不冒充真实物必须

一句话:可以逼真,不能让人误以为它是真的从而作出现实决定。

适用呈现高保真虚拟物体、虚拟人物或虚拟环境要素的产品。

规则当虚拟内容可能被用户误认为真实存在的物体、人或环境要素,并据此作出现实世界中的判断或动作时,产品必须提供可被用户获得的区分手段——持续的视觉标识、可随时取得的现实感知通道(见 R6-3),或明确的告知。禁止刻意消除虚拟与真实的区分以取得用户的信任或诱导其作出现实动作;涉及支付、授权、签署与人身安全的场景,虚拟内容的性质必须被明确标识。虚拟人物不得被表述为真实在场的人。

边界条件以逼真为目的且用户已知情的娱乐、训练与创作场景不受"降低保真度"约束,但仍须满足"随时可区分"与"不诱导现实动作"两项要求。

设计应用把"用户会不会据此做一件现实中的事"作为判据:一块逼真的虚拟画挂在墙上不需要标识,一个逼真的虚拟台阶需要,一个可能被误认为真实在场客服的虚拟人物需要说明其身份与参与方式。

验证示例

  • 用户侧:让未参与设计的用户指出场景中哪些是真实物体,记录误认的项与后果。
  • 实现侧:核对可能引发现实动作的虚拟要素是否都有区分手段;检查区分手段在沉浸状态下是否仍可取得。

反例做不到——虚拟的地毯盖住了真实的地面落差,用户按地毯的平整程度迈步;做过头——给每个虚拟物体都加一圈闪烁的"虚拟"标签,把一个演示场景变成防伪教学。

R3-6环境变化触发重新适配应当

一句话:灯灭了、家具挪了、人换了个房间,摆设要跟着重来一次。

适用内容布局依赖环境特征的产品。

规则环境发生影响布局的变化时(光照条件改变、家具或表面移动、可用空间大小改变、用户换到另一个房间),产品应当重新解析内容布局与可读性,而不是维持基于旧环境的摆放。重新适配应当让用户看得出来,并可请求恢复到调整前的布局;恢复前必须重新核验当前环境、边界与遮挡条件,原位置仍不可用时不恢复该位置(处置见 R1-5)。禁止以"环境已变化"为由移动用户显式放置的内容而不作任何说明(用户放置的保护见 R1-5)。

边界条件本条不要求持续监测环境变化,也不规定触发重新适配的变化幅度;产品可以选择在会话开始时、在检测到明显变化时或由用户主动触发。

设计应用把"重新适配"做成一个用户可以主动调用的动作("按当前房间重新整理"),这样即使自动检测不灵,用户也有办法。

验证示例

  • 用户侧:使用过程中拉上窗帘、搬走作为锚定面的桌子,检查产品是否有反应。
  • 实现侧:核对布局解析是否可被重复调用;检查恢复原布局是否先重新核验位置,原位置不可用时是否保留布局意图。

反例做不到——用户从书房换到卧室,全部面板仍按书房的墙面布局摆放,一半在床里;做过头——每次有人在房间里走动就重排一次布局,界面整场都在漂。

R3-7透视的限制与失效可被判断必须

一句话:透视的限制与失效可被判断,不能把能力假设交给用户承担。

适用使用视频透视或其他现实感知画面的体验。

规则必须声明透视的来源、可用条件和无法可靠支持的现实任务;不得把有限视野、延迟或失真的影像表述为自然视觉或安全确认。现实细节不可判断时停止依赖该细节的指引,并允许降低叠加或退出。透视上的滤镜、遮蔽与虚拟物须共同计算对现实可辨认性的影响。透视失效不得自动切成更高遮蔽来掩盖问题。

边界条件光学透视的真实光路与视频画面不同,必须分别验证;“黑色背景”不保证能遮挡现实。应用无法检测的变化应保留未知状态。

设计应用保留一个低遮蔽路径;不要要求用户通过透视读出决定任务成败的微小现实标记,除非已在设备与任务条件下验证。

验证示例

  • 用户侧:在声明的光照、运动和距离范围内判断目标;条件不足时看得见限制与退出入口。
  • 实现侧:注入画面不可用、过期深度和现实遮蔽增加,确认不伪造看见现实的回执。

反例做不到——显示了透视就提示周围安全;做过头——每次启用透视都强制长篇免责声明。

依据与参考reference.md M03、M04;具体义务与验证程序为本规范的设计判断。

R4 视点运动由人掌握

R4-1移动方式是显式选择且可切换必须

一句话:瞬移还是连续移动,由人选,而且中途能改。

适用允许用户视点在虚拟空间中超出物理活动范围移动的产品。

规则产品必须显式声明其提供的移动方式,并且在提供连续移动时必须同时提供至少一种能够完成同类任务、不依赖连续光流的替代方式(瞬移、定点切换等);移动方式必须可在体验进行中切换,不得只能在开始前选择一次。默认值必须是产品所提供选项中较保守的一档。禁止把移动方式的选择表述为难度、成就或付费差异

人工定向移动必须说明“前进”按头部、手/控制器还是场景方向解析,区分实时跟随与开始时锁定;用户可了解并在支持集合内选择。改变方向映射先结束当前运动,输入源失效不延用旧方向(xr.locomotion.direction.mapping)。

边界条件本条不判定哪种移动方式更舒适——现有证据不支持给出跨产品的统一结论(见 reference.md R19、R21 与附录 B);本条要求的是选项存在、默认保守、且随时可换,分别由 xr.locomotion.modesxr.locomotion.comfort.defaults 表达。完全不移动视点的产品记录"不适用"。

设计应用把移动方式做成与音量同级的运行时设置,而不是新手引导里的一道选择题;切换时保留玩家在虚拟世界中的位置与任务进度。

验证示例

  • 用户侧:在体验中途尝试从连续移动切到瞬移,检查是否可达、是否需要重开、位置是否保留。
  • 实现侧:核对默认值是否为较保守一档;检查切换是否影响进度与存档。

反例做不到——只有连续移动一种方式,说明里写"建议先适应几分钟";做过头——只提供瞬移一种方式,把一款以自由探索为核心的产品做成了点位跳转。

依据与参考一项元分析报告控制器驱动的虚拟移动所对应的症状量表得分高于静止与真实行走两类;近期两项小样本比较研究在不适方向上与之一致,但其中一项在标准量表上未见显著差异,且瞬移被同时报告有方向感代价(见 reference.md R19、R21)。

R4-2非用户发起的视点位移受约束必须

一句话:不要在人没动的时候搬动他的视点。

适用可能由系统、内容或其他用户改变视点位置或朝向的产品。

规则非由用户当次操作发起的视点位移与旋转必须受限:产品必须列出允许发生此类位移的场景(过场、被动载具、被其他玩家携带、剧情需要),并对每一类规定用户能否事先知道、能否跳过、能否退出禁止在用户未发起的情况下改变其视点的高度与俯仰,除非该体验的性质已在开始前告知且用户可随时终止(见 R4-6)。其他用户或内容对本用户视点的控制,必须经本用户授权且可随时收回。

边界条件本条不禁止过场动画与载具类体验,也不要求所有位移都由用户按键触发;它要求的是这类位移被列出、被告知、可退出。用户自己的物理走动不属于本条范围(见 R4-5)。

设计应用把"系统会搬动你"的场景列成一张表,逐项决定告知方式与退出方式;被动位移期间提供一个稳定的静息参照(座舱、地平线、固定框),让视觉与前庭的冲突有一个参照点。

验证示例

  • 用户侧:进入含被动位移的段落,检查是否有事先告知、是否可跳过、是否可中途退出。
  • 实现侧:审计所有改变相机位姿的代码路径,核对每一条是否落在已声明的允许场景内。

反例做不到——剧情需要,镜头把用户从地面拉到二十米高空并旋转一圈,没有任何预告;做过头——为避免任何被动位移,把一段本该是电梯上升的过程改成黑屏加一行字。

依据与参考平台文档把视觉诱导的自身运动感(vection)列为不适的主要来源,并特别提示避免非用户发起的垂直运动、以及提供独立视觉背景等静息参照的做法(见 reference.md R07、R10)。

R4-3舒适选项默认保守且运行中可达必须

一句话:舒适设置不能只藏在开始前的设置页里。

适用提供舒适相关选项(移动方式、转向方式、视野遮罩、画面晃动、深度强度等)的产品。

规则舒适相关选项的默认值必须取产品所提供档位中较保守的一档,并且必须在体验进行中可达——用户开始感到不适的那一刻,正是最难退出去改设置的时刻。选项的名称必须描述它实际改变了什么,禁止仅以"强度""难度""真实感"等词表达舒适档位。产品必须说明每项选项影响什么,以及关闭它会失去什么。

边界条件本条不规定选项清单,也不要求提供全部常见的舒适手段;提供哪些由产品决定,本条约束的是默认值与可达性。

设计应用把舒适选项与暂停放在同一层,让"停下来"和"调低"是同一个动作的两个分支。把"产品预设的默认值"与"用户显式作出的选择"分开存放:前者记录适用设备与人群、评估依据、生效条件与适用范围;后者是用户数据,切换设备或体验模式时优先保留仍然可用的选择,原选择不再可用时须说明替代项,禁止静默升高刺激强度。"较保守一档"的排序先排除未经用户选择的持续转向与画面晃动,再按目标用户的可达性、不适反馈与任务可完成性取舍;证据不足时保留受限默认并提供明显可达的调整入口。

验证示例

  • 用户侧:在移动过程中尝试打开舒适设置并调整,记录所需步数与是否必须先退出。
  • 实现侧:核对默认值;检查设置是否跨会话与体验模式保留。

反例做不到——视野遮罩只能在主菜单里开,用户已经在关卡里晕了,要退出去才能开;做过头——每次启动都强制走一遍七页的舒适度问卷。

R4-4旋转与加速由人控制应当

一句话:转身的角速度和加速度是最容易致晕的两处,交给人。

适用提供人工转向或速度变化的产品。

规则人工转向的方式与幅度、以及移动速度的变化方式,应当由用户选择并可调;连续平滑转向应当作为可选项提供,而不是唯一方式。速度变化应当以有限的档位或短促的切换实现,避免长时间的持续加速。禁止在用户未发起的情况下施加持续的旋转或加速(用户已知情并可随时终止的被动段落除外,见 R4-2)。产品应当说明各档位的差别,让用户能据此选择。

边界条件本条不给转向角度、角速度、加速度或持续时长的具体数值——现有公开来源中的数值绑定各自的设备与内容,不构成跨产品门槛,须由产品测定并记录依据(见附录 B 与 reference.md R07)。

设计应用把"从静止到移动"设计成一次短促的切换而不是一段渐进的加速;把转向做成用户按一次转一段的形式作为默认,把连续转向作为用户主动打开的选项。

验证示例

  • 用户侧:分别用各档转向方式完成同一段路径,记录不适反馈与完成时间。
  • 实现侧:核对是否存在不受用户控制的持续加速或旋转路径。

反例做不到——摇杆推到底就是恒定的持续旋转,没有其他选择;做过头——只允许按固定角度转向,用户在需要精细瞄准的场景里无法对准目标。

R4-5物理位移与内容坐标系对应必须

一句话:人真的走了三步,世界就该真的过去三步。

适用允许用户在物理空间中走动的产品。

规则用户的物理位移必须以一致的比例反映到虚拟视点上;禁止在用户物理走动的过程中改变位移与虚拟位移之间的对应关系而不告知(包括缩放位移、重定向行走、静默修正累积偏移)。若产品因场地限制、重定向或缩放需要改变这一对应关系,必须在开始前告知,并提供关闭该行为的选项。地面高度与用户身高必须按实际解析(实测或平台上报,并记录来源与质量),禁止用固定的默认身高替代而导致虚拟地面与真实地面不一致。真实地面估计与为可达性提供的虚拟视点辅助偏移是两件事,必须分别记录:辅助偏移可以在坐姿或身高受限时提高内容的可达性与可见性,但禁止冒充真实的支撑位置,也不改变对真实地面与物理支撑的判定(见 R5-5)。

边界条件本条不禁止缩放场景比例(把整个世界做成微缩模型是合法的设计),禁止的是在用户行走过程中隐蔽地改变对应关系。本条不把为可达性所作的视觉高度调整判为违例——只要它被声明为辅助偏移、不被表述为真实地面,并且不改变物理支撑的判定。追踪丢失导致的位姿跳变按 R2-2 与 R3-4 处理。

设计应用把"坐姿""站姿""房间尺度"作为显式的体验模式,各自有自己的地面高度与位移映射;模式切换时重新解析,而不是沿用上一次的数值。

验证示例

  • 用户侧:在真实空间中走出一段已知距离,检查虚拟世界中的位移是否相符;坐下与站起,检查地面高度是否合理。
  • 实现侧:核对位移映射比例是否为常量或已声明的函数;检查身高来源是实测还是默认值。

反例做不到——用固定身高渲染,矮个用户的视点悬在地板上方半米,走路像在飘;做过头——为了绝对精确,每次开始前都要求用户重新完成一次身高与地面校准流程。

依据与参考地板高度在多份接口规范中是估计值而非测量值,并被要求作取整处理以降低指纹识别风险;据地板高度推断用户身高被明确列为隐私威胁之一(见 reference.md R15、R16、R14)。

R4-6不适可被表达且有即时出口必须

一句话:难受的时候,一步就能停下来,而且这件事产品要接住。

适用可能引起不适的空间体验(含移动、快速视觉运动、高强度视觉刺激)。

规则产品必须提供一个始终可达、单步完成的动作,让用户立即停止视觉运动并取得稳定画面或现实视野;该动作不得依赖用户完成精确的指向、选择或确认(见 R6-2、R6-3)。用户表达不适之后,产品必须记录该次事件并据此调整当前体验的设置或给出可执行的建议,禁止把不适反馈仅处理为一次可关闭的提示一次不适默认只影响当前体验:要跨会话保留或用于调整其他内容类的默认值,必须声明用途与期限并可由用户查看和清除,禁止把一次被动记录固化为长期的健康或能力画像禁止以进度损失、成绩降低或内容锁定作为中止的代价

边界条件本条不要求产品判断不适的原因或程度,也不要求提供医学建议——晕动、眩晕与眼部不适的临床判断不在本规范范围内(见范围声明)。

设计应用把"立即停下"与"退出沉浸"设计成两个不同的动作:前者保留任务状态与位置,后者才真正离开。多数不适场景需要的是前者。

验证示例

  • 用户侧:在快速移动中触发即时停止,记录所需步数与画面稳定所需时间。
  • 实现侧:核对该动作在所有场景(含过场、载具、多人同步)中是否可达;检查不适事件是否影响当前体验;未获准时不形成长期记录或改写其他体验的默认值。

反例做不到——暂停需要先在飞速旋转的画面里瞄准一个菜单按钮;做过头——用户按下停止后被弹出一整套健康问卷,才能回到内容。

依据与参考平台文档把可预测性与用户对自身移动的掌控列为减少不适的要点(见 reference.md R07、R10);不适的影响因素与个体差异的研究综述见 R19。

R5 身体活动有明确前提

R5-1场地要求显式且开始前确认必须

一句话:需要多大地方、要不要站着,开始之前就说清楚。

适用需要用户在物理空间中活动、或对场地有前提条件的产品。

规则产品必须在体验开始前显式说明其场地要求,至少包括所需的可活动范围、姿势要求(坐、站、走动)、以及对真实表面或家具的依赖;这些要求必须在用户投入之前可获得,不得只写在商店页面的底部。产品必须为不满足要求的环境定义行为:给出可用的替代模式,或明确说明不可用及其原因。禁止在体验开始后才提出新增的场地要求,也禁止把"请清理你的房间"作为唯一的处理方式。"开始前确认"指产品在开始前完成一次可解析的比对:把声明的要求与已取得的场地信息(平台上报的可用区域、既有的边界或房间设置、或用户自述的环境)作比较并给出结论;该比对可复用平台已有的结果,不要求用户每次重新划定边界,信息不足时明确记为"未确认"并按不满足要求的分支处理。

边界条件本条不规定最小场地尺寸,也不要求产品测量真实空间——平台通常已提供边界与房间设置能力,产品读取其结果即可。

设计应用按"最小可用环境"设计而不是按理想环境设计:假设用户没有空旷的房间、没有合适的桌子、没有一整面空墙,为这种情况准备一个仍然完整的模式。

验证示例

  • 用户侧:在小于产品声明要求的空间中启动,检查是否被提前告知、是否有可用的替代模式。
  • 实现侧:核对场地要求是否与平台上报的可用区域实际比对;检查不满足时的分支是否已实现。

反例做不到——玩到第三关才提示"本关需要 2×2 米的空地并请后退";做过头——因为检测到房间偏小就完全拒绝启动,即使该内容坐着也能玩。

依据与参考平台文档建议按最小可行环境设计,并为用户没有沙发、桌面或足够地面的情况准备替代方案;厂商的健康与安全页另列出楼梯、阳台、坡道与门口等需要清空的危险要素(见 reference.md R05、R22)。

R5-2边界可感知且分级必须

一句话:快到边界了和已经出界了,是两回事,得给两种提示。

适用用户可能在使用中接近或越出安全边界的产品。

规则产品必须区分接近边界已越出边界两种状态并分别处理:接近时给出可被察觉但不打断任务的提示,越出时优先恢复用户对真实环境的感知。适用的边界保护禁止被内容遮挡或被产品擅自绕过,也不得因为内容处于全屏或全沉浸状态而失效。产品自身的场景理解与透视画面不得被作为安全边界的替代(见 R3-1);平台提供可读边界状态时,产品必须读取并尊重;由平台管理但状态受限时,产品必须保留平台提示与控制,不伪造不可取得的状态。

产品必须声明其所处的边界能力形态,至少区分四类:平台提供边界且状态可读/平台管理边界但应用可取得的状态受限/平台明确支持的无边界模式/无相应边界能力"平台不提供边界"与"平台管理但不把完整信号给应用"不是同一件事,两者的处置不同。边界的运行事实(已知/未知/已过期)连同其来源与取得时刻另行保留,产品不得把未知写成已越界:无法确认边界时,暂停依赖该信息的动作、缩小内容覆盖范围,或退回到已验证的静止体验,并以"无法确认边界"说明原因。边界只表达可活动范围与提示机制,不证明该范围内没有危险;能读到边界不构成本条之外的安全承诺。

平台明确支持无边界或按情境切换边界时,必须解析 xr.boundary.mode.policy:支持依据、允许的遮蔽与移动、进入条件、失效退路及切回全沉浸前的保护恢复。应用不得把任意关闭平台保护包装为该模式;模式未知时不进入。场景模型或深度遮挡仍不构成边界保障。

边界条件本条不规定边界的触发距离与呈现形式——这些通常由平台决定,产品读取其状态(见 xr.boundary.platform.state.read);本条也不要求产品自建边界系统。用户已在平台层关闭边界的情况下,产品应当据此收紧自身对移动的要求(见 R5-3)。本条不把"运行在平台明确支持的无边界模式下"一律判为不合格,也不把非头戴形态一律判为不合格——这两类须按其自身能力形态单独评估其移动与引导约束;但任一形态下,缺少边界信息都不解除已生效的限制。

设计应用把"接近边界"作为内容侧可以响应的信号:减速、把目标拉近、暂停敌人生成,都比只画一道网格更有用。

验证示例

  • 用户侧:在受保护的测试场地复核接近边界的提示与可达出口;越界分支先用合成事件验证。
  • 实现侧:核对产品是否读取平台边界状态;用边界可读、平台自管而应用状态受限、权限受限、临时无数据、边界已被用户关闭、实际已越界六种输入走查,确认这六种状态未被合并、限制未被解除、未知未被当作越界,且非头戴或无边界形态未被一律判不合格。

反例做不到——边界提示被一块不透明的全屏 UI 挡住,用户直到撞上墙才知道;做过头——离边界还有很远就持续显示整面网格,用户在房间中央也被一层栅栏包围。

依据与参考平台边界系统区分外边界与游玩区并可上报最近距离与触发状态(见 reference.md R08);平台文档明确场景模型与透视画面都不是边界所提供的安全机制的替代品(R05)。

R5-3不要求用户后退或进入看不见的区域必须

一句话:别让人往身后退,人的身后是他没看过的地方。

适用可能引导用户在物理空间中移动的产品。

规则产品禁止把后退、侧移到视野之外、或走向用户当前看不到的区域作为完成任务的必要动作;需要用户改变位置时,必须先让目标位置进入用户视野。禁止把内容放置在只有后退才能看全的位置——正确的做法是:在仍满足产品声明的可读与可选下限的前提下缩小内容,或把内容移远(对固定宽度的对象,移近会增大张角、使其更看不全,θ = 2·arctan(w / 2d),因此"拉近"不是本条的解法);受空间约束时改用分区查看或先给总览,而不是要求用户后退。产品对用户位置的引导必须与平台边界状态一致,不得引导用户走向已知的边界外。

边界条件本条不禁止用户自发地后退,也不禁止以身体移动为核心的体验(健身、运动、探索)——但这类体验须按 R5-1 提前说明,仍不得把盲目后退或侧移作为必要动作。

设计应用需要"看全"的内容,做成可缩放、可移远的对象,而不是固定尺寸的巨幅画面;需要用户走过去的目标,先在其视野内出现再引导。用 θ = 2·arctan(w / 2d) 复核每一次"调整距离"的方向:要减小张角只能增大 d 或减小 w。

验证示例

  • 用户侧:完整走一遍主流程,记录是否出现必须后退或侧移出视野的步骤。
  • 实现侧:核对内容尺寸与推荐观看距离的组合是否隐含了后退要求;按 θ = 2·arctan(w / 2d) 检查固定尺寸对象的移近与移远方向是否写反;检查声明距离两端与缩放后目标是否仍满足可选下限;检查引导目标是否都先入视野。

反例做不到——一张两米宽的图纸生成在用户面前半米处,要看全只能往后退,而用户身后是茶几;做过头——把所有内容都限制在一臂之内,用户无法在空间中查看任何大尺度对象。

依据与参考平台文档建议让用户在基本不动的情况下使用应用,并建议把物体拉近而不是让人走过去(见 reference.md R01、R02)。

R5-4越界与他人进入触发现实感知必须

一句话:有人走进来了,产品要让戴着设备的人知道。

适用用户可能在使用中被真实环境中的人或物接近的产品。

规则检测到用户越界、或有人或移动物体进入用户的活动范围时,产品必须优先恢复用户对真实环境的感知,而不是继续维持沉浸;处置必须停止要求用户快速动作的内容,并开启可用现实感知或降低遮蔽;无透视设备须停止视觉运动并指引安全摘取,仅暂停内容不等于恢复现实视觉,并让用户知道发生了什么。禁止把这类中断表述为失败、扣分或需要用户道歉的事件。检测能力不足时,产品必须按 R5-2 收紧移动与遮蔽并保留平台处置;不得把“未检测到”表述为无人接近或没有危险

边界条件本条不要求产品具备识别人的能力,也不要求区分是谁进来了——识别在场者的身份属于 R7-1 与 R7-3 的约束范围。产品无检测能力时,本条的义务落在"不阻碍平台的边界处置"与"中断不惩罚"两项上。

设计应用把"有人靠近"与"用户越界"接到同一条处置通道上,共用同一套降沉浸与恢复流程,避免两套逻辑互相打架。

验证示例

  • 用户侧:让第三人在使用过程中走近,观察产品是否有任何反应,以及恢复后进度是否受损。
  • 实现侧:注入边界触发事件,核对沉浸程度、内容节奏与进度保存的实际变化。

反例做不到——家人拍肩膀时用户正在一段不可暂停的战斗里,被打断即判定失败;做过头——房间里任何轻微运动都触发一次完整的退出沉浸流程,用户一场里被踢出七八次。

R5-5虚拟物不承担物理支撑应当

一句话:不要设计成"靠一下""坐上去""扶着走"的样子。

适用呈现可被误认为具有物理支撑能力的虚拟物体的产品。

规则产品不应当设计需要用户把身体重量、平衡或支撑寄托在虚拟物体上的交互;虚拟的座椅、栏杆、扶手、台阶、地面延伸与墙面不应当被呈现为可依靠的对象。禁止在虚拟场景中提示或引导用户坐下、倚靠、踩踏或攀爬没有对应真实物体的位置。确需表现这类物体时,应当通过外观、位置或明确说明使其不被误解为可用(见 R3-5)。

边界条件本条不禁止在真实物体位置上叠加虚拟外观(把真实椅子渲染成王座是合法的),前提是产品能确认该位置存在对应的真实支撑;本条也不适用于用户不会尝试接触的远景要素。

设计应用把"用户会不会把体重交给它"当作判据:远处的虚拟悬崖不需要处理,脚边的虚拟台阶需要,手边高度的虚拟栏杆必须处理。

验证示例

  • 用户侧:先让用户指出哪些物体可能支撑身体;必要行为观察使用真实支撑或保护措施,不让用户实际依靠空处。
  • 实现侧:清点场景中位于人体接触高度范围内、且外观提示可支撑的虚拟物体。

反例做不到——虚拟场景在真实地面上叠了一级向下的台阶,用户抬脚踩空;做过头——把场景里所有家具都做成半透明的示意体块,牺牲掉整个体验的空间真实感。

R5-6同场参与者的身体位置单独核验必须

一句话:同场参与者的身体位置单独核验,不能把能力假设交给用户承担。

适用多人在同一物理活动空间内使用的体验。

规则必须把内容同步、坐标对齐、参与者位姿有效性和身体接近分别判断。头像边界不得被当作真实身体轮廓;提示与避让考虑估计误差、下肢、设备和不可见区域。声明场地人数与活动方式的验证范围,安排目标时避免迫使多人争抢同一物理落点。某人的位置失效时收紧受影响的共同移动,不向其他人显示虚假的精确位置。

边界条件远程参与者不能作为本地物理障碍的证据;数字化身可能遮挡真实人,但平台不支持动态检测时不得宣称已覆盖。

设计应用对齐后分别确认物理活动区;交叉路线以回放测试先检查,再在受保护条件下验证提示。

验证示例

  • 用户侧:同场与远程成员混合加入时能分辨谁在身边;一人退出或位置未知后无需猜测。
  • 实现侧:分开注入内容同步成功而对齐失败、对齐有效而位姿过期、动态他人进入三种事件。

反例做不到——联网成功就显示所有人可安全靠近;做过头——单方跟踪短暂失效就删除整个共享成果。

依据与参考reference.md M05、A05;具体义务与验证程序为本规范的设计判断。

R6 沉浸状态可进可退

R6-1沉浸程度显式且进入前可预知必须

一句话:要遮住多少现实,进去之前就该知道。

适用提供不止一种沉浸程度的产品,或将进入高沉浸状态作为流程一部分的产品。

规则产品必须显式定义其沉浸程度档位,至少区分与现实并存、部分遮蔽现实、完全遮蔽现实三类,并在进入前让用户知道即将进入哪一档、以及它会遮蔽什么。沉浸程度的提升必须由用户发起或经用户确认,禁止由内容自行提高;程度变化必须是平缓可预期的过渡,禁止无预告的突变。产品必须说明每一档下哪些真实感知仍然保留(声音、边界提示、通知)。

边界条件本条不要求产品提供多档沉浸,也不规定档位的具体遮蔽比例;单一档位的产品只需说明其档位是什么。为满足 R5-4 而临时降低沉浸的情况不视为程度变化的违规。

设计应用把沉浸程度做成用户可以连续调节或分档切换的控制,而不是内容进度的函数;进入前用一句话说明"这一段会遮住你的房间",比进入后再解释有效。

验证示例

  • 用户侧:从最低档逐级进入最高档,记录每次变化前是否被告知、是否需要确认。
  • 实现侧:审计所有提高沉浸程度的代码路径,核对每一条是否有用户发起或确认。

反例做不到——点开一个预览链接,画面直接切进全遮蔽状态,用户下意识伸手扶了一下并不存在的桌子;做过头——每提高一档都要求用户在弹窗里勾选一次安全声明,一次体验开始前点五下。

依据与参考平台文档定义了并存空间与独占空间、以及混合/渐进/完全三档沉浸样式,并要求平缓可预期的转场(见 reference.md R02)。

R6-2退出路径始终可达且不依赖沉浸内的操作必须

一句话:出来的那条路,不能是内容自己画的。

适用提供沉浸体验的产品。

规则正常运行时,产品必须提供自己的、可被发现的退出入口,且不得依赖精确指向、瞄准或多步确认;禁止把系统级控制作为用户降低沉浸程度的唯一途径。退出动作不得被内容延迟、拦截或附加条件(确认弹窗、进度损失、观看广告)。退出后必须回到一个用户可辨认的状态,并说明进行中的任务发生了什么(见 R6-4)。

故障状态下的退出按故障域分别承担。产品必须逐项声明其故障域——界面组件无响应、渲染停帧、应用进程终止——并说明每一域由谁承担退出能力:产品自有入口、还是平台的可信控制。对已声明由平台承担的故障域,产品禁止拦截、覆盖或延迟该通道,并须验证其未被拦截;产品须保证其仍可运行的独立退出路径;故障使该路径不可用时,必须由已声明并验证的平台可信控制兜底禁止以一句"退出成功"覆盖三个故障域——未验证的域记为未验证。

边界条件本条不禁止在退出后询问是否保存、是否继续——询问发生在退出之后而不是之前。多人共同体验中他人的退出不受本用户约束。本条不要求产品在自身进程已终止的情况下仍能响应:跨平台应用通常不具备该能力,此时该故障域由平台的可信控制承担,产品的义务是声明责任方并不阻断该通道。

设计应用把退出做成与"立即停止视觉运动"(R4-6)分开的两个动作,并且让两者都不依赖对内容的精确操作;退出入口在追踪降级、内容崩溃与画面异常时仍应可用。

验证示例

  • 用户侧:在内容加载中、过场动画中、追踪丢失时分别尝试退出,记录是否可达与所需步数。
  • 实现侧:核对退出路径是否绕开内容层;分别注入界面组件无响应、渲染停帧、应用进程终止三种故障,逐项记录产品自有入口、平台兜底通道与用户状态保留的结果,不合并为一项结论。

反例做不到——退出按钮画在虚拟房间的墙上,用户必须先走过去才能点到;做过头——把退出做成一个悬在视野正中、永不消失的大按钮,遮住了体验本身。

依据与参考平台文档要求提供清晰的进入与退出控件,并明确不应让用户只能依赖系统控件来降低沉浸(见 reference.md R02)。

R6-3现实感知通道随时可取得必须

一句话:想看一眼现实,随时能看,不用先退出。

适用会遮蔽用户对真实环境视觉感知的产品。

规则用户必须能够在不退出当前体验、不损失任务状态的前提下,随时取得对真实环境的视觉感知;该动作必须单步可达,不得依赖对内容的精确操作。产品禁止阻断、延迟或覆盖平台提供的现实感知通道。现实感知通道处于开启状态时,产品叠加的内容不得遮挡用户此刻想要看清的区域(见 R3-1)。产品必须说明该通道的局限——透视画面不等同于自然视觉,在深度、颜色与视场上都有差别,因此它不得被表述为安全保障(见 R5-2)。

边界条件本条不要求产品自行实现透视能力——不具备该能力的设备上,本条的义务落在"退出路径单步可达"(R6-2)与"不阻断平台通道"两项上;取值由 xr.immersion.reality.channel 表达。无透视设备上,退出不等于看见现实:此类设备必须提供可理解的路径,使用户能够停止视觉运动、保存任务状态并安全地摘下设备,禁止把"已退出到系统环境"表述为已恢复现实视觉

设计应用把"看一眼现实"设计成一个可以保持的状态而不是一次闪现:用户想看的往往是一件需要几秒钟的事(接过一杯水、看清来人是谁)。

验证示例

  • 用户侧:在全遮蔽状态下尝试查看真实环境,记录步数、是否需要退出、任务状态是否保留。
  • 实现侧:核对产品是否覆盖或延迟了平台的现实感知快捷方式;检查通道开启期间的内容遮挡行为。

反例做不到——想看一眼门口是谁,只能摘下设备,而摘下就丢进度;做过头——每隔几分钟强制切一次透视"让用户确认环境安全",把体验切得七零八落。

依据与参考平台提供长按重新居中与双击临时显示环境的系统动作(见 reference.md R02);平台文档明确透视画面不等同于自然人类视觉,并提示长时间处于完全透视可能带来不适(R06)。

R6-4摘下与重新戴上的状态明确必须

一句话:摘下设备之后,刚才那件事到底还在不在跑。

适用可被用户中途摘下、或会话可能被物理中断的头戴式产品。

规则设备被摘下时,产品必须按已声明的规则处理进行中的任务:暂停、继续运行、还是终止,三者必须显式选择并让用户可预知;涉及录制、传输、计费或对他人可见的行为时,摘下必须默认停止而不是默认继续。重新戴上时,产品必须让用户知道离开期间发生了什么——任务进展、失败、他人的输入与待处理的事项,而不是把用户放回一个看不出变化的画面。禁止在用户未佩戴期间静默地完成需要用户确认的操作

边界条件本条不要求产品检测佩戴状态——不具备该能力时,本条的义务落在"会话中断后的恢复说明"上。短暂调整设备位置不视为摘下。

设计应用把"摘下"当作与"退出"不同的一类事件:退出是用户的决定,摘下往往是被现实打断,恢复时需要的是一份交代而不是一次重新开始。

验证示例

  • 用户侧:在任务进行中摘下设备两分钟再戴回,检查任务状态与是否得到期间摘要。
  • 实现侧:核对摘下事件的处理分支;检查录制、传输与计费类行为在摘下时的默认值。

反例做不到——摘下头显十分钟,回来发现录制一直在跑并已上传;做过头——每次短暂抬起头显都触发一次完整的会话保存与恢复流程,用户调整一下鼻托要等五秒。

依据与参考厂商健康与安全页建议以有限时长的使用加休息为节奏,并在出现症状时停止;这类中断在产品侧表现为会话被物理打断(见 reference.md R22)。本条其余要求由承诺反推(见附录 B)。

R6-5沉浸中不提出需要现实核对的请求应当

一句话:看不见现实的时候,不是要人签字、付款、授权的时候。

适用在沉浸状态中可能出现付款、授权、签署、同意或其他不可逆请求的产品。

规则涉及付款、权限授予、身份验证、内容发布与其他不可逆后果的请求,不应当在用户对真实环境感知被遮蔽的状态下提出;确需提出时,产品应当先降低沉浸程度或提供现实感知通道;无论请求是否由用户主动发起,来源、对象与后果必须可辨认,所需外部信息必须可核对。禁止利用沉浸状态下用户难以核对外部信息的处境促成此类请求,也禁止把普通手势识别、注视停留或无关身体动作单独当作对不可逆操作的充分授权;确认必须对应可辨认的当前请求,并有与普通选取分开的提交步骤。

边界条件本条不禁止在沉浸中进行低后果、可撤销的操作(切换场景、调整设置、购买可无条件退回的虚拟道具须按产品的实际可撤销性判定)。用户主动发起的付款流程不受"不应当提出"约束,但仍须满足可辨认与可核对两项要求。

设计应用把不可逆请求做成"记下来,出去再办"的形式:在沉浸中确认意向,在降低沉浸后完成提交,两步分开。

验证示例

  • 用户侧:在全遮蔽状态中触发一次付费流程,检查是否降低沉浸、请求来源是否可辨认。
  • 实现侧:清点所有会在沉浸中弹出的不可逆请求;核对每一条是否有可核对的当前请求与独立提交,且系统界面动作不会被复用为业务同意。

反例做不到——全沉浸游戏中一个看起来像剧情道具的弹窗,实际是一次真实扣款的确认;做过头——把所有设置变更都当作不可逆请求,用户想调个音量也被踢出沉浸。

依据与参考浏览器侧规范要求用户代理支持不可仿冒、可指明内容来源的可信界面,并在用户与之交互期间把会话的可见性置为隐藏或失焦,理由是位姿与输入可被用于窥探用户的选择(见 reference.md R16)。

R6-6失焦与中断恢复不续接旧动作必须

一句话:回到画面,不等于同意继续刚才的运动和提交。

适用会被系统界面、权限请求、应用切换、输入源断连或设备中断影响的产品。

规则产品必须分别处理呈现可见性、输入焦点、佩戴状态与任务状态。失焦时停止解释属于其他界面的输入,并按声明暂停依赖用户实时控制的内容;不得以仍可渲染为由继续消费输入。恢复时必须重新核验追踪、边界、权限及输入源,清除未完成的按住、拖拽和停留激活状态,禁止补发中断期间的陈旧动作。被中断的连续运动和高后果操作必须等待用户重新发起;普通静态内容可自动恢复,不强制每次弹窗。系统权限请求中的拒绝或超时不得当作同意。

边界条件应用无法暂停其他参与者或服务器时,应当隔离本地可暂停行为、说明继续发生的变化并核对结果,不宣称整个共享世界已经暂停。未知佩戴状态不等同于已摘下,处置可收紧但事实保持未知。

系统注视悬停可以发生在应用进程之外。应用必须以实际获得的交互事件为准,不把悬停效果推断为已获原始眼动数据或用户授权;不得为重造系统反馈而扩大采集范围。

设计应用打开系统菜单前取消当前抓取,回来显示保留的草稿;核对环境可用后允许重新抓取。沉浸时仍保留系统休息提醒与时间查看入口。

验证示例

  • 用户侧:在按住移动或拖拽时切到系统界面再返回,确认不会突然继续走动或释放提交。
  • 实现侧:分别注入失焦但可见、隐藏、断开输入和重新获权,核对没有旧事件重放,已提交结果按真实回执恢复。

反例做不到——权限弹窗关闭时把用户确认权限的动作再解释成场景购买;做过头——每次系统提示消失都强制重新扫描房间。

依据与参考机制与需求线索见 reference.md R15、R16;具体行为要求是本规范的设计判断。

R6-7模式转换后保留重新定向的时间必须

一句话:模式转换后保留重新定向的时间,不能把能力假设交给用户承担。

适用切换现实叠加与全沉浸、改变视点基准或进入差异明显环境的体验。

规则必须预告转换目的及现实可见性的变化。转换前先满足目标模式的追踪与边界条件;转换后提供当前朝向、落点或稳定地标,在用户能重新判断位置前不得立即要求快速身体动作。用户可暂停或返回;失败时返回已验证状态而非半完成的混合状态。坐姿、躺靠和站姿的重定向不得把真实地面随显示面板一同旋转。

边界条件不规定固定等待秒数;恢复时机由任务、用户控制和设备验证决定。普通小幅界面过渡无需逐次确认。

设计应用先在静止画面提供地标与可用控制,再允许用户发起运动;内容重定位与环境朝向分开处理。

验证示例

  • 用户侧:坐姿观看中改为躺靠并重定向,面板可读而地面关系不被伪造;返回现实叠加后可先观察。
  • 实现侧:测试模式请求被拒绝、边界未就绪、转换中失焦和恢复,检查没有旧移动自动续接。

反例做不到——从透视切全沉浸立即要求闪避;做过头——每个普通弹层都强制等待倒计时。

依据与参考reference.md A06、M03、M04;具体义务与验证程序为本规范的设计判断。

R6-8休息与低刺激恢复始终可达必须

一句话:休息与低刺激恢复始终可达,不能把能力假设交给用户承担。

适用持续沉浸或可能引起感官负荷的体验。

规则必须保留暂停刺激、退出和获取时间/系统休息提醒的可达路径。提供低刺激恢复模式时,须声明它保留哪些成果、停止哪些视觉和听觉变化,以及怎样返回或退出。个人舒适调整不得被任务进度覆盖;不能用惩罚、广告或重复入场门槛阻止休息。重要空间声音须有可取得的文字、方向或其他等效表达,字幕不因声源离屏就丢失。

边界条件低刺激呈现不等于现实空间安全;多人世界可能继续运行,必须如实说明本地暂停范围。提醒频率由用户与任务条件确定,不给通用使用时长。

设计应用提供简单可达的暂停入口,暂停后显示进度和继续/退出;字幕能区分说话者和必要的离屏声源。

验证示例

  • 用户侧:仅用已声明辅助输入进入恢复模式、读取进度并退出;关闭声音后仍能理解关键事件。
  • 实现侧:验证恢复模式减少动态刺激且不冻结头动响应,系统提醒仍可到达,恢复不重放陈旧命令。

反例做不到——暂停只停计分而画面继续急转;做过头——每几分钟无条件结束用户任务。

依据与参考reference.md R25、A03;具体义务与验证程序为本规范的设计判断。

R7 感知数据与共享可控

R7-1在场他人不被当作场景要素必须

一句话:房间里的人不是可以被贴图、被扫描、被玩的东西。

适用具备环境感知能力、且使用场景中可能有第三方在场的产品。

规则真实环境中的其他人禁止被当作可被叠加、替换、贴图、评分或作为游戏目标的场景要素,除非该人本人已知情并同意。对人的检测结果禁止被保存为身份信息、生物特征模板或长期属性,也禁止用于本次安全处置(见 R5-4)与产品已声明用途之外的目的。产品对第三方形象的处理必须与其对用户自身形象的处理分开声明。

边界条件本条不禁止为安全目的检测人的存在与位置;R5-4 不强制产品自行识别人;禁止的是把这类检测的结果用于其他目的或保存下来。多人共同参与的例外仅在三项同时成立时生效:该人本人知情、作出有效同意、且用途范围明确并可随时退出;该例外只及于同意者本人,不推广给在场的路人,也不由任一参与者的共享设置代为授予。例外成立时仍须满足 R7-2 的可知要求。

设计应用把"检测到有人"与"这个人是谁"设计成两件事,前者只输出位置与存在性并即时丢弃,后者需要单独的授权与用途声明。

验证示例

  • 用户侧:让第三人进入场景,检查产品是否对其形象作出叠加、替换或评分。
  • 实现侧:审计人体检测结果的下游消费者与保存期限;核对是否存在跨会话的人物标识。

反例做不到——把走进房间的家人自动渲染成游戏里的怪物并计入击杀数;做过头——一旦检测到任何人形就整体停止渲染,导致多人同处一室时产品完全不可用。

依据与参考头戴摄像设备引发的旁观者隐私关切见 reference.md R20;平台的空间数据与相机权限模型见 R08、R06。

R7-2旁观者与被摄入者可知必须

一句话:房间里的人要知道这台设备正在拍、正在录、正在传。

适用具备摄像、录制、串流或共享空间画面能力的产品。

规则产品在采集或传输可能包含真实环境与在场他人的画面、音频或空间数据时,必须使这一状态对设备之外的人可感知——通过设备的物理指示、可见的界面提示或明确的告知,且该指示禁止被产品隐藏、伪装或以内容覆盖。产品必须区分本地处理、录制保存与对外传输三种状态并分别指示,不得以同一种表现涵盖。用户对自身画面的共享设置不构成对在场他人的授权(第三方的处理见 R7-1)。

边界条件本条不要求产品向在场他人取得逐次同意——那受各法域的规则管辖(见范围声明);本条要求的是状态可被感知、不被隐藏。

设计应用把"正在采集"做成一个产品无法关闭的系统状态,把"正在录制"和"正在传给别人"做成额外的、更明显的指示;在共享开始前告知用户"房间里的人会被拍进去",比事后解释有用。

验证示例

  • 用户侧:让第三人从设备外部观察,检查其能否分辨设备是否在录制或传输。
  • 实现侧:核对指示器是否可被应用层覆盖;检查三种状态是否有区分的表现。

反例做不到——串流开始后设备外观与待机时完全一致,同事在旁边讨论了半小时的内部方案;做过头——把指示做成一段每次开启都要念完的语音播报,用户在自己家里也被念一遍。

依据与参考平台对相机数据设置权限门并在启用后展示可见的录制指示(见 reference.md R06);头戴摄像设备的旁观者隐私关切见 R20。

R7-3空间与身体数据可知可控必须

一句话:房间的形状、家具的位置、身体的尺寸,都是数据。

适用采集或使用房间几何、场景语义、位姿轨迹、身高、肢体或注视数据的产品。

规则产品必须把空间几何与身体测量数据作为一类需要单独声明的数据处理:说明采集哪些、用于什么、保存多久、是否离开设备,并提供查看与删除的路径。禁止在未声明的用途上使用这些数据,也禁止将其用于画像或广告定向;为安全或对齐目的取得的数据不得挪作其他目的,确有必要的共享对齐须单独声明接收方并取得授权。这类数据的精度应当按用途取所需的最低档,不得以"反正已经采集了"为由提供超出用途所需的精度。用户拒绝其中一类数据时,与该数据无关的功能必须保留;依赖该数据的功能必须提供真实可行的替代方式,确实无法实现时明确说明停用范围与原因(见 R3-4),禁止把拒绝包装成错误,也禁止为满足本条而声称存在并不存在的完整替代功能。用途必须按"数据类 × 采集目的 × 消费方 × 是否离开设备"四项绑定:为安全或对齐目的采集的数据禁止被挪作未声明或被禁止的用途;在此绑定之外,对外提供须按其自身的用途声明与用户授权判定,本条不无差别禁止一切对外传输(采集状态的对外指示另见 R7-2)。

临时读取也必须进入用途声明,并说明丢弃时点。停用新增与删除既有数据必须可分别执行;删除覆盖应用控制的缓存与相关派生布局,不能在后台自动重建已删除的资料。独立的用户内容按 R2-4 保留,外部副本与备份的可控范围和完成状态如实说明。

边界条件本条不判定这些数据在各法域中的法律属性(部分法域将其中一些列为生物特征数据,见范围声明);本条约束的是产品自身的声明、用途绑定与用户可控性,分别由 xr.spatialdata.categoriesxr.spatialdata.purpose.scopexr.spatialdata.precision.levelxr.spatialdata.retention.controls 表达。

设计应用把“房间的形状”与“房间里有什么”分成两类分别声明;没有实际需要就不读取。精度按用途配置,让不需要家具级语义的功能拿不到家具级语义。

验证示例

  • 用户侧:查找并执行删除空间数据的路径,检查删除后产品行为的变化是否与声明一致。
  • 实现侧:审计空间与身体数据的下游消费者清单;核对各功能取得的精度是否为其用途所需的最低档。分别构造"拒绝非必需的场景语义"与"拒绝核心位置追踪"两种情况,核对前者只停用相关功能、后者的停用范围与原因被明确说明;把某类数据复用于新目的时,核对是否重新取得授权而不是沿用旧的一次性同意。

依据与参考位姿与边界的暴露和量化机制见 reference.md R15、R16;这些机制不等于覆盖所有房间网格与身体数据。平台空间数据与手部访问的参考入口见 R08、R04。

反例做不到——为了一个放置小工具的功能扫描并上传了整套房间网格与家具语义;做过头——每次使用前都要求用户逐项勾选十几类空间数据授权,才肯显示一块时钟。

R7-4录制与共享的实际输出可核对必须

一句话:录制与共享的实际输出可核对,不能把能力假设交给用户承担。

适用支持投屏、录屏、远程观看或导出感知信息的体验。

规则必须分别说明采集、应用读取、保存和对外输出的范围。实际输出通道决定回执,不能因佩戴者看到透视就假定旁观者也看得到,或反向假定现实画面不会被输出。显示接收者与共享状态,提供停止输出路径;停止输出不冒充停止其他采集。私有工具与共享内容分开核验,范围扩大或新增接收方须满足相应授权;拒绝只阻止依赖功能。

边界条件平台不允许应用访问或控制某通道时,说明平台负责的部分;不伪造应用已停止系统级捕获。输出记录不需要存储额外的原始身体数据。

设计应用用实际接收端预览核对共享范围;共享模型时个人笔记保持私有,结束共享后各端有一致的状态回执。

验证示例

  • 用户侧:从接收端确认能看到什么、谁在接收;停止后不再收到新增内容。
  • 实现侧:分别测试平台录屏与应用共享、权限撤回、接收端断连和缓存数据,记录停止生效的边界。

反例做不到——把眼前全部画面默认发给会议参与者;做过头——为了证明没有外发而额外保存原始视频。

依据与参考reference.md A05、R16;输出通道须按目标平台另行验证;具体义务与验证程序为本规范的设计判断。

4. 术语和定义

本章定义空间体验中的对象与事实;实时状态、用户数据与可复用配置分别记录。

术语定义关键边界
任务/会话任务记录目标、输入、进度与成果;会话是一次进入空间体验的过程。退出或重定心不自动完成或重置任务。
事实时效已取得且有效/未知/已过期;与正常、降级、丢失的追踪质量分别表达。过期位姿不能证明当前位置,保守处置不改写事实。
空间参考系内容位置所依附的坐标基准,决定内容随什么一起移动。是产品的显式决定(R1-1),不是引擎默认值。同一产品内不同内容可以取不同参考系。"头部/视图锁定"由头部姿态决定,不等于跟随眼球注视。
世界锚定把内容绑定到真实环境中某个位置或对象上的做法,按坐标基准、绑定目标类、是否支持目标运动、持久范围四个维度声明。绑定对象不同,失效条件不同(R2-1)。锚定成功不等于位置永久正确。会话坐标系只放宽跨会话持久化,不解除位置追踪依赖,因此不能作为追踪依赖缺失时的回退。
漂移内容相对真实环境的位置随时间或随设备对环境理解的更新而偏移。是需要设计的可预见情况(R2-2)。同一旋转误差下,远离锚点的内容可能出现更大的位置偏移。
重定位设备在追踪中断或重新进入环境后,重新建立自身与既有环境表示之间对应关系的过程。可能成功、失败或错误匹配到雷同的另一处;结果错位按 R2-3 处理。
重定心用户或平台发起的视图重排/参考空间调整;具体对象的变换由平台与内容类型决定。不改变任务状态;环境地面、持久锚点与阅读面板不能不加区分地一起旋转(R2-5)。可由用户发起,也可由系统发起。
现实感知通道使用者在不摘下设备的情况下看到真实环境的手段。不等同于自然视觉,视频透视在深度、颜色与视场上可能存在差别(R6-3);不得被表述为安全保障。
沉浸程度系统遮蔽用户对真实环境感知的程度。是可分档、可调节的产品状态(R6-1),不是内容进度的函数。提升须由用户发起或确认。
安全边界由平台或用户定义的、标识可安全活动范围的区域,其能力形态至少区分四类:平台提供边界且状态可读/平台管理但应用取得的状态受限/平台明确支持的无边界模式/无相应能力。是产品必须尊重的外部状态(R5-2),不是产品自建的功能;产品的环境理解不替代它。边界只表达活动范围与提示机制,不证明范围内没有危险"边界状态未知"是证据状态,"已越界"是空间事实,两者不合并,处置相同不使它们成为同一事件。
环境理解系统对真实环境的几何、平面与语义的估计结果。有覆盖范围与置信度,会过时(R3-4、R3-6)。识别出一部分不等于识别得全。
场地要求产品对物理空间大小、姿势与真实家具的前提条件。须在开始前可获得(R5-1);不满足时须有已定义的替代模式或明确的不可用说明。
旁观者处在使用场景中、但不是本产品用户的其他人。不是场景要素(R7-1),也不是可被采集的对象;对其的可知义务见 R7-2。
空间数据房间几何、平面、场景语义、位姿轨迹与身体测量结果。需单独声明用途与期限(R7-3);精度取用途所需的最低档。部分法域将其中一些列为特殊类别。

附录 A:故障注入验证清单

本清单用于检验条款是否真的生效,不新增义务:每一行的期望结果随其对应条款的适用范围、强度与例外一并解析;不适用、有说明的合规偏离、未测试三者分别记录,不得把正文允许的实现判为失败。

危险空间、支撑诱导与越界相关的注入先以记录回放、合成输入或软性道具进行;进入真人测试之前必须确认保护措施与即时停止条件,不要求参与者实际踩空、撞击或依靠虚拟支撑。真人证据与模拟证据分别记录。除失败防护外,同时以正常任务走查检验是否出现多余的提示与打断("做过头"一侧同样是不合格)。逐项注入,记录系统的实际行为;记录"不适用"是合格结果,记录"没测"不是

A.1 位置与绑定

注入期望行为相关规则
原地转身一周,观察每一块内容跟随行为与产品声明的参考系一致R1-1
在声明的最近与最远观看距离上执行同一任务文本可读、目标可选R1-2
坐在椅子上不转身完成一次完整主任务无被迫转身、起立或后退的步骤R1-3、R5-3
在杂乱、空旷与狭小三种房间中新建同一内容可用时在可见位置呈现;能力不足时按声明暂停或降级,不伪造可用位置R1-4
把内容挪到侧墙后退出重进位置保留;未经操作不被系统挪动R1-5
连续打开允许的最大数量内容不出现完全重叠或无法定位R1-6
移动作为锚定对象的真实家具表现与该内容声明的绑定对象相符R2-1
在弱光、白墙与快速移动条件下使用进入降级状态并给出可执行的改善提示R2-2
在 A 房间放置内容后到 B 房间打开存在一步可达的召回或重放置入口R2-3
清除设备空间数据后查找此前创建的内容内容仍可枚举与访问R2-4
在输入过程中触发重定心与平台参考空间变更已输入内容与任务进度不受影响R2-5
逐项测试文案中的每一处持久性表述表述与实际持久化范围一致R2-6

A.2 叠合与位移

注入期望行为相关规则
以记录回放或合成输入重现楼梯口、玻璃门与走动的人这些要素不被内容持续遮挡R3-1
把手伸到虚拟物前后遮挡表现与产品的深度约定一致R3-2
在声明范围的最亮与最暗条件下执行同一任务文本与状态可辨R3-3
在全黑、纯白无纹理与未做空间设置的环境启动进入已声明的降级状态R3-4
让未参与设计的用户指出哪些是真实物体会引发现实动作的虚拟要素可被区分R3-5
使用中拉窗帘、搬走作为锚定面的桌子按产品声明的触发方式(会话开始/检测到变化/用户主动调用)重新适配;恢复前重新核验环境,原位置不可用时不恢复该位置R3-6、R1-5
在体验中途切换移动方式可达,不需重开,位置与进度保留R4-1
进入含被动位移的段落有事先告知,可跳过或中途退出R4-2
在移动过程中打开舒适设置提供舒适选项时运行中可达,不需先退出体验(完全不提供选项时记不适用)R4-3
长时间推满摇杆转向不出现不受用户控制的持续加速或旋转R4-4
在真实空间走出一段已知距离;坐下与站起虚拟位移相符;地面高度按实际解析,来源与质量可查;坐姿辅助偏移被声明为辅助,不改变真实支撑判定R4-5、R5-5
在快速移动中触发即时停止单步完成,画面稳定,进度不受损R4-6

A.3 边界、他人与沉浸

注入期望行为相关规则
在小于声明要求的空间中启动提前告知;给出可用的替代模式,或明确说明不可用及其原因R5-1
以合成输入先验证接近与越界,再在受保护场地复核提示按接近与越出分级出现,且不被内容遮挡R5-2
把平台边界配置为关闭后使用产品对移动的要求相应收紧R5-2、R5-3
让第三人在使用过程中走近恢复现实感知,且进度不受惩罚R5-4、R6-3
以记录回放、合成输入或软性道具检查接触高度范围内的虚拟物无引导依靠不存在支撑的行为;真实支撑叠加与远景例外按正文判定,真人观察有保护措施R5-5
让第三人进入具备环境感知的场景未同意者的形象不被叠加、替换或评分,检测结果不被保存R7-1
在已知情并同意的多人场景中重复上一项,同时有未同意的路人同框同意者按其授权范围处理,路人仍按不采集处理,两者分别裁决R7-1
从最低档逐级进入最高沉浸档每次提升均由用户发起或确认,且遮蔽范围可预知R6-1
在加载中、过场中与追踪丢失时尝试退出产品自有退出可达且不依赖内容层R6-2
分别注入界面组件无响应、渲染停帧、应用进程终止各故障域按其声明的责任方给出结果,平台通道未被拦截,用户状态处置与声明一致R6-2
在全遮蔽状态下查看真实环境单步可达,任务状态保留R6-3
任务进行中摘下设备两分钟再戴回按声明处理;录制与传输默认停止;给出期间摘要R6-4
从设备外部观察是否在录制或传输三种状态可分辨,指示不被应用层覆盖R7-2
执行删除空间数据的路径路径存在,删除后行为变化与声明一致R7-3
分别拒绝非必需的场景语义与核心位置追踪前者只停用相关功能;后者明确说明停用范围与原因,不包装为错误,也不声称存在并不存在的替代R7-3
在全遮蔽状态中触发一次付费流程按请求是否由用户主动发起及是否需要现实核对判定;来源、对象、后果明确,不把单一识别动作当作充分授权R6-5

A.4 补充场景与验收记录

注入期望行为相关规则
拖拽中丢手、前后对象重叠、近远输入同时命中不点穿、不重复提交,草稿可恢复R1-7
放大文字、仅单手操作、关闭声音方位线索关键内容有等效表达,焦点和退出可达R1-8
一名参与者重定心或丢失共享锚点私人变换不改共享原点;内容同步与位置对齐分开反馈R2-7
热负载、加载尖峰、连续异常帧按预算降低非关键复杂度,停止高运动而不冻结头部响应R1-9
系统菜单覆盖、输入断连、恢复可见清除悬挂动作,重新核验依赖,不自动续接连续运动R6-6

每个用例记录:条款与适用条件、设备和场景、前置状态、注入、期望、实际用户反馈、机制回执、证据位置、结论及责任人。结论区分通过、失败、不适用、有说明的建议偏离、未验证。文档完整、机制生效、用户能够理解与操作是三类证据,不能互相替代。未验证的关键能力不进入已验证可用范围。

A.5 分类检验

用于检验第 1 章的切分是否成立:取 10 至 15 条具体要求(可来自本规范条款,也可来自真实评审意见),让至少三名未参与撰写的评审者独立判断其归属原则。归属分歧集中在某两条原则之间,说明这两条原则的规范对象没有切开——此时应当调整原则,而不是增设中间层或映射说明。已知需要重点检验的两处见第 1 章的明示(R1 与 R2、R4 与 R5)。本清单的评审人数与分歧判据是本规范建议的内部检查法,不是经文献验证的标准。

附录 B:依据与判定边界

平台指南用于核对能力与设计机制;本规范的强度、字段及失败流程是设计判断。平台阈值必须附设备、显示形态、输入、内容、用户与测量条件,不能作为通用舒适保证。推荐默认值须经任务、误触、不适与恢复成本验证,不以单一平均帧率代替连续异常检查。

资料的读取范围、来源和限制见 reference.md。两类证据分别保存:文档与实现检查证明设计契约闭合,设备和参与者验证检验实际体验。未测不算通过;存在适用义务的实现缺口不能写成不适用。

专项机制的故障检查

注入期望行为规则
头追踪有效、手被另一只手遮住只暂停依赖手的待提交动作,保留退出R1-10
模型超出有界内容容器按声明裁切或调整,并保留控制R1-11
透视不可用或现实细节无法辨认不继续依赖该现实判断,不伪造安全回执R3-7
同场成员位姿过期而内容同步仍成功不显示精确身体位置,收紧共同移动R5-6
无边界模式转全沉浸但保护未就绪不进入目标模式,保留已验证退路R5-2、R6-7
转换中失焦、坐姿改躺靠后重定向不续接旧动作、不随面板旋转真实地面R6-7
辅助输入进入低刺激恢复进度可取得、退出可达、头动仍响应R6-8
接收端断开后再次加入按实际授权恢复输出,不默认扩大共享R7-4

实施验收场景

以下场景把已有条款转成可复核的验收输入,不另设通用性能阈值。按产品适用能力选取,补充真实设备、用户、输入序列和证据;不适用记录原因,未执行不得记为通过。

条款测试输入与异常预期行为与失败判据
R2-2头部追踪仍正常但空间锚点丢失。不继续把旧锚点位置表现成当前可靠对齐。
R2-5重定心与共享内容同步同时发生。任务和内容身份保留,坐标重新核验且旧提交不续接。
R6-2主交互追踪失效时用户请求退出沉浸。存在已声明的可达退出路径,不能只指向失踪的空间按钮。

每个场景分别核对配置的有效值、执行记录与用户可理解的结果。保留版本、目标、事件时点、失败范围和恢复结果;外部结果未知不填作成功或失败。

参考来源

本文件支撑《设计规范》与《Design Token》。来源用于核对能力、限制与研究结果;条款强度、字段结构及恢复流程是本规范的设计判断,不能据“某个平台这样做”直接推导跨平台义务。

1. 证据怎样使用

标记含义
正文核验此次实际读取了相关一手章节,不代表设备实测或整站审阅。
保留来源保留已有资料入口和有限摘要,此次未重新完整读取;不能用来声称当前产品行为已验证。
受限/线索页面只有外壳、访问受限或正文付费;不据此补写数值、效果或符合性结论。

本资料库包含官方正文核验与明确标记的保留线索。Apple HIG 的静态抓取只取得脚本外壳,因此另行读取 Apple 官方设计讲解的转录正文;A01~A07 记录实际读取主题。Meta 的手部输入、移动、现实融合、边界和共享空间设计正文见 M01~M06。未进行设备测试、用户研究、系统性文献综述或法律合规评估。

数值必须连同设备、显示形态、输入方式、目标人群、任务、测量方法与有效范围使用。平台的点、dp、纹理像素不能直接作为通用空间角尺度。θ = 2 × atan(w / (2d)) 是几何关系,只能检查尺寸与距离方向,不能证明人能看清或点中。

2. 平台设计与追踪机制

编号与一手来源核验范围支持的内容及限制
R01 Apple:Spatial layout保留来源;此次仅取得页面外壳空间布局、视场、距离缩放的参考入口,关联 R1-1~R1-3。平台布局建议不能直接推广成通用观看距离或视野阈值。
R02 Apple:Immersive experiences保留来源;此次数据接口访问受限沉浸样式、进入退出、平台现实感知的参考入口,关联 R6-1~R6-3。具体系统动作与边界行为应在目标设备核对。
R03 Apple:Eyes保留来源注视目标布局及系统选取的参考入口,关联 R1-2、R1-7、R3-2。不由系统悬停能力推断应用取得了原始注视数据。
R04 Apple:Gestures保留来源直接与间接操作、手部访问与替代输入的参考入口,关联 R1-7、R7-3。不据此给出通用抬臂时长或疲劳阈值。
R05 Meta:Scene正文核验:混合现实与辅助场景采集场景模型会漂移失准,场景采集不等同于边界警示;近墙交互有接触风险。支撑 R2-2、R3-1、R3-4、R5-1。未由此推断模型能识别全部障碍。
R06 Meta:Passthrough相机数据接口保留来源透视与相机读取是不同能力;相关入口用于 R3-2、R6-3、R7-2、R7-3。相机采集帧率不等于显示刷新率,接口延迟不等于头动到显示的端到端延迟。
R07 Meta:Locomotion best practices正文核验:移动、转向与速度变化建议提供舒适选项与可控移动的实践依据,关联 R4。平台实践不证明某一方式对所有用户更舒适,也不构成统一角速度或加速度门槛。
R08 Meta:Guardian SystemScene 概览保留来源;前者为 PC 接口资料边界查询与场景数据权限的机制入口,关联 R5-2、R5-4。不能据 PC 接口存在就要求所有一体机应用获得相同状态。
R09 Meta:Designing for privacy保留来源功能所需权限、情境说明与拒绝后的相关功能限制;关联 R7-3。对使用者的授权不能代替旁观者的知情同意。
R10 Microsoft:Comfort正文核验:深度、运动、帧率和视野建议;设备背景较早固定光学焦面下的深度舒适、持续深度运动和头部锁定等问题模型,关联 R1、R3-2、R4。其数值依赖所述设备,不是跨设备人因常数。
R11 Microsoft:Coordinate systemsSpatial anchors保留来源空间坐标、漂移、锚点持久化的机制入口,关联 R2。某平台的身体跟随回退不证明别的平台在丢失位置追踪后仍有同样能力。
R12 Google:Working with Anchors正文核验:锚点类型、追踪对象和使用约束区分会话锚点与附着追踪对象的锚点;支撑 R2-1、R2-2、R2-4。创建成功不证明位置永远准确,也不自动提供可移动物体识别或追踪。
R13 Google:TrackingFailureReasonApple:ARCamera.TrackingStateGoogle 正文核验;Apple 保留来源Google 区分光照、特征、快速移动、内部状态与相机占用等原因。支撑 R2-2、R3-4;未知原因不能统一提示“移动慢一些”。未提供跨平台数值阈值。

3. 接口、内容与交换格式

编号与一手来源核验范围与地位支持的内容及限制
R14 Khronos:OpenXR 参考空间源文保留来源;接口规范源文参考空间、位姿有效性和原点变化的机制入口,关联 R2-2、R2-5、R4-5。接口事件不替应用定义用户反馈和恢复策略。
R15 W3C:WebXR Device API正文核验:会话可见性、参考空间、有界几何、reset;Candidate Recommendation Draft空边界几何不代表越界;可见、失焦可见与隐藏分别影响输入;原点变更需处理。支撑 R2-5、R5-2、R6-6。候选推荐草案不能写成已获 Recommendation 的标准;应用层门槛不是接口原文要求。
R16 WebXR:Trusted Environment正文核验:可信界面与隔离可信界面需可辨来源并隔离页面输入,故障时可信环境应保持响应。支撑 R6-2、R6-5、R6-6。它不要求产品禁用所有手势付款;本规范要求的是可核对请求与独立提交。
R17 W3C:Web Content Accessibility Guidelines正文核验:相关成功准则入口;Recommendation对比度、输入可达与闪烁评估的参考,关联 R1-8、R3-3。透视的实际背景、显示能力和角尺度仍需另测;不以一个闪烁频率数字证明内容安全。
R18 Design Tokens Community Group保留来源;格式工作入口用于视觉值的交换格式参考。本字典是行为词汇表,未声称 xr.* 的策略引用属于 DTCG 原生类型,也未声称已提供可直接导入的 DTCG 文件。

4. 研究与专项线索

以下保留研究线索及限制,此次不重新声称完成论文方法复核。规范不据它们生成统一症状、时长或年龄门槛。

编号与来源证据范围使用边界
R19 Saredakis 等:Factors Associated With Virtual Reality Sickness in Head-Mounted Displays保留来源;系统综述与元分析移动方式、内容和个体差异的关联线索,关联 R4。异质性与样本覆盖限制了外推,不能推成单一变量的因果结论。
R20 Denning、Dehlawi、Kohno:In Situ with Bystanders of Augmented Reality Glasses保留来源;旁观者定性研究隐蔽采集和场景相关接受度的问题模型,关联 R7-1、R7-2。非功能样机、小规模、单一城市;不证明指示灯或通知设计有效。
R21 Peripheral TeleportationVR locomotion methods differentially affect spatial orientation and cybersickness during maze navigation保留来源;移动方式比较可用于提出移动方式与方向感的取舍假设。研究的样本、量表与结果并不一致,不推出“瞬移永远更好”或“遮罩必然有效”。
R22 Meta:Quest 健康与安全警告保留来源;厂商告知场地、动态障碍与休息的专项入口,关联 R5、R6-4。适用设备的建议不成为所有设备的年龄或时长规则。
R23 IEEE:HMD-Based Virtual Reality Sickness Reduction Technology线索;未读取付费正文仅保留标准化工作入口,不引用正文要求或宣布符合。
R24 Fernandes 与 Feiner:Combating VR sickness through subtle dynamic field-of-view modification线索;正文付费,未读不引用样本量、效果或数值;不作为必须采用视野遮罩的依据。

5. 补充知识点与设计落点

编号与一手来源已核验内容设计落点与外推限制
R25 W3C:XR Accessibility User Requirements正文核验:语义、替代输入、目标定制、方向、声音与字幕;Working Group Note支撑 R1-7、R1-8 的需求范围。该文不是合规基线;本规范选择哪些要求、如何验收,属于自己的设计判断。
R26 Google:Android XR app quality guidelines正文核验:输入目标、舒适、闪烁、渲染与空间内容支撑 R1-7、R1-9 的设备相关验证方法。不抄成通用尺寸或帧率,不把适用头显的要求外推到全部眼镜。
R27 Meta:FrameSync正文核验:帧调度、连续陈旧帧、负载与温升支撑 R1-9 的连续异常帧和可变负载检查。运行时优化不代替应用的性能实测,不据此承诺一定降低不适。
R28 Google:Cloud Anchors正文核验:托管、解析和多人共享共享锚点需各设备解析,可用于 R2-7 的对齐前提。原文不规定本规范的协作界面、误差门槛或私人重定心策略。
需要解决的问题本规范的判断位置
设备能力被“支持 XR”一词遮住分别声明显示、追踪、输入、边界与退出责任适用形态表;Token 解析约定
看到了对象却无法可靠选中明确命中、取消、近远接管和输入丢失R1-7;interaction.selection.policy
辅助输入与字幕只停留在功能列表按主任务验证语义、焦点、等效表达与缩放后的可达性R1-8;interaction.accessibility.profile
网络同步被误当作空间对齐分开内容、位置和参与者位姿事实,局部失效局部处理R2-7;anchor.shared.alignment
只看平均帧率,忽略卡顿与恢复带观察窗口的帧预算及明确降级顺序R1-9;environment.render.budget
系统界面关闭时旧输入被补交失焦取消悬挂动作,恢复核对依赖并重新发起R6-6;immersion.interruption.policy
固定要求被列为可选参数固定底线直接验收,不提供关闭开关Token 第十一节

6. 仍需由项目验证的内容

观看距离、角尺度、命中间距、追踪误差、共享对齐误差、深度变化预算、帧时间和反馈时延都需要目标设备上的证据。测试应包含不同姿势、输入方式、视听和运动能力、背景光、负载及中断条件。

“没有发现问题”只对已覆盖的范围成立。旁观者能否识别采集状态、替代输入是否完整可用、低刺激默认是否能完成任务,需要真实用户证据;模拟输入和静态检查只能验证部分机制。未获取的付费标准正文和受限页面不得以检索片段补齐。

7. Apple 官方设计讲解

以下读取的是官方页面的转录正文,并非观看后取得的设备体验证据。讲解中的系统功能与操作细节按其平台条件理解;不直接转成跨平台 API 承诺。

编号与来源实际读取主题落点与限制
A01 Principles of spatial design窗口、熟悉的控制、空间尺度、沉浸与人的控制权R1-11、R6-1;容器选择按任务,不从平台名称推断所有设备都提供同等能力。
A02 Design for spatial input目标反馈、直接/间接手部操作、系统悬停与眼动隐私R1-7、R1-10、R6-6、R7-3;系统反馈不证明应用获得原始注视,具体事件以适配为准。
A03 Design considerations for vision and motion长时阅读、近距操作、深度线索、亮度变化及运动舒适R1-2、R3-2、R4、R6-8;不把设备建议当统一距离、视野或运动阈值。
A04 Design for spatial user interfaces材质、文字、布局、控制与内容的层次R1-2、R1-6、R1-11、R3-3;玻璃材质是平台方案,光学透视和视频透视仍分别验证。
A05 Design spatial SharePlay experiences共同内容、个人控制、共享标记与空间安排R2-7、R7-4;远程共同情境不证明同场物理位置安全,平台窗口共享不等于任意原始数据共享。
A06 Design immersive and interactive experiences窗口与三维内容的放置、坐姿/躺靠、重定向、环境与控制R1-4、R1-11、R2-5、R6-7;面板、物体和环境的变换不能混为一项。
A07 Explore immersive sound design与对象位置对应的声音、交互反馈、前景与环境声R1-8、R1-10;声音设计不能代替关键事件的可访问表达,不强制每个操作都发声。

8. Meta 官方设计指南

编号与来源实际读取主题落点与限制
M01 Hands best practices核心手部动作、反馈、活动区域与休息R1-10;降低动作负担,不将某个姿势或次数设成通用疲劳界限。
M02 Hands limitations & mitigations追踪范围、手部遮挡、光照、手与头追踪的差别R1-10、R2-2;分依赖判定,有效位姿不可由配置生成。
M03 General information for immersive experiences透视局限、视野、自运动与现实/沉浸转换R3-7、R4、R6-7;显示透视不等于自然视觉,不作为环境安全确认。
M04 Boundaryless best practices总遮蔽、活动方式、动态对象与边界模式转换R3-1、R5-2、R6-7;仅在平台明确支持时成立,场景模型不取代边界保护。
M05 Shared spatial anchors同场人数、身体接近、位姿估计误差与共同路线R5-6;化身轮廓不是身体轮廓,不将某种房间人数建议当所有场地通用限制。
M06 Locomotion user preferences移动/转向选项、实时与起始方向基准、舒适辅助R4-1、R4-3、R4-4;选择因人和任务而异,文中示例速度不作为本规范默认。

9. 从资料到规则的判定

先提取能力边界与设计问题,再制定本产品的义务、模式及验证。平台有现成机制时优先复用并核验;自绘时补齐同等任务所需的反馈与恢复。Apple 对持续内容的布局建议和 Meta 对活动中现实遮蔽的建议有不同前提,不能脱离任务合并成唯一的头部锁定摆放位置。默认避免长时间刚性锁定;确有需要则按可读性、现实可见性和平台控制逐项验证。