Design Guidelines

响应式设计规范

面向设计师与工程师:让用户在窗口、容器、方向和输入环境变化时,仍能读懂内容、完成任务,并接着刚才的位置继续操作。

6 条原则 · 24 条规则 · 必须 19 · 应当 5

目录

面向设计师与工程师:让用户在窗口、容器、方向和输入环境变化时,仍能读懂内容、完成任务,并接着刚才的位置继续操作。

响应式设计需要定义空间变化时的产品行为:哪些内容持续可见,哪些内容可以折叠,布局何时重排,以及变化之后任务状态和操作入口如何延续。

本规范由 六条原则、24 条规则、布局示例与验收清单组成。配套文件为《Design Token》和《参考来源与论据边界》。本文的断点、间距和布局示例是建议初始配置,尚未经过具体产品的用户研究与浏览器实测。

1. 适用范围与读法

1.1 适用范围

主要适用于 Web 网站、业务系统、工作台和 Agent 界面,覆盖视口缩放、浏览器分屏、可调整面板、横竖屏、文字放大、软键盘和混合输入场景。原生应用可以参考行为原则,尺寸单位与平台交互需要另行映射;CSS px 不直接等同于设备物理像素、iOS pt 或 Android dp。

本规范管理同一界面在不同可用空间中的表达与连续性。布局调整不得改变操作对象、提交含义或已保存的工作状态。打印、嵌入式页面、竖排文字和折叠屏仅在产品声明支持时进入验收范围;无需为未提供的能力新增界面。

1.2 约束词

  • 必须/不得:符合本规范的必要要求。
  • 应当/不应当:默认遵循;偏离时记录具体原因、替代方式与验证结果。
  • 可以:可选实现,不是每个产品都要新增的能力。

判定以正文中的独立义务子句为单位:无约束词的陈述句承接所在规则标题的强度;显式标注约束词的子句按其自身强度判定——【应当】规则内的「必须/不得/禁止」子句仍是硬要求,规则标题的强度标注不替代子句约束力。表达禁止行为一律用「不得」,「不能」只用于事实或能力陈述,不表达义务。示例、设计应用与反例用于揭示要求与失败路径,不新增义务。

原则用于解释设计方向,不作为独立判定项。规则中的适用与边界限定正文要求;第 4 章示例和第 5 章反例不另行增加义务。每条规则写明适用、要求与验证。示例帮助解释要求,不指定唯一组件或工程框架。来源编号链接到 reference.md;由资料推导的项目规则不冒充来源原文。满足本文不能单独证明符合完整 WCAG 2.2。

2. 六条原则

原则管辖对象设计方向规则
R1 核心任务持续可达内容与操作的取舍随空间调整呈现层次,保留完成任务所需的信息与入口R1-1~R1-4
R2 布局依据实际空间测量范围与结构切换根据视口或容器的实际承载能力,决定布局变化R2-1~R2-4
R3 内容保持可读排版、伸缩与溢出自然排布、合理限宽,特殊二维内容局部处理R3-1~R3-4
R4 变化保持操作连续用户输入、焦点与位置布局切换之后,用户能接着刚才的工作继续R4-1~R4-4
R5 交互适应输入与偏好输入能力、热区和运动将空间、输入方式、密度和用户偏好分别处理R5-1~R5-4
R6 设计决策可实现可验证交付、Token 与验收把变化条件、数值来源与通过条件写清楚R6-1~R6-4

每条规则按直接约束对象归属一条原则;同一场景可以同时触发多条规则。例如,面板收起后的入口属于 R1,焦点如何回到入口属于 R4,入口的触控热区属于 R5。这是便于维护的责任划分,不宣称已经通过完整性或互斥性的实证检验。

3. 规则详解

R1 核心任务持续可达

R1-1明确内容与操作优先级必须

适用同一页面需要在不同空间中呈现不同的信息密度。

要求必须按用户任务区分当前主要内容、主要操作、判断所需信息与辅助内容。布局变窄时,必须保留完成当前任务的路径;不得仅因宽度不足移除提交、取消、纠错或必要说明。

验证用同一任务分别在窄窗口和宽窗口完成。检查用户是否能获得相同的必要信息与可用结果,而非仅比较截图中是否存在同名按钮。

R1-2折叠内容保留明确入口必须

适用导航、工具栏、筛选器或辅助面板发生折叠。

要求折叠后的内容必须有可发现、可操作的入口,入口名称或上下文必须能够说明用途。已有筛选、选中项或待处理事项影响当前结果时,必须保留相应提示。不得依赖悬停才能找到折叠后的功能。

验证让用户在面板收起时修改一个已启用的筛选条件;检查其能否理解当前结果为何被过滤,并找到修改位置。

R1-3布局不改变操作语义必须

适用同一操作在不同布局中改变位置、外观或承载组件。

要求同一操作的对象、权限、提交时机与后果必须保持一致。将弹窗换成全屏页面,不得顺带把“预览”变成“发布”,或把关闭界面解释为同意操作。确有业务差异时,必须在操作前说明差异。

验证对照宽窄布局下同一操作的状态变化和业务请求,而非只核对文案。

R1-4Agent 状态与控制入口持续可达必须

适用呈现 Agent 执行、待确认请求或结果的界面。

要求执行区域折叠后,必须保留当前状态及返回执行详情的入口。任务支持停止时,停止入口必须可达;待确认事项必须有可发现的提示,并能打开足以判断后果的完整信息。不得因窗口改变重新发起执行、自动确认请求或把隐藏面板等同于停止任务。

验证执行中缩窄窗口,再依次测试停止、打开待确认事项和查看结果。核对任务标识与执行次数保持一致。

R2 布局依据实际空间

R2-1使用明确的空间测量范围必须

适用任何由尺寸触发的布局变化。

要求必须明确规则测量的是页面视口还是指定容器。不得以设备型号或屏幕物理分辨率代替可用布局空间。页面应当根据视口调整整体结构;可复用组件应当根据所在容器调整内部排列。

