跳到主要内容
文心 · 万形

双轨仲裁

哲学与主流惯例冲突时,听谁的?三层规则自上而下检查, 让"60% 哲学 + 40% 惯例"变成可执行的判定;暂时不能机械判定的边界也要明确写出,而不是每次临时争论。

第一层 · 全局底线

无障碍与基本可用性不参与哲学取舍。惯例无条件优先,在每一个形态、每一条轨道上都成立。

  • WCAG 2.2 AA 对比度——正文 ≥ 4.5:1
  • 可见焦点态 ≥ 2px,对比 ≥ 3:1;禁止 outline: none
  • 键盘可达,焦点顺序合理
  • 触控目标 Web ≥ 24px / iOS ≥ 44pt / Android ≥ 48dp
  • 颜色不作为唯一信息载体
  • 尊重 prefers-reduced-motion

第二层 · 按场景分轨

轨道适用视觉约束
阅读轨
editorial
文章、文档、品牌、报告、幻灯、海报 哲学全量生效:无卡片容器、导航 CTA 不用填充按钮、≤2 accent、灰阶图表、极简动效
应用轨
application
移动端;任何工具型页面 放宽视觉约束:允许分组表面、一个直接推进任务的填充主按钮、完整语义色、明确的交互反馈

轨道在页面级声明。关键机制是:一个工具型页面会翻转它所在媒介的轨道—— 即使住在一个阅读轨的站点里,一个查询工具页也按应用轨判定。

第三层 · 组件类别覆盖

数据录入与反馈类组件永远按惯例处理,无论所在轨道。表单就是表单, 可用性在这里不可妥协。

所以在一个纯阅读轨的文档页里,其中的搜索框、表单、错误提示仍然使用语义色、 清晰的可供性与标准交互反馈。一个不像错误的错误提示不是克制,是失败。

这条规则带来的三个具体改变

  1. 补齐语义色(第一层要求)—— danger / warning / success 及其淡色变体, 不计入 accent 预算,因为它们回答的是不同的问题:accent 说"看这里",语义色说"这是什么状态"。
  2. 主按钮有了边界(第三层 + 应用轨)——提交与反馈收束在任一轨道可用;应用轨还可用一处直接推进当前任务, 每视图至多一个。
  3. 分组表面合法化(第二层要求)—— iOS 分组列表是真实平台惯例, 在应用轨可用,走边框实现,仍然禁止阴影。

自动检查的边界:render-audit 当前只识别阅读轨 main.wx-landing 中的 a.wx-btn--primary, check:site 再覆盖本站首页与 D 型模式页。其他页面的业务语义、视图边界和应用轨任务推进无法由静态检查可靠推断, 因此它们仍须按本页规则人工审阅,不能把任一绿灯当作该类别已合规的证据。

一句话

第一层保证它能用,第二层保证它像文心,第三层保证表单还是表单。