测量边界:必须声明物理宽度还是逻辑行内尺寸,并保持查询轴、Token 和验收记录一致。容器查询必须指定负责测量的祖先容器;组件自身因样式变化产生的尺寸不得造成反复切换。

验证在同一个宽窗口中,将同一组件分别放入主区域和窄侧栏,检查各自是否适配。技术参考 S03

R2-2断点由内容容纳能力校准应当

适用建立页面或组件断点。

要求应当先确定主要区域最小可用宽度、间距和内容约束,再确定结构切换阈值。应当用长文本、放大文字和真实内容校准断点。默认预设可以采用 640 / 1024 CSS px,但不得将其表述为所有产品通用的标准断点。

验证记录切换前出现的具体问题,例如“主内容无法容纳必要字段”,而不是仅写“进入平板尺寸”。

R2-3先定义伸缩,再定义结构切换应当

适用卡片集合、表单、工具栏和多栏内容。

要求应当优先使用自然换行、弹性空间、最小宽度与最大宽度;仅在这些方式无法维持可用性时切换结构。每个结构状态应当说明排列、滚动区域和主要操作位置。不得通过整体缩小界面来掩盖内容容纳问题。

能力回退:若依赖容器查询、脚本测量或延迟获取的布局配置,必须预先定义能力不可用时的基础排布。首屏到增强布局的切换不得清空输入或重复呈现可聚焦控件。

验证连续拖动窗口,检查固定截图之间的宽度是否仍然可用,是否出现无必要的布局跳变;禁用增强机制后核对基础任务仍可完成。设计参考 S01、S02

R2-4高度、方向与键盘进入空间判断必须

适用横屏、低高度窗口、固定操作栏、输入框和软键盘场景。

要求必须保证当前输入、必要上下文和下一步操作可以被访问。空间不足时,可以滚动、收起辅助区域或取消固定定位。不得仅按宽度决定固定区域的高度。除特定方向对功能本质必要的情况外,不得限制只能横屏或只能竖屏使用。

边界布局视口、视觉视口和容器尺寸必须分别识别。软键盘可能只缩小视觉视口;100dvh 与安全区 inset 均不得被当成跨浏览器通用的键盘避让保证。固定区域实现必须有可滚动或回到文档流的退路;系统遮挡与作者内容遮挡分开记录。机制 S16

验证在横屏及软键盘弹出时完成长表单和错误修正;检查固定区域与安全区是否遮挡输入或提交。方向要求参考 S09,键盘处理属于本规范的设计要求。

R3 内容保持可读

R3-1常规内容支持重排必须

适用Web 中的常规阅读内容、表单和页面控制区。

要求纵向滚动内容必须能在等效 320 CSS px 宽度下呈现,不丢失信息或功能,也不要求双向滚动;横向滚动内容对应等效 256 CSS px 高度。因用途或含义确需二维布局的区域,按 R3-4 单独处理。

验证检查页面、标题、搜索框、分页和提示内容,而非只检查主体。桌面上可用 1280 CSS px 视口、400% 页面缩放构造约 320 CSS px 的测试条件,实际以测得的视口为准。WCAG 1.4.10,S06

R3-2文字允许放大与自然增长必须

适用正文、标题、标签、提示和文字控件。

要求除 WCAG 1.4.4 中字幕与文字图像的例外外,文字必须能通过用户代理支持的方式放大至 200%,不丢失内容或功能。不得通过断点规则抵消到无法达到所需的放大效果。

换行义务的范围:承载正文、标题、标签、提示的普通文字容器应当能够自然换行与增长;确需单行显示或摘要截断的控件(单行输入框、表格列标题、标签页名称等)不因本条被迫换行,但必须提供可发现且可操作的完整内容获取方式(聚焦或激活后展开、详情页;悬停只能作为补充)。不得以强制换行破坏控件用途,也不得以"有全文入口"为由让普通正文一律截断。

用户覆盖文字间距:作者的默认行高与用户的间距覆盖是两件事。对支持相应文字样式的内容,用户将行高设为字号的 1.5 倍、段后间距 2 倍、字距 0.12 倍、词距 0.16 倍且不改其他样式时,必须不丢失内容或功能。语言或文字系统不使用某属性的,按 WCAG 1.4.12 的例外处理并记录理由。这组测试值是覆盖后的验收条件,不是默认 Token 的下限——标题默认行高 1.25 并不因此违规。

验证测试 100%~200% 的中间状态、中文长标题、较长译文和连续字符串;检查按钮、输入框、错误提示是否裁切。流动字号不能只验证默认缩放。

放大倍率须按实际倍率记录,不按菜单档位记录:记录初始字号、当前字号与实际视觉放大倍率三项,并确认存在受支持的方式达到相对初始文字 200% 的放大。同一档位在不同断点下的实际倍率不同——例如 1440 CSS px 窗口、初始标题 40px,页面缩放 200% 后布局宽度约 720 CSS px、标题取 32px,视觉倍率约 1.6;同一设计在 300% 档位下可达约 2.1。因此不得据某一档位的倍率直接判定符合或违反;判据是"存在受支持的方式达到 200%"。若产品另有"菜单 200% 即文字 200%"的更强承诺,按该承诺单独验证。

文字间距覆盖:中文、拉丁文字与目标语言分别在窄窗口、实际断点两侧与表单错误态下施加适用属性的覆盖;保留默认字号,检查按钮标签、卡片摘要、菜单与错误提示。逐项记录哪些属性不适用及理由。WCAG 1.4.4,S071.4.12,S14

R3-3内容宽度与信息密度分别控制应当

适用阅读页、表单、数据工作台和超宽窗口。

要求应当按内容类型设置宽度约束。阅读内容达到合适行长后保留留白;工作台可以将额外空间用于并排比较或辅助内容。不得为填满窗口而无限拉长文字行、放大控件或增加不必要信息。密度应当由任务及输入需求决定,不自动随屏幕宽度变化。

语言与方向:声明支持的语言必须使用真实长内容验证。应当使用逻辑方向表达边距和排列;不得用视觉反序破坏阅读含义。RTL 文本与数字、标识符混排时必须保持标签和对象的对应关系。ch 衡量“0”字形的前进宽度,ic 依赖字体的表意字符度量,都不能保证固定字符数。机制 S18

验证在超宽窗口中完成阅读与比较任务;检查额外空间是否有实际用途。中文与拉丁文字行长应分别检查,不把 ch 当作通用汉字计数单位。

R3-4二维内容的溢出有边界必须

适用数据表格、地图、图表、代码和编辑画布。

要求确需二维布局的内容必须有明确的可操作区域,并保持必要的行列关系、坐标或比较关系。普通表格应当优先将横向滚动限制在表格容器内;例外不得扩展到无关的页面标题、搜索和分页。单元格本身仍需按其内容检查重排要求。

可以按任务采用重点列与详情、局部横向滚动或可缩放画布;不得一律把表格改为卡片而破坏比较任务。普通代码文本不因“是代码”就自动取得二维布局例外,应先评估换行或其他访问方式。

验证在窄视口中查找同一行的字段、比较两条记录,使用键盘访问滚动区域;检查整页是否被无关内容撑宽。例外边界 S06

R4 变化保持操作连续

R4-1输入与业务状态不随布局重置必须

适用窗口变化会重排、替换或重新挂载界面的场景。

要求必须保留已输入内容、选择项、筛选条件与当前任务状态。不得因结构切换重复提交、重新创建任务或覆盖用户尚未提交的编辑。组件的视觉实例变化不得作为重置业务状态的依据。

验证输入未提交内容,在断点附近反复调整窗口,再继续编辑和提交,核对内容完整且业务动作只发生一次。

R4-2焦点与阅读顺序有连续性必须

适用重排、面板折叠、抽屉或对话框形态切换。

要求布局切换时,判据是焦点本身的身份、顺序与可见性是否持续成立,而不是"控件还在、还能点"

  • 持有焦点的等义对象仍存在且可用时,焦点必须仍在该对象上——控件可点击但 activeElement 已回到 body 或文档根,记为失败。
  • 对象将被隐藏或替换时,组件设计记录必须给出确定的接续目标与恢复规则,不得只写"接续到合理对象"。
  • 变化区域内没有焦点时,不得因重排主动抢焦点
  • 不得为了视觉排序造成破坏含义或操作的键盘、辅助技术阅读顺序。

验证焦点分别置于保存按钮、抽屉内部、变化区域之外三种位置,再跨断点切换;每种情形检查焦点对象、下一次 Tab 的落点、关闭后的返回路径。用户侧须能说出自己当前在哪并继续操作;实现侧记录 activeElement、等义对象标识、隐藏状态与所在滚动容器。modal 变为常驻面板时,检查原有的焦点约束是否已解除。焦点顺序参考 S10;跨布局接续方式为本规范推导,不要求特定 DOM 架构。

R4-3保留语义阅读位置与返回路径应当

适用列表—详情、长文、聊天和多步表单。

要求应当优先保留当前阅读对象、选中记录或所在步骤,而非机械保留同一滚动像素。两栏变单栏时,应当提供可理解的返回路径,返回后恢复上下文。不得因宽度调整自动导航到首页或列表顶部。

媒体与异步内容:承载任务信息的图片和视频必须定义缩放、裁切或换图策略,不得裁掉完成任务必需的信息而不提供完整内容访问方式。媒体、字体或异步内容加载时,应当预留空间或维持语义锚点,避免当前阅读对象和操作目标突移。图片机制 S17

验证阅读列表中部的一项详情后切换布局,再返回列表,检查选中项及邻近内容是否容易找到;加入延迟加载图片和字体失败情境重试。

R4-4固定区域与动态内容不夺走控制必须

适用固定导航、底部操作栏、流式输出与自动滚动。

要求固定区域不得使关键内容与操作无法访问。组件获得键盘焦点时,不得被作者创建的固定区域完全遮住;适用例外(用户自行移动的内容、用户主动打开的内容)按 WCAG 2.4.11 判定。应当尽量使获得焦点的对象完整可见——"完全不被遮挡"是更高目标,不是本条的通过底线;"滚动一下就能看到"不构成"焦点当前可见"。用户正在阅读历史内容或编辑时,布局改变或新内容到达不得无条件抢焦点、重置选区或滚动到底部。需要提示更新时,可以提供新内容入口。

验证在窄窗口中阅读旧消息,同时接收新消息、打开键盘和切换面板,检查位置是否可控。固定区域与重排 S06焦点遮挡 S15

R5 交互适应输入与偏好

R5-1输入能力不由宽度推断必须

适用鼠标、触摸、触控笔、键盘和混合输入。

要求不得将宽窗口等同于精确指针,将窄窗口等同于触摸。悬停可以提供增强反馈,但关键操作与必要说明必须有点击、聚焦或其他可用入口。输入方式改变不得使原有任务失去完成路径。

验证在宽窗口用触摸完成任务,在窄窗口用键盘完成任务。能力查询可以辅助样式选择,但不能代替实际任务验证。S12

R5-2热区与可见尺寸分开定义必须

适用链接、按钮、图标操作和可交互图表元素。

要求必须区分可见图标尺寸、控件尺寸与实际命中区域。Web 指针目标必须满足 WCAG 2.5.8 的 24×24 CSS px 要求或其明确例外。重要触控操作应当以至少 44×44 CSS px 作为本项目的初始设计目标,再验证间距与实际操作表现;不得把这一建议写成 WCAG AA 的统一数值。

验证检查实际命中区域和相邻目标,避免扩大热区后重叠;仅放大图标不等于热区已经满足要求。S08

R5-3密度是独立设计维度应当

适用提供紧凑/舒适密度,或高信息量工作台。

要求密度应当根据任务、输入方式或明确偏好选取,不应当与视口状态锁死。提高密度时仍必须满足阅读、操作与放大要求。空间状态 compact 与密度 dense 必须区分命名和取值。

验证检查“窄窗口+舒适密度”和“宽窗口+紧凑密度”是否都可用。没有密度需求的产品无需新增设置入口。

R5-4布局运动尊重减少动画偏好必须

适用带位移、缩放或持续动画的布局切换。

要求检测到减少动画偏好时,必须取消或显著减少非必要的位移、缩放与持续运动;状态变化仍需通过静态信息或适当替代方式表达。不得依靠转场完成回调才提交业务结果,以免关闭动画后流程无法完成。

验证启用减少动画偏好后切换全部布局状态,检查任务仍能完成、状态仍可理解。机制参考 S13

R6 设计决策可实现可验证

R6-1交付变化规则与中间状态必须

适用新页面、组件和响应式改版。

要求必须交付触发范围、布局行为、持续可达内容、溢出策略和状态接续方式;Web 页面必须保留用户缩放能力。设计稿必须覆盖主要结构状态,并说明状态之间的伸缩行为。不得仅用三张设备尺寸截图代表完整规范。

验证让未参与设计的人依据记录解释任意中间宽度的表现;解释不一致的位置必须补足规则。

R6-2数值 Token 与行为规则建立对应必须

适用使用 Design Token 的设计系统。

要求复用的间距、字号和尺寸必须有明确来源;语义 Token 应当引用基础 Token,组件专属 Token 按实际复用需求建立。交付必须同时包含源值、上下文选择规则和解析后的有效值,相同输入得到相同结果;别名在合法覆盖完成之后解析,组件局部值不反向写入全局。Token 负责数值与引用,规则负责何时折叠、如何返回等行为。当前窗口宽度、焦点对象和任务状态不得存入 Token。

验证修改一个语义 Token,检查受影响组件是否符合预期;检查行为规则没有因改值被默默绕过;用缺失引用、引用环和类型冲突的反例验证解析行为,不以默认尺寸截图代替。格式参考 S04、S05

R6-3连续尺寸与真实内容共同验收必须

适用响应式变更交付。

要求必须测试断点两侧及中间宽度、文字放大、长内容、空状态与输入场景。声明支持的平台必须在相应浏览器或设备中验证。结果必须落到四种状态之一,"未验证"与"不适用"不得混用

结果含义必须记录
通过已验证且满足通过条件环境与证据
失败已验证且不满足具体规则、触发条件、复现步骤
未验证应当适用但尚未测缺失的证据与后续责任人
不适用适用条件不成立该条件为何不成立的理由

不得以 Token 合法或设计稿完整替代运行验证,也不得把"没测"记为"不适用"。

验证使用第 5 章清单,记录通过/失败/未验证/不适用及理由;失败修复后复查受影响路径。评审一致性可用两个样本校准:未测的软键盘场景应得"未验证",产品无 Agent 功能的条目应得"不适用"。

R6-4默认值与例外可追溯必须

适用新增断点、覆盖 Token 或为某页面采用不同布局策略。

要求必须标明值来自外部标准、系统默认还是产品实测。覆盖应当限定作用域,并记录原因、关联规则和受影响场景。局部组件需求不得无依据地修改全站断点。

验证检查一个例外是否能追溯到具体内容约束和验证结果,无需另建审批流程。

4. 布局与组件应用示例

4.1 默认空间状态

以下为 Web 起始预设,单位为 CSS px;区间左闭右开,宽度允许小数。640 和 1024 是项目建议值,并非 Material、Carbon 或 WCAG 的统一规定。

状态视口宽度典型策略
compact 紧凑空间w < 640优先当前主内容;辅助区域按需打开
regular 常规空间640 ≤ w < 1024按内容最小宽度判断是否并排,不强制两栏
wide 宽阔空间w ≥ 1024空间允许时展示辅助区域;阅读内容继续限宽

页面状态不直接决定组件状态。位于窄侧栏中的组件即使处于 wide 页面,也可以使用自身的堆叠布局。无需为超宽屏新增断点,除非确有新的结构行为。

4.2 组件行为矩阵

对象空间充足空间不足保留项与约束
主导航可见导航或侧栏抽屉、菜单或合适的导航组件当前位置与常用入口;选择符合产品层级的导航方式
列表—详情并排两栏分步展示,提供返回选中项、筛选和语义位置
辅助面板并排呈现抽屉或独立页面明确入口、待处理提示和输入状态
工具栏常用操作展开次要操作收入更多菜单主要操作与操作对象
表单相关字段可并排按阅读顺序逐行排列标签、错误提示与提交路径
卡片集合按卡片最小宽度自动排布逐步减少列数顺序、完整内容和可操作性
表格完整比较布局重点列与详情,或局部横向滚动比较任务决定方案,不一律转卡片
对话框限宽浮层必要时全屏标题、关闭、提交、焦点与未提交状态
Agent 工作区任务与证据并排主任务优先,证据按需打开状态、停止、确认与结果入口

4.3 Web 入口与媒体内容

以下示例说明视口配置、媒体适配与加载稳定性如何落地,不新增原则。

布局视口:例如采用 <meta name="viewport" content="width=device-width, initial-scale=1">,不附加禁用缩放或限制最大倍率的设置。视口配置错误会使断点不按预期触发——在声明支持的移动浏览器中实测布局视口,而不是只在桌面缩放窗口。

承载任务信息的媒体:商品细节图可等比缩放,装饰图可裁切,窄栏宣传图可换构图。提供完整视图或等效说明,验证任务所需细节仍可获得;替代文本是否足够取决于任务,不以一句图片描述代替所有细节。

延迟加载:用资源的 widthheight 或与构图匹配的 aspect-ratio 预留空间;各构图比例不同则分别处理。首屏关键媒体不机械套用延迟加载;图片失败时保留必要说明和继续任务的入口。

资源候选可用 srcsetsizespicture 实现;本规范不要求所有图片都采用多候选资源,也不从窗口宽度推断网速——网络传输与性能预算由项目另定。

4.4 从任务推导布局:记录列表与详情

以下是可复用的设计记录示例,数值是项目假设,尚无产品实测证据。页面负责外边距,工作区容器负责内部结构。

决定示例选择与理由
用户任务从筛选后的列表打开记录,编辑并保存,再返回原位置继续处理
最小内容需求列表 280px,详情 400px,间距 24px;均按面板外框计算,含内部留白
测量工作区内容盒的逻辑行内尺寸 C;示例使用横排文字
结构阈值C ≥ 280 + 24 + 400 = 704px 时可并排;C < 704px 时单区展示;长译文或文字放大后重新验证此假设
空间充足列表保留 280px,详情占剩余空间;详情没有选择时显示选择提示
空间不足保留当前操作区域,具体按下方接续表选择;详情形态提供“返回列表”,不因缩窄自动打开某项
不变量当前记录 ID、筛选、选中项、编辑草稿、校验错误、提交状态和阅读锚点
溢出详情文字自然增长;附件限宽;需比较的表格局部横向滚动,搜索与分页继续重排
数值消费breakpoint.container.recordPanel.inlinecomponent.recordPanel.list.minInlineSizecomponent.recordPanel.detail.minInlineSizecomponent.recordPanel.gap;在 Token 字典中按需启用
能力失败没有容器查询时使用单区流程,仍能打开详情、保存和返回;不依赖脚本测量才显示主要内容

跨布局接续表:只在原对象将失去可见性或可操作性时转移焦点;“显示哪一区域”与“焦点落在哪个对象”分别决定。

触发与原位置可见区域与焦点接续状态与返回结果
并排 → 单区;焦点在详情输入框保留详情;同一字段保持焦点、选区和输入法组合输入草稿、错误与提交状态不变
并排 → 单区;焦点在列表项或筛选器保留列表;同一对象保持焦点详情草稿仍保存于工作状态,重新打开时恢复
并排 → 单区;焦点在工作区外不移动焦点;按最后主动使用的区域显示,无记录时显示列表不自动导航、不触发保存
单区详情 → 并排;焦点在详情字段展示列表及详情;保留同一字段焦点列表定位原记录,不跳至顶部
单区详情 → 并排;焦点在将消失的返回按钮将焦点接续到详情标题;标题可程序聚焦,不加入常规 Tab 序列下一次 Tab 到详情的首个可操作元素
用户主动返回列表焦点回到原记录的打开入口恢复筛选和语义位置;不等同于取消草稿
返回时原记录已被移除或过滤焦点接续到列表标题,说明记录不在当前结果中保留筛选,给出清除筛选或继续浏览的入口

若采用“模态抽屉 ↔ 常驻面板”,另写双向规则:切为常驻时解除背景 inert、滚动锁和焦点约束;切为模态时确保焦点不留在被禁用的背景。不要仅切换外观而保留错误的模态语义。无焦点位于该区域且用户未主动打开时,优先收起为入口,避免尺寸变化强行开启模态界面。

成对验证:一方面,在编辑、中文输入法组合输入、保存未返回和列表加载时双向跨越 704px,核对状态、焦点和请求次数;另一方面,在工作区外输入、未选择记录和宽度连续变化时,确认不会抢焦点、弹确认、自动选记录或反复折叠。通过结果必须同时具备“用户可以继续”和“实现状态未被重置”的证据。

4.5 如何选择适配方案

  1. 先走一遍真实任务,列出必须同时看到的内容、动作和判断依据。
  2. 用长文案、错误提示、放大文字压测内容最小空间,再选择自然换行、并排、折叠或分步呈现。
  3. 用“空间变窄”和“空间变宽”两个方向写接续表,分别覆盖焦点在区域内、外、将被隐藏对象上的情况。
  4. 最后把重复使用的尺寸提取成 Token;一次性局部行为直接写入组件记录,不新增全站模式或用户设置。

5. 验收清单

以下为项目验收建议,不是新增的屏幕断点。记录结果与环境即可,无需为每项创建独立文档。

维度最小检查集合通过条件
宽度320、375、640、768、1024、1440、1920 CSS px;实际断点 b−0.5、b、b+0.5 及中间值内容与操作持续可达,无无关页面溢出
容器同一组件放入窄面板与宽主区;连续拖动分隔条依据自身空间调整,不被页面状态误导
高度与方向低高度窗口、横竖屏、软键盘与安全区当前输入、必要上下文和下一步可访问
缩放文字达到 200%;重排按等效 320 CSS px 检查不裁切必要内容,不抵消用户放大
内容空、少量、大量、长标题、长译文、错误与加载不依赖理想占位文案成立
输入键盘、触摸、鼠标;目标平台实际支持的混合输入无悬停独占功能、焦点丢失或热区重叠
连续性编辑中、选择中、执行中、确认中跨断点不丢草稿,不重复动作,不改变业务后果
语言与方向目标语言长译文、RTL 混排;声明支持竖排时检查轴映射标签、对象、阅读和焦点顺序一致,无截断关键含义
能力回退容器查询不可用、配置失败、脚本未就绪、媒体和字体失败基础任务可完成,不重复可聚焦控件,不重置已开始的操作
偏好减少动画;如有密度模式则检查各组合状态可理解,任务可完成
特殊区域表格、代码、画布与流式输出滚动范围明确,阅读与比较关系可用
文字间距适用属性按 WCAG 1.4.12 的四项值覆盖,保留默认字号按钮标签、卡片摘要、菜单、错误提示不丢内容或功能;不适用属性有记录
焦点连续性焦点置于变化区域内/外及抽屉内部,跨断点切换焦点对象与下一次 Tab 落点可预期;获得焦点的组件未被固定区域完全遮住
Web 视口与媒体声明支持的移动浏览器实测布局视口;主体靠边的内容图片放入窄容器;延迟加载媒体返回断点按预期触发且用户缩放未被禁用;裁切不使必要主体或文字失去访问途径;媒体返回后阅读位置与操作目标不跳

响应式验收失败应当落到具体规则、触发条件和复现步骤。截图可以证明某个状态的外观,不能单独证明状态接续和任务完成。

5.1 两侧反例

每条重点规则都有两种失败方式:做不到(未达到要求)与做过头(用增加负担的方式"满足"要求)。两侧均需检查;是否不符合以具体正文义务为准,不以审美偏好单独否决。

规则做不到做过头
R1-2 折叠入口筛选面板消失且找不到入口把主要操作也全部藏入多级菜单,任务路径反而不可发现
R2-2 内容决定断点按设备名称套断点,长译文先溢出再切换每多一个字符就新增全站断点,没有内容约束依据
R3-1 常规内容支持重排窄宽度下必须左右拖动才能读完一行正文为避免横向滚动把数据表一律拆成卡片,比较任务反而无法完成
R3-2 文字放大与间距用户放大到 200% 后按钮文字被裁切给单行输入框和表格列标题强制换行,控件失去用途
R4-2 焦点连续性抽屉收起后焦点回到文档根,用户不知道自己在哪每次重排都主动把焦点抢到"主要操作"上,打断用户正在做的事
R4-4 固定区域不夺走控制获得焦点的输入框被固定底栏完全盖住一有新内容就弹确认框询问是否滚动,阅读被反复打断
R5-2 命中区域图标看起来很大,实际点击区域不足无限扩大透明热区,遮住相邻操作
R6-3 连续尺寸验收只截了三个断点的图就宣布通过为跑满大量尺寸,每个尺寸都重置页面,漏测编辑中的连续切换

规则要求的是承诺成立,不是把提示、确认或开关加满——过度设计同样是失败

5.2 证据与验收结论

证据层回答什么最小记录
文档任意尺寸下的行为是否可解释规则、测量对象、阈值依据、接续表、Token 来源
实现变化时机制是否生效浏览器与系统环境、视口与容器尺寸、缩放、输入方式、前后焦点对象、草稿和请求次数
用户任务人能否发现入口并继续完成任务步骤、是否找到返回和纠错路径、是否误解折叠后的状态、失败位置

采用记录格式:场景 / 规则 / 环境与内容 / 初始状态 / 操作 / 预期 / 实际 / 通过、失败、未验证或不适用 / 证据与责任人。浏览器设备模拟不能替代软键盘、混合输入和辅助技术的目标环境验证。

验收门槛:适用的必须项失败即不通过,不用平均分抵消草稿丢失、重复提交、主要操作不可达或焦点丢失。未验证项保留为待验收;不适用项注明条件。应当项偏离需说明理由、替代方案与相同任务下的证据。截图、JSON 静态检查、实际任务操作分别记录,不能互相替代。

修改断点、字体、内容最小宽度、固定区域或 DOM 结构后,复查受影响的尺寸、语言、焦点和状态组合;单纯调整一个数值也可能改变布局行为。无需每次穷举所有主题,优先覆盖共同写入同一 Token 或共享空间约束的组合。

6. 术语

术语本文含义
CSS px布局使用的参考像素;不同于屏幕物理像素,不按 DPR 换算断点
布局视口页面布局与视口媒体查询的空间依据
视觉视口当前实际可见的页面区域,可因捏合缩放或软键盘变化
容器内容盒去除边框与内边距后的容器空间;不得与面板外框尺寸混算
inline / block由书写模式决定的行内轴与块轴;横排时通常对应宽与高
语义阅读位置当前记录、段落或步骤及邻近上下文,不是固定滚动像素
布局状态根据空间选取的表达方式,不等同于设备类别、信息密度或业务状态

实施验收场景

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

条款测试输入与异常预期行为与失败判据
R2-1宽视口中把组件放入窄容器,并逐步调整容器。组件按约定容器轴重排,不被页面宽状态强制并排。
R4-1输入中触发断点、文字放大和软键盘。输入、焦点和主要操作保持可达,不重复挂载可聚焦控件。
R6-2覆盖基础值后解析其语义别名,再注入引用环。合法覆盖得到新有效值;引用环被拒绝并保留已验证基础布局。

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

参考来源

本文件配套《响应式设计规范》与《Design Token》。来源以标准发布方、设计系统官方文档与技术文档为主,区分外部要求、实现机制与本项目的设计判断。

检索发现,响应式布局、无障碍重排与 Token 交换均有可参考资料,但它们解决的问题不同。本专题将这些资料组合为面向 Web 产品的六条原则与 24 条规则;不声称这套分类、断点或 Token 命名是行业统一规范。

1. 来源类型与核验状态

类型或状态含义与边界
W3C RecommendationWCAG 2.2 是正式推荐规范,应在其适用范围与符合性等级内使用。
Understanding 解释文档W3C 发布的理解材料,帮助解释成功准则及例外;解释文档本身不是新增的规范性要求。
DTCG 社区组报告Format 与 Resolver 为稳定的社区组报告,不是 W3C Recommendation。
官方设计系统实践Material、Carbon 的设计决策可供参考,不能自动成为所有产品必须采用的数值。
技术文档MDN 解释 CSS 能力与限制;有实现机制不等于本项目已经做过运行验证。
已核验相关内容已读取原始页面中用于判断的内容或章节,不表示审阅全文、运行示例或测试所有浏览器。
官方检索片段只读到搜索工具返回的官方页面正文片段;不标为已核验完整页面。

下列链接定位所采用的原始资料;外部标准的标识及固定来源 URL 用于准确定位证据,不表示本项目的发布编号。核验只覆盖相关内容,不代表兼容性或产品运行测试。

2. 布局与组件适配

S01 Material Design 3 — Canonical layout examples

  • 来源官方页面
  • 状态:官方检索片段。片段包含信息流、列表—详情与辅助面板的分类及跨断点适配说明;直接打开页面仅返回 JavaScript 提示,未核验交互示例全文。
  • 支持什么:以常见任务结构组织布局示例,作为 R2-3 和组件行为矩阵的参考。
  • 不支持什么:不能据此宣称所有产品在某个宽度必须采用两栏、侧栏或底部导航。本项目的 640 / 1024 断点不来自该页面。

S02 IBM Carbon — 2x Grid

  • 来源Overview
  • 状态:已核验基础单元、固定/流动/混合栅格、断点与尺寸刻度相关内容。
  • 支持什么:用有限的尺寸刻度建立秩序,并区分增加可见项目数量与增加每个项目的内容空间;支持 R2-2、R2-3、R3-3 与基础 Token 的组织思路。
  • 数值边界:Carbon 页面列出的断点为 320、672、1056、1312、1584px;这些是 Carbon 自身的配置。本项目不将其与其他设计系统的断点拼接成所谓通用标准,也未照搬其列数、边距与面板行为。

S03 MDN — CSS container queries

  • 来源官方文档
  • 状态:已核验容器尺寸查询、容器建立与组件适配示例。
  • 支持什么:尺寸容器查询依据指定容器调整后代元素样式;支持 R2-1 的页面与组件分别适配,以及 Token 文档中的局部状态。
  • 不支持什么:没有定义本项目的组件断点;不能据此认定所有容器查询子功能在全部目标浏览器上可用。具体采用的尺寸查询、样式查询等需要分别验证。

3. Design Token 格式与上下文

S04 Design Tokens Format Module

  • 来源原始报告
  • 成熟度:DTCG Final Community Group Report;不是 W3C Standard。
  • 状态:已核验文档状态、分组、类型与 dimension、别名示例相关内容。
  • 支持什么:使用 $type$value 和引用表达设计值;dimension 用带数值和单位的对象表示。支持 R6-2 及 Token 文档的 JSON 示例。
  • 不支持什么:没有强制“基础—语义—组件”三层命名,也没有规定本项目的断点、44px 目标或页面最大宽度。符合格式不代表界面符合无障碍要求。

S05 Design Tokens Resolver Module

  • 来源原始报告
  • 成熟度:DTCG Final Community Group Report;不是 W3C Recommendation。
  • 状态:已核验多上下文、sets、modifiers、contexts 与解析组织相关内容。
  • 支持什么:同一组设计值可以在不同情境下解析,减少重复维护。支持空间、密度与主题等维度分别组织的工程方向。
  • 不支持什么:Resolver 不替应用测量当前窗口,也不保证设计工具自动切换模式。本项目上下文表和覆盖文件示例不等于一份完整、经过 Schema 校验的 Resolver 配置。

4. 可读性、输入与无障碍

这些条目的规范性依据均为 WCAG 2.2 正式正文。下列 Understanding 链接用于解释要求和适用边界。已打开正式正文;本次判断只覆盖下列相关准则,未做全项符合性审查。

S06 WCAG 1.4.10 — Reflow,AA

  • 来源Understanding Reflow
  • 状态:已核验成功准则、二维布局例外、表格、缩放和固定区域相关说明。
  • 支持什么:纵向内容在等效 320 CSS px 宽度、横向内容在等效 256 CSS px 高度下的重排要求;确需二维布局的内容有例外。支持 R3-1、R3-4 与固定区域检查。
  • 边界:表格的例外不自动扩展到页面标题、搜索与分页;单元格按内容另行检查。320 CSS px 是重排测试条件,不要求产品为“320px 设备”新增一套视觉模式。

S07 WCAG 1.4.4 — Resize Text,AA

  • 来源Understanding Resize Text
  • 状态:已核验成功准则及响应式字号与放大的解释。
  • 支持什么:除指定例外外,文字能够放大至 200% 而不损失内容或功能,支持 R3-2。
  • 边界:不能以字号使用 rem 或存在流动字号公式直接判定通过;还需检查控件与实际放大结果。200% 文字放大与等效 320 CSS px 重排是不同检查,不能互相代替。

S08 WCAG 2.5.8 — Target Size (Minimum),AA

  • 来源Understanding Target Size (Minimum)
  • 状态:已核验尺寸、间距及例外说明。
  • 支持什么:指针目标至少 24×24 CSS px,或满足间距、等效目标、行内内容、用户代理控制、本质必要等明确例外;支持 R5-2。
  • 边界:本项目建议的重要触控目标 44×44 CSS px 是设计起点,不能标成 AA 的统一下限。圆形或不规则形状、热区间距和重叠需要具体检查,不能只检查一个宽度变量。

S09 WCAG 1.3.4 — Orientation,AA

  • 来源Understanding Orientation
  • 状态:已核验成功准则与方向限制的例外。
  • 支持什么:除特定方向本质必要外,不限制只能一种显示方向,支持 R2-4。
  • 边界:横竖屏可用不等于软键盘、可见高度和安全区已经正确处理;这些是本专题另外提出的验证场景。

S10 WCAG 2.4.3 — Focus Order,A

  • 来源Understanding Focus Order
  • 状态:已核验焦点顺序与含义、操作之间的关系。
  • 支持什么:顺序导航需要保持含义和可操作性,支持 R4-2。
  • 边界:并非要求视觉位置与 DOM 顺序在所有布局中逐像素一致;跨布局如何保持对象焦点、语义阅读位置,是本规范进一步提出的产品行为。

5. 工程实现与用户偏好

S11 MDN — Using CSS custom properties

  • 来源官方文档
  • 状态:已核验官方检索返回的 var() 使用范围说明,未审阅全文。
  • 支持什么var() 不能直接替代媒体查询或容器尺寸查询的阈值,支持断点在构建阶段输出具体数值的建议。
  • 边界:不能将这一限制误写为“容器查询不能涉及自定义属性”;容器样式查询是不同机制。本项目未指定唯一构建工具或插件。

S12 MDN — hover media feature

  • 来源官方文档
  • 状态:已核验主要输入机制的悬停能力说明。
  • 支持什么:输入能力可以作为查询条件,支持 R5-1 将悬停与窗口宽度分开处理。
  • 边界:主要输入机制的查询不代表设备上所有输入,也不能证明用户当下只用某一种输入。关键操作仍需有实际可达路径。

S13 MDN — prefers-reduced-motion

  • 来源官方文档
  • 状态:已核验减少动画偏好的检测与应用说明。
  • 支持什么:系统偏好可以参与运动样式选择,支持 R5-4 与独立的运动上下文。
  • 边界:检测到偏好不代表已完成替代设计。关闭动画后的状态提示与业务连续性由产品实现;MDN 并未直接规定本文的全部行为要求。

6. 补充的技术与验收依据

以下已打开并核对相关正文;未运行页面示例。S03、S04、S05、S06、S07 也已重新核对与本次补充有关的机制和边界;其他条目保留原有阅读范围,不扩称全部重新审阅。

S14 WCAG 1.4.12 — Text Spacing,AA

  • 来源W3C Understanding Text Spacing
  • 支持什么:用户覆盖行高、段落、字距及词距后内容与功能不丢失;语言和书写系统有适用属性边界。用于 R3-2 与文字间距验收。
  • 不支持什么:不要求默认标题行高达到 1.5,也不把四项测试值转成所有 Token 的最小值。

S15 WCAG 2.4.11 — Focus Not Obscured (Minimum),AA

  • 来源W3C Understanding Focus Not Obscured
  • 支持什么:键盘焦点组件不被作者创建内容完全遮挡;用户可移动或主动打开内容的情形按准则注释处理。用于 R4-4。
  • 不支持什么:AA 最低要求不等于所有焦点对象始终完整可见;也不能据此证明系统软键盘避让已通过。

S16 视觉视口、视口单位与环境变量

  • 来源:MDN VisualViewportCSS lengthenv()
  • 支持什么:布局视口与视觉视口可不同;软键盘可能缩小后者而不改变前者。小、大、动态视口单位描述不同的视口尺寸;env() 提供环境值及回退。用于 R2-4 和安全区消费示例。
  • 项目判断:不把 dvh 或安全区当键盘高度保证;以目标浏览器的实际输入、滚动和提交任务验收。取大者或相加的留白策略由设计意图决定,不是文档规定的唯一公式。
  • 边界:没有验证所有浏览器、嵌入式 WebView 和设备的键盘行为;API 可用不等于组件已经正确处理缩放、偏移和滚动。

S17 HTML — 响应式图片

  • 来源WHATWG HTML Images
  • 支持什么:用 srcsetsizes 表达资源候选和显示尺寸,用 picture 按条件选择构图;图片尺寸信息支持预留布局空间。用于 R4-3 与媒体案例。
  • 边界:所读介绍部分是解释材料,不规定本项目的裁切比例或性能预算。不同图片的完整视图、替代说明是否足够,仍需以具体任务判断;不从窗口宽度推断网络质量。

S18 CSS 逻辑轴与文字度量

  • 来源:MDN Logical properties: Basic conceptsCSS length
  • 支持什么:inline/block 随书写模式确定;chic 基于不同字形度量,不能作为固定字符数。用于 R2-1、R3-3 与单位映射合同。
  • 项目判断:页面默认查询物理宽度,组件示例查询逻辑行内尺寸;支持竖排时显式验证轴映射,而非把所有宽度名自动解释为同一维度。

7. 本项目的设计判断

以下是从任务需求和资料中推导的方案,不属于来源原文中的统一规定。

项目决策推导理由验证与调整方式
六条原则与 24 条规则分开管理任务可达、空间判断、可读性、连续性、输入与交付责任用真实场景检验遗漏与归属争议
640 / 1024 CSS px 默认断点提供少量明确空间状态按内容最小可用宽度与长文本重新校准
16 / 24 / 32px 页面边距为窄、常规、宽阔空间建立简单节奏用目标页面、语言和内容密度验证
1200px 内容上限、560px 浮层上限为普通内容页与对话框提供初始约束阅读、工作台、画布分别调整,不强制统一
正文三档保持 16px维持基础可读性,主要通过结构和间距适配验证实际字体、用户放大与多语言
重要触控目标 44px采用比 AA 尺寸基线更宽裕的项目起点检查热区形状、相邻目标与真实操作
Token 三层与上下文分离减少同义值重复并限制覆盖范围检查引用、覆盖组合和变更影响
704px 记录面板阈值280px 列表+24px 间距+400px 详情的示例推导实际内容、长译文、放大文字与双向切换后校准,不是标准断点
合并后解析、作用域允许列表和整体拒绝非法配置保证同一输入产生可解释输出,避免半套配置生效验证覆盖组合、循环引用、类型与组件空间依赖;属于本项目消费合同
Agent 入口与状态持续可达布局变化不应破坏执行控制和判断所需信息执行、停止、确认、结果查看时跨断点

8. 未采用为事实依据的检索线索

  • Material 的窗口尺寸分档页面:本次直接访问失败,未将第三方转载的分档数值作为本项目来源。
  • Adobe Spectrum Design tokens 页面:本次直接打开未得到可用于核验的正文,因此未用于证明具体 Token 分层或参数。先前检索到的 Headers、Spacing 片段也未承担本专题的规范性要求。
  • 第三方断点汇总、论坛讨论和教程:可用于后续检索,但本次具体技术结论回到官方文档,不引用这些材料证明行业共识。

9. 工作范围与验证边界

已完成尚未完成
检索官方布局、Token 与无障碍资料,按上述范围核验系统性文献综述及所有设计系统的比较
整理原则、规则、默认值、引用示例和验收方法具体业务的用户任务研究与数值校准
提供 Web CSS 与 DTCG JSON 文档示例CSS 浏览器运行、设计工具导入与完整 Resolver Schema 验证
区分外部要求与项目默认值真实设备、辅助技术和完整 WCAG 符合性测试

实施时优先补齐目标产品的内容宽度、容器约束、浏览器支持和输入场景;实际实施记录验证证据,不将文档示例当作已经通过产品验证的默认答案